0

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

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

PS我知道频谱图是怎么做的,并且已经用它绘制了很多.wav文件

4

3 回答 3

1

您可以尝试使用Deep Belief Networks解决问题

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

总结一下这个想法,不是手动调整特征,而是使用RBM或自动编码器来提取代表观察到的音频样本的特征(基础),然后运行学习算法。

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

这个教程可能也有帮助。

于 2014-08-04T12:21:05.243 回答
1

有几种方法可以解决模式识别问题,就像您正在谈论的那样。

您可以将 FFT 之类的频率分析与 matlab 函数一起使用
S = SPECTROGRAM(X,WINDOW,NOVERLAP)

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

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

于 2013-03-29T17:02:17.247 回答
0

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

于 2013-03-29T12:31:31.807 回答