更新 这个问题以前题为"给我一个简单的算法用于信号(音)模式检测"

  1. 我的目标是检测是否存在一定的模式在嘈杂的信号。我想要检测存在的一种昆虫记录的声麦克风。我以前记录的声音昆虫在一个数字格式。
  2. 我不想做的语音识别。
  3. 我已经在使用之间的卷积的输入信号的模式,以确定它们的相似的水平。但我认为,这种技术更适合于离散时间(即数字通信,在这里信号发生在固定的时间间隔),并区分输入的信号之间的2给模式(我只有一个图案)。
  4. 我恐怕要使用神经网络,因为我从来没有使用他们,我不知道如果我可以嵌入代码。

能不能请你告诉我一些其他办法,或试图说服我说我目前的方法仍然是一个很好的想法或是神经网络可能是一种可行方式?

更新 我已经有2好的答案,但是另一个将是受欢迎的,甚至奖励。

有帮助吗?

解决方案

从卷积 动态的时间翘曲 这可以被认为卷积算,绵延和缩小的一个信号,以最佳方式匹配的另一种。

也许是一个更简单的办法是做一个FFT的样品,并确定如果你的昆虫的任何特定的频率,可以过滤。

在更复杂的一面,但不完全是一个神经网络,支持向量机的工具包喜欢 libsvmsvmlight 你可以把你的数据。

不管路,你的尝试,我会花时间探索性质的声音你的昆虫,使用的工具,如FFT。毕竟,它会更容易教学计算机进行分类的声音如果你可以自己做。

其他提示

听起来像一个典型的 一个类的分类问题 即你要搜索一点在大量的其他的事情你不关心。

什么你想要做的就是找到一个设定的特征或描述,可以计算每个短片的你的原始记录,然后你可以匹配的特点你清洁的记录产生的。我不想卷是一个坏,但它是,而是对噪声敏感,所以它可能不是最适合于你的情况。什么可能实际的工作在你的情况是模式匹配合并的傅里叶变换。你把傅里叶变换的信号,给你一个权力与频率图(而不是权力与时间图)然后你鸿沟的频率波段和你采取的平均功率为每带为特征。如果你的数据主要含有白噪音的百通你从原虫的声音的类似的长将非常密切匹配模式的参考声音。 这最后一招已使用成功 (与一些窗口)破音频验证码是因为使用的谷歌等人,使他们的网站可访问的盲目。

通过这种方式,因为你的原始音频信号是数字(否则处理与计算机不会的工作;-))卷积是适当的。你应该执行的卷积之间的参考信号,一样的长度相等的原料输入从每个样品。所以,如果你参考信号具有长N和你的原始样品具有长M M>=N那么你应该执行M-N+1=P圈之间的参考信号和P样本从你的原料输入从1开始..P.最可能的位置的参考声音的原样品样品与的最高的卷积分。注意,这一点变得疯狂时的消耗速度非常快。

傅里叶变换的基础匹配如我上面所解释的使用50%的重叠样从你原始数据的长度的两倍你的参考样本至少会以更快的速度(虽然不一定更好)

一些更多的信息,是需要的。

当你说的嘈杂信号的背景是什么声音?是吗,来的第一近似值,固定的(在统计意义上,即不变)或是不固定的(即有可能包含其他的声音,例如其他动物的叫声等?)

如果背景噪音是非静止然后你最好的选择,可能要使用一种叫做 独立成分分析 它试图分开给定的声混合物纳入其组成来源,你甚至不需要原始记录的昆虫本身。很多ICA软件是联系从维基百科的网页。

(编辑:伊卡是一个情况下 盲源分离 (BSS),还有许多其他的方式做BSS和它可能会帮助搜寻那些为好。)

但是,如果背景噪音是静止的,然后的问题要容易得多(虽然仍然非常艰苦):

