首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >matlab中的音频模式匹配

matlab中的音频模式匹配
EN

Stack Overflow用户
提问于 2013-03-29 19:42:02
回答 3查看 2.6K关注 0票数 0

谁能在matlab中给我一个关于这个问题的想法,

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

另外,我知道语谱图是怎么做的,并且已经用它绘制了相当多的.wav文件

EN

回答 3

Stack Overflow用户

发布于 2013-03-30 01:02:17

有几种方法可以解决模式识别问题,就像你所说的那样。

您可以在matlab函数中使用像FFT这样的频率分析

S = SPECTROGRAM(X,WINDOW,NOVERLAP)

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

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

票数 1
EN

Stack Overflow用户

发布于 2014-08-04 20:21:05

您可以尝试使用深度信念网络来解决此问题

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

  • Audio Feature Extraction with Restricted Boltzmann Machines
  • Unsupervised feature learning for audio classification

总而言之,不是手动调整特征,而是使用RBMsAutoencoder来提取代表观察到的音频样本的特征(基),然后运行学习算法。

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

This tuturial可能也会有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2013-03-29 20:31:32

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15702493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档