matlab中的音频模式匹配

时间:2013-03-29 11:42:02

标签: matlab spectrogram

有人可以在matlab中给我一个关于这个问题的想法,

我有4个.wav文件,其中包含鸟类的啁啾声。每个.wav文件代表一只不同的鸟。给定输入.wav文件,我需要确定它是哪只鸟。我知道我必须进行频谱比较才能找到解决方案。但我不太清楚我应该如何使用频谱图来帮助我实现目标。

P.S。我知道谱图的作用是什么,并用它绘制了不少的.wav文件

3 个答案:

答案 0 :(得分:1)

模式识别问题有几种方法,就像你正在谈论的那样。

您可以使用带有matlab功能的FFT等频率分析 S = SPECTROGRAM(X,WINDOW,NOVERLAP)

SPECTROGRAM中,您需要在变量WINDOW中定义要分析的信号的时间窗口。您可以使用矩形窗口(示例WINDOW = [1 1 1 1 1 1 1 ... 1]),其值等于所需长度。有很多窗口可供使用:hanning,hamming,blackman。您应该使用对您的问题更好的那个。 NOVERLAP是您的窗口一步移动的点数。

除了这种方法,小波变换也是解决问题的好方法。 Matlab还有一个很好的工具箱来应用离散和连续的小波。

答案 1 :(得分:1)

您可以尝试使用 Deep Belief Networks

来解决问题

以下是一些可能有用的文章:

总结这个想法,而不是手动调整功能,使用RBMsAutoencoder提取代表观察到的音频样本的功能(基础),然后运行学习算法。

为了训练DBN,您将需要4个以上的音频样本,但值得尝试,因为该方法在过去已显示出有希望的结果。

This tuturial可能也会有所帮助。

答案 2 :(得分:0)

这可能被证明是一个复杂的问题。作为一个起点,我建议你将每个记录划分为一些固定长度的帧,如20ms,重叠10ms,然后提取这些帧的fft并获得一些最大能量频率。每帧的值。最后一步是将帧频相互比较,并通过选择最大相关性来确定结果