在这种情况下的做法,我会用如下。分析幅度谱的一点的噪声和振幅谱你的昆虫的呼吁。如果你是幸运的昆虫的话,可在一般情况下,可在一个不同的频带来的噪音。如果是这样过滤进入的信号与适用于高、低,或频带通滤波器。

然后你可以尝试比较的部分过滤信号,即含有"更多的能源",比平均你(过滤的)昆虫的呼吁。可能是通过使用图像的相似度的算法的建议A雷克斯。

编辑:由于你的背景噪音是非静止然后我只能建议,在寻找 盲源分离的非高斯源 可能会导致你要一些更多的算法。我很害怕,答案就是 没有简单的 算法,将做你想要什么。

如果我是你就开始读一点关于 窗口的功能 像海明窗口,这是一个良好的起点,声音识别。(这当然是结合 傅里叶变换)

你可以试着匹配滤波器。虽然我从来没有实际使用一个,我听说过好的事情。

此外,虽然不是简单的,我想到一个隐藏的马模型(嗯,我知道你说过没有语音识别,但听我说出来!) 将提供最好的结果。再次,我从来没有实际使用的一个,但有开放源实现所有可用的地方。你只需要训练它使用你的现有"干净"的昆虫记录。这是一个开放源码的执行情况: 一般隐马模型图书馆.

诚然,这不是我的专门知识领域,但我首先想到的是 递归的最小二乘过滤器 -它执行自相关。它是相似的卷积滤你现在使用但有一点更加先进。卡尔曼筛选是一个扩展的这个-它是用来再生一个信号从多嘈杂的测量,所以它可能是没有用的,在这种情况。我不会拒绝随便神经网络--他们是非常有用的,在这样的事情(提供培养他们正确地).

在思考这个更深入的我可能会建议采用一个FFT。机会是信号你找的是非常的带有限的,你可能会有更多幸运的使用带通滤波器上的数据,然后FFT和最后使用简单的卷积过滤器上的数据,而不是时间域的数据点。或者做和两倍的数据。我不重入学,所以我不能告诉你,如果你就会获得显着的(不是线性地依赖性)的结果,使用这种方法,但只有一件事你失去的时间。

你可能感兴趣的 MA工具箱, 一Matlab执行情况的相似性措施(s)。

我发现了这个纸, 一般的声音的分类和相MPEG-7,有趣。然而,它可能是后一个收费墙(我不知道),它可能不那么有用的做法。

GPL-ed框架 Marsyas 有一个工具,用于机械学习的分类,称为亚.我猜这大概不会做你想要什么或是太多的努力挂钩。

我只想法,否则是采取傅立叶变换,有效地改变你的声音变成灰度的图像。然后使用的一个多 图像相似的算法.

一个 天真的贝斯分类 可能是值得在这里,进行分类的声音样本成那些包含你的物种的利益和那些不这样做。它的工作颇为复杂的现象;我曾经用它来决定是否给予毫米波雷达数据集包含一个障碍,例如刷、一个坦克的陷阱,等等。至于如何打破您的连续数据的成分立的区块,用于《贝叶斯分类,你可能只是幻灯沿着连续的数据集和断块的长度等于你的昆虫的样本。例如,如果这样你比较反对的是2秒长,你可能饲料的鉴别0-2,0.5-2.5s,1-3,等等。你需要训练的鉴别,但这是一个共同要求的任何机学习为基础的解决方案。

这些各种各样的办法是唯一的方法去如果你的昆虫的种类没有一个单一的、比较不同的声音,你的寻找。截相关性/卷积有限的实用工具,如果你是在寻找更复杂的东西比一个单一的声音,这可以在较高或较低的体积。

有天真的贝斯分类的实现对于几种语言,例如 nbc.

你可能会想要一个 维也纳的过滤器 办法。

谷歌:FastICA算法。一些使用ICA和盲源信号分离。提交人的算法写了一个梦幻般的书ICA,周围是$40-60美元用于亚马逊。

Goertzel-你可以用于简单的模式检测,并为复杂的频率分离。你可以看到的样品 我实在C#

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top