识别聚集成形状的数据


9

我正在使用Python进行一个项目,以检测和分类一些鸟类歌曲,但发现自己处于将波形文件转换为频率与时间数据的位置。这并不是一个太大的问题,但是为了能够将不同的音节分为几类,我需要编写一些东西来检测何时数据集群为某种形状。为了让您大致了解数据的外观,以下是数据绘制时的图像:

在此处输入图片说明

我需要一些方法来获取每个单独的音节(每个形状的两侧都有分隔符)并将其保存到变量或自己的文件中,以便我可以使用SciPy在它们之间运行Pearson相关性。

另外,我更喜欢Python,但是如果您有其他方法可以使用其他语言进行编码,则可以开放。

谢谢!


我并不完全熟悉我要提出的建议,但是看起来像连续小波变换(带有包含您的音节属性的小波)值得一看。
heltonbiker

您需要找到形状还是要对鸟类进行分类?如果可以,则使用“隐马尔可夫模型”的声音吗?
米哈伊尔(Mikhail)2012年

Answers:


2

两个问题:

1 /在8s左右,我们可以观察到100ms左右的稳定音调,然后突然下降直到8.5s。这整个序列(8s至8.5s)是否形成一个实体,还是您认为两个阶段(稳定然后递减)是两个实体?

2 /您是否要在监督下进行工作。您是否事先知道要寻找的“样式”?

  • 如果您想在没有监督的情况下工作(例如您已经收集了录音并旨在从录音中提取“结构化表示”),那么第一步就类似于语音活动检测。只需使用信号强度,或者将其与“ pitchiness”度量(例如,在桥接范围内自相关最大值的比率,此处为1kHz-5kHz)结合使用,以检测存在活跃的强音调的段。对结果序列进行中值滤波以使其平滑,然后对其进行阈值处理以得到不同的片段。将信号分解为多个部分后,就可以对它们进行有趣的操作。例如,您可以为它们中的每一个提取音高轨迹(每个FFT帧的频率峰值最强的序列,或者使用真实的音高估计器提取的更鲁棒的东西),使用DTW计算每个块之间的成对距离矩阵,并使用聚类算法(k均值,聚集聚类)来识别相似音高模式的组(8:8.5和10:10.5片段)。无监督的方法可能会过度分割-例如7.6:8.5和9.6:10.5将被识别为两个相同块的重复,而对您来说,它们基本上可以是一个单一的模式,但是您可以使用类似Sequitur具有更高一级的结构。

  • 如果您要使用预定义的“模式”词典来标记信号,则最好遵循用于语音识别的方法,唯一的主要区别是语音识别不考虑音高,而在您外壳间距是唯一要考虑的信息!语音识别系统可以在单个FST解码操作中同时处理分段和识别任务。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.