哪种输入格式最适合在递归神经网络中进行声音识别?

时间:2017-03-10 13:09:20

标签: neural-network recurrent-neural-network

我想用反复深度神经网络创建声音或音高识别。而且我想知道我会得到什么样的输入效果。

我应该用幅度或FFT(快速傅立叶变换)结果输入DNN吗?

是否有任何其他格式可以产生良好的结果和快速学习?

2 个答案:

答案 0 :(得分:1)

虽然MFCC确实已用于音乐信息检索研究(用于类型分类等),但在这种情况下(音高检测),您可能希望使用半音滤波器组或常数Q变换作为第一信息减少步。这些变换与音乐音调更好地匹配。

但我认为,如果你有大量的样本,也值得尝试直接使用RNN音频样本。理论上,RNN应该能够学习与特定音高相对应的波形。

根据您的描述,并不完全清楚什么类型的"音高识别"你的目标是:单声道乐器(恒定的音色,一次只有一个音调)?和弦(恒定的音色,但多个音高可能同时发声)?多个乐器一起演奏(多个音色,多个音高)?甚至是音调和打击乐声音的完全混音?这些用例的硬度按照我提到的顺序大致增加,所以你可能想先从单声道音高识别开始。

要获得必要数量的训练示例,您可以使用物理模型或多采样虚拟仪器以受控方式生成特定音高的音频样本。这样,您可以快速创建培训材料,而不是记录它并手动标记。但我建议你至少在创建的音频样本中添加一些背景噪音(随机噪音或来自不同录音的非常低级别的声音),否则你的数据可能过于人为,导致模型不能一旦你想在实践中使用它就能很好地工作。

这篇论文可能会给你一些关于这个主题的想法: 复调钢琴音乐转录的端到端神经网络 (Siddharth Sigtia,Emmanouil Benetos和Simon Dixon) https://arxiv.org/pdf/1508.01774.pdf

答案 1 :(得分:0)

Mel-frequency cepstrum通常用于语音识别。 mozilla DeepSpeech正在使用MFCC作为其DNN的输入。

对于python实现,您可以使用python-speech-features lib。