python - Birdsong 音频分析 - 找出两个剪辑的匹配程度

标签 python audio image-processing pattern-recognition

我有大约 100 个 wav 音频文件,采样率为 48000 个相同物种的鸟类,我想测量它们之间的相似性。我从波形文件开始,但我(非常了解)更多关于使用图像的知识,所以我假设我的分析将在频谱图图像上进行。我有几个不同日子的鸟类样本。

以下是一些数据示例,以及(对于未标记的轴表示歉意;x 是样本,y 是线性频率乘以 10,000 Hz): alt text 这些鸟鸣显然出现在“词”中,不同的歌曲片段可能是我应该比较的水平;相似词之间的差异以及各种词的频率和顺序。 alt text

我想尝试去除蝉噪声 - 蝉的啁啾频率相当一致,并且倾向于相位匹配,所以这应该不会太难。 alt text

似乎一些阈值可能有用。

我听说大多数现有文献都使用基于歌曲特征的手动分类,例如 Pandora Music Genome Project。我想成为 Echo Nest ;使用自动分类。更新:很多人都在研究这个。

我的问题是我应该使用哪些工具进行此分析?我需要:

  • 过滤/限制一般噪音并保留音乐
  • 过滤掉特定的噪音,比如蝉声
  • 对鸟鸣中的短语、音节和/或音符进行拆分和分类
  • 创建零件之间差异/相似性的度量;可以识别鸟类之间的差异,最大限度地减少同一只鸟的不同叫声之间的差异

我选择的武器是 numpy/scipy,但是像 openCV 这样的东西在这里可能有用吗?

编辑:经过一些研究和史蒂夫的有用回答,更新了我的术语并重新措辞。

最佳答案

不得不回答这个问题,因为评论太长了。

我现在基本上在这个领域工作,所以我觉得我有一些知识。显然,从我的角度来看,我建议使用音频而不是图像。我还建议使用 MFCC 作为您的特征提取(您可以将其视为总结/表征特定音频子带的系数 [因为它们是])。

GMM 是首选。

要执行此任务,您必须拥有一些(最好是大量)标记/已知数据,否则机器学习将无法进行。

您可能会发现有用的技术:

'Then, during testing, you submit a query MFCC vector to the GMM, and it will tell you which species it thinks it is.'

更准确地说,您向每个 GMM 提交查询(如果您正确使用它们,每个 GMM 都会为您提供该概率分布发出的特定特征向量的似然分数 [概率])。然后,您比较从所有 GMM 收到的所有可能性分数,并根据您收到的最高分数进行分类。

UBM

您可以使用 UBM(通用背景模型)简单地对所有背景噪声/ channel 失真进行建模,而不是“滤除”噪声。该模型由一个 GMM 组成,该 GMM 使用您可用的所有训练数据(即您用于每个类的所有训练数据)进行训练。您可以使用它来获得“似然比”(Pr[x 将由特定模型发出]/Pr[x 将由背景模型 (UBM) 发出] ) 以帮助消除背景模型本身可以解释的任何偏差。

关于python - Birdsong 音频分析 - 找出两个剪辑的匹配程度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4503181/

相关文章:

python - 如何使用 Python 重命名电子表格中的工作表名称?

python - 如何实现使用类和当前对象(self)的python类函数?

c++ - 为什么从 WAV 文件读取的 SubChunk2Size 值等于 3452816845?

java - Flutter/Java Plot Mp3 频率强度

image-processing - 如何在C#中将Emgu.image转换为图像?

python - 查找两个 pandas Dataframe 之间的差异并将所有内容添加到新的 DF

audio - Alexa Skill静态音频文件实现

image-processing - 图像格式 NV12 存储在内存中

c++ - FFmpeg 中 RGB 到 YUV 的转换错误

Python 程序无法处理大数