声音样本识别库/代码

Dan*_*dor 14 audio signal-processing audio-processing

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

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

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

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

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

mdm*_*dma 9

我还没有找到任何库(但是),但有两篇有趣的论文,可能会为您提供术语和背景来优化您的搜索:

编辑:搜索"音频指纹"来到一个实现的页面,包括开源和商业.

以下是音频指纹识别介绍


Tim*_*ger 7

您所描述的是匹配滤波器,您只需要一个互相关函数,该函数应该是任何合理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
Run Code Online (Sandbox Code Playgroud)

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

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