我正在开发一种比较两个频谱图并为其相似度评分的方法。
我已经思考了很长时间了,如何选择整个模型/方法。
我用来制作频谱图的音频片段是从android手机录制的,我将它们从.m4a转换为.wav,然后处理它们以绘制频谱图,全部都在python中进行。

所有音频记录的长度都相同

那确实有帮助,因为所有数据随后都可以在同一维空间中表示。

我使用巴特沃斯带通滤波器对音频进行了滤波,由于它在信号的持久部分中表现稳定,因此常用于语音滤波。作为截止频率,我使用了400Hz3500Hz
完成此过程后,输出如下所示python - 用CNN将固定长度的频谱图嵌入张量的方法-LMLPHP

我的第一个想法是在该频谱图上使用OpenCV找到感兴趣的区域,因此我对颜色进行了过滤并获得了此输出,该输出可以粗略地用于获取信号的极限,但这会使每个剪辑的长度不同,我也许不想发生python - 用CNN将固定长度的频谱图嵌入张量的方法-LMLPHP

现在要问我的问题-我正在考虑将这些频谱图嵌入多维点,并简单地将其准确性记为与最准确样本的距离,这要归因于某些类簇空间中的维数减少。但这似乎很简单,不涉及培训,因此很难验证。所以

是否有可能使用卷积神经网络或CNN->延迟NN之类的网络的组合将此频谱图嵌入到多维度点,从而可以不直接比较它们,而是比较网络的输出?

如果在这个问题上我有任何遗漏,请发表评论,我会立即解决,非常感谢您的宝贵时间。

约瑟夫·K。

编辑:

在尼古拉·希米列夫(Nikolay Shmyrev)提出建议后,我改用了梅尔(Mel)频谱图:python - 用CNN将固定长度的频谱图嵌入张量的方法-LMLPHP

看起来似乎更有希望,但是我的问题仍然差不多,我可以使用像VGG16这样的预训练的CNN模型将这些频谱图嵌入到张量中,从而能够进行比较吗?如果是这样,怎么办?只需删除最后一个完全连接的层,然后将其展平?

最佳答案

我认为,并且根据Yann Lecun,当您使用Deep Neural Network定位语音识别时,您有两个义务:

  • 您需要使用Recurrent Neural Network 才能具有记忆能力(内存对于语音识别确实很重要...)


  • 您将需要大量的培训数据

  • 您可以尝试使用RNN on tensorflow,但是您肯定需要很多训练数据。

    如果您不希望(或无法)找到或生成大量训练数据,那么您将忘记深度学习来解决此问题...

    在这种情况下(忘记深度学习),您可以看看Shazam work(基于fingerprint algorithm)如何

    10-05 23:00