声音样本识别库/代码

时间:2010-05-12 09:54:51

标签: audio signal-processing audio-processing

我不想要声音到文本的软件。我需要的是以下内容:

  • 我会录制多个(比如50多个)音频流(无线电台的录音)
  • 从那些录音中,我将标记有趣的音频片段 - 它们的长度范围从2到60秒 - 将有数千个这样的音频片段
  • 库应该能够从录制的声音流中找到相同音频片段的其他实例
  • 应报告使用的置信因子和提供的其他输入,以便下次识别可以更好地执行

你知道这样的软件库吗? LGPL对我来说最有价值,但我也可以获得商业许可。

音频剪辑将包含音乐,文本,效果或其任何组合。因此,TEXT识别是不可能的。

架构:c ++,C#用于粘合,CUDA(如果可能)。

6 个答案:

答案 0 :(得分:9)

我还没有找到任何图书馆,但有两篇有趣的论文,可能会为您提供术语和背景,以优化您的搜索:

编辑:搜索“音频指纹识别”来到一个实施页面,包括开源和商业。

这是introduction to Audio fingerprinting

答案 1 :(得分:7)

您所描述的是matched filter,您只需要一个cross-correlation函数,它应该是任何合理DSP库的一部分。取决于您选择的处理器架构和语言甚至可以找到一个可以更有效地执行此操作的矢量化库。

如果你真的不关心性能,可以使用Python ......

$ python
Python 2.6.4 (r264:75706, Dec  7 2009, 18:45:15) 
[GCC 4.4.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import scipy
>>> interesting_clip = [ 5, 7, 2, 1]
>>> full_stream = [ 1, 5, 7, 2, 1, 4, 3, 2, 4, 7, 1, 2, 2, 5, 1]
>>> correlation = scipy.correlate (full_stream, interesting_clip)
>>> print correlation
[56 79 55 28 41 49 44 53 73 48 28 35]
>>> for offset, value in enumerate(correlation) :
...     if (value > 60) :
...         print "match at position", offset, "with value of", value
... 
match at position 1 with value of 79
match at position 8 with value of 73

我的上限是任意的。您应该通过实验确定适合您的方法。

请记住,“有趣剪辑”越长,计算相关性所需的时间就越长。虽然较长的剪辑可以帮助实际匹配从不匹配中脱颖而出,但您可能不需要超过几秒钟。

答案 2 :(得分:4)

AudioDB是一个开源的c ++项目,它搜索类似的音频部分,处理嘈杂的流,并可以给你一个相似性的度量。它可以作为客户端/服务器运行,但我相信你可以做一个独立的程序 关于dsp相关性的其他答案是正确的,但通常这些dsp算法想要比较具有相似部分重叠的两个相同长度的流。
您需要它来处理流的任意段;这就是AudioDB的构建方式。 (一个应用是找到隐藏的引用/采样或明显的版权滥用。)我用它来查找向后播放的声音,并且还发现引入了一些噪音或语音变化的情况。
请注意,即使主页上的日期似乎已关闭,它仍处于开发阶段。我会订阅邮件列表,询问当前的状态以及如何合并它。

答案 3 :(得分:3)

您可能想看看王立春关于this paperwww.shazam.com

它不是API,但确实提供了算法开发的详细信息。

答案 4 :(得分:0)

查看Microsoft Speech API(SAPI):
http://msdn.microsoft.com/en-us/library/ee125077%28VS.85%29.aspx

您列出的所有其他要求基本上都是您必须自行实施的实施细节。例如,当软件解释音频流时,它可以将它们存储在带有全文索引的SQL服务器中......您可以通过搜索来查找类似/相同的音频剪辑。

当然有其他方法可以实现这一点,这只是一个想法: - )

答案 5 :(得分:0)

我会按照Tim Kryger的答案去处理,并使用简单的统计相关函数,因为你想保持内容不可知。

至于我肯定会尝试MFCC的功能,因为它用于语音处理和音乐识别(流派,歌曲)。您可以在优秀的开源Vamp plugins(或更高级别的捆绑包,名为Sonic Annotator的程序)或Marsyas框架中找到MFCC和丰富的其他音频功能