深度学习的音频功能

时间:2016-02-03 06:10:23

标签: speech-recognition deep-learning

我发现了一些使用深度学习进行音频分类的论文和幻灯片。

一些研究使用谱图作为深度学习模型的输入。

我想知道确切而实际的实施。

我找到了this slide

enter image description here

根据我的理解,第一层的节点数是24,输入是24个不同时间段的频谱图。

例如,如果音频事件为2.4秒,则第一个节点为0~0.1秒的频谱图,第二个节点为0.1~0.2秒的频谱图...

我误解了吗?

我的问题:如果有一个3.0秒的音频事件,如何对其进行分类?

3 个答案:

答案 0 :(得分:2)

我设法使用卷积神经网络对时间序列数据进行分类。卷积神经网络与人工神经网络基本相同。唯一的区别是,人工神经网络的输入必须首先卷积以提取特定功能。以直观的方式,卷积操作基本上突出了某些数据的特定功能。最好通过手电筒照射图像的不同部分来描绘。通过这样做,我们可以突出显示图像的特定功能。

这是CNN的主要想法。它本质上旨在提取空间特征。卷积操作通常是堆叠的,这意味着你有(行,列,尺寸),因此卷积的输出是3维。这个过程的缺点是计算时间很长。为了减少这种情况,我们需要汇集下采样,这基本上可以减少功能检测器的大小,而不会丢失必要的功能/信息。例如,在汇集之前,您有6,6个矩阵中的12个作为特征检测器。汇集后,您有12个卷积数据,大小为3,3。您可以在展平之前反复执行这两个步骤,这基本上将所有这些压缩成(n,1)维数组。之后,您可以执行正常的ANN步骤。

简而言之,可以使用CNN完成对时间序列数据进行分类的步骤。以下是步骤:

1.Convolution
2.Pooling
3.Flattening
4.全连接(正常的ANN步骤)

您可以根据需要添加卷积和合并图层,但请注意培训时间。我最喜欢的youtuber,Siraj Raval就是这个video。顺便说一句,我建议你使用Keras进行深度学习。放下最容易使用的深度学习库。希望它有所帮助。

答案 1 :(得分:1)

您应该使用KaldiCTC负责时间分辨率。

答案 2 :(得分:0)

我训练了CNN来检测录音中所说的语言。它目前支持176种语言,准确率为98.8%。我的GitHub帐户上有一个评论相当好的Jupyter Notebook:Spoken Language Classifier

我希望这就是你要找的东西。我学到的一些东西包括:

  • 架构不需要重复,因为时间可以在x轴上编码。对于非经常性CNN,输入的长度必须固定。

  • 在许多方面,光谱图在语义上与照片不同。适用于照片的流行架构可能对光谱图完全过度。

  • 分别尝试不同的x和y分辨率。我的第一个假设是时间轴需要比频率轴更高的分辨率在我的用例中是错误的。

  • 使用mel-spectrogram为较低频率提供更高分辨率。我们的听力呈指数级而非线性。