我正在开展一个项目,需要创建一个神经网络模型来根据音乐生成舞蹈动作。我努力实现与此视频类似的结果:https://youtu.be/FrA7f5F9TsI
运动文件(.vmd 或 MMD 格式)包含有关身体(骨骼)弯曲的数据。每个骨骼在空间中有3个旋转值(x,y,z)。一个MMD文件一秒包含30帧,每一帧记录所有骰子的值
为了减少数据量,我采取了以下步骤:
- 将音频增加到一整秒 (159.8 -> 160.0)。这样,当去除粉笔频谱图时,步骤在一秒钟内就可以得到清晰的数据。 MMD中也一样。通过在末尾设置空值来扩展
- 将 MMD 骨骼的数量从 100 块减少到 25 块,留下那些产生 90% 运动的骨骼
- 将帧速率从 30 降低至 10。
- 我只使用一个字符
- 这就是所有限制之后的样子

- 声音的。我使用范围从 0 到 5000 Hz 的有限粉笔频谱图。参数:n_mels = 200,n_fft = 4096,hop_length = 735000(每1秒3步)(长度160秒= 480步)

为神经网络生成数据:
为了生成数据,我将训练文件的所有迭代划分为几秒,以便它们适合内存并可以在显卡上同时处理 (4070)
频谱图标准化从 0 到 1。MMD 标准化从 -1 到 1(根据其特征进行调整)
我可以在输入中输入粉笔频谱图的任何部分(例如,过去 2 秒、当前 1 秒和未来 5 秒)。我还可以输入过去几秒的MMD(例如0或3)和任何其他信息(将过去的MMD添加到输入的想法是这样在生成新迭代时,它有一个连接与过去的结果,所以是密不可分的)
在输出中,我输入当前处理的第二个 MMD。这就是我想要得到的
我尝试过LSTM和Attention等模型的各种组合,但模型总是无法学习。可以找到我训练的最新设置和数据。参数 - 1 秒之前的频谱图,1 当前的频谱图;前 1 秒 mmd。在输出中,1 秒是当前秒。 MMD 和音频源 - 如视频中所示
我拥有所有必要的数据,但我无法让模型发挥作用。对于改进模型或学习过程的任何想法和建议,我将不胜感激

