有人可以在matlab中给我一个关于这个问题的想法,
我有4个.wav文件,其中包含鸟类的啁啾声。每个.wav文件代表一只不同的鸟。给定输入.wav文件,我需要确定它是哪只鸟。我知道我必须进行频谱比较才能找到解决方案。但我不太清楚我应该如何使用频谱图来帮助我实现目标。
P.S。我知道谱图的作用是什么,并用它绘制了不少的.wav文件
答案 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
来解决问题以下是一些可能有用的文章:
总结这个想法,而不是手动调整功能,使用RBMs或Autoencoder提取代表观察到的音频样本的功能(基础),然后运行学习算法。
为了训练DBN,您将需要4个以上的音频样本,但值得尝试,因为该方法在过去已显示出有希望的结果。
This tuturial可能也会有所帮助。
答案 2 :(得分:0)