使用声谱图进行深度学习以进行声音识别

数据挖掘 深度学习 多标签分类 音频识别
2021-09-21 04:30:46

我正在研究使用频谱图对声音(例如动物的声音)进行分类的可能性。这个想法是使用深度卷积神经网络来识别频谱图中的片段并输出一个(或多个)类标签。这不是一个新想法(参见例如鲸鱼声音分类音乐风格识别)。

我面临的问题是我有不同长度的声音文件,因此有不同大小的频谱图。到目前为止,我看到的每种方法都使用固定大小的声音样本,但我不能这样做,因为我的声音文件可能长达 10 秒或 2 分钟。

例如,开头是鸟的声音,结尾是青蛙的声音(输出应该是“Bird, Frog”)。我目前的解决方案是向神经网络添加一个时间组件(创建更多的循环神经网络),但我现在想保持简单。任何想法,链接,教程,...?

2个回答

RNN 没有产生足够好的结果,而且也很难训练,所以我选择了 CNN。

因为特定的动物声音只有几秒钟长,我们可以将频谱图分成块。我使用了 3 秒的长度。然后,我们对每个块执行分类并对输出进行平均,从而为每个音频文件创建一个预测。这非常有效,而且实现起来也很简单。

更深入的解释可以在这里找到: http ://ceur-ws.org/Vol-1609/16090547.pdf

对于自动语音识别 (ASR),滤波器组特征在频谱图上的表现与 CNN 一样好,见表 1你可以在 fbank 上训练一个 DBN-DNN 系统来对动物的声音进行分类。

在实践中,较长的语音话语被划分为较短的话语,因为维特比解码对于较长的话语效果不佳。你也可以这样做。

您可以将较长的话语分成固定长度的较小话语。将较长的话语分成更小的话语很容易。问题在于增加较小话语的长度以达到固定长度。

您可以扭曲频谱图的频率轴以增强较小的话语。这种数据增强已被证明可以提高 ASR 性能数据增强。

对于其中包含多个声音的较长话语,您可以使用音乐分割算法将其分成多个话语。这些话语可以通过除法或扩充来制成固定长度。