【问题标题】:Sound sample recognition library/code声音样本识别库/代码
【发布时间】:2011-02-18 13:08:09
【问题描述】:

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

  • 我会录制多个(比如 50 多个)音频流(广播电台的录音)
  • 从这些录音中,我会标记有趣的音频剪辑 - 它们的长度范围从 2 到 60 秒 - 会有几千个这样的音频剪辑
  • 库应该能够从录制的声音流中找到相同音频剪辑的其他实例
  • 应向使用的人报告置信度并提供额外的输入,以便下次识别效果更好

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

音频剪辑将包含音乐、文本、效果或其任意组合。所以,TEXT 识别是不可能的。

架构:c++、C# 用于胶水、CUDA(如果可能)。

【问题讨论】:

  • 音频剪辑会包含语音、声音、音乐,所有这些吗?
  • 您是否考虑过特定​​的语言或处理器架构?
  • 顺便说一句,我创建了自己的实现,经过 2 年的开发,它可用于商业开发 :) videophill.com/index.php?page=playkontrol
  • videophil.com/index.php 上的数据库连接失败?page=playkontrol @DanielMošmondor
  • MIT 许可的 Python 库在这里:github.com/worldveil/dejavu

标签: audio signal-processing audio-processing


【解决方案1】:

我还没有找到任何库(目前),但有两篇有趣的论文,它们可能会为您提供术语和背景来完善您的搜索:

编辑:搜索“音频指纹”进入一个实现页面,包括开源和商业。

这是introduction to Audio fingerprinting

【讨论】:

  • 您的第一个提案看起来很有希望,我知道 Picard,但我不确定这是否适合“来自流的样本”检测。
【解决方案2】:

您所描述的是一个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

我上面的门槛是任意的。您应该通过实验确定什么适合您。

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

【讨论】:

  • 好的,相关性似乎足够好,但是在什么特征空间中?你有什么建议?
【解决方案3】:

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

【讨论】:

    【解决方案4】:

    关于www.shazam.com,您可能想看看王立春的this paper

    这不是一个 API,但它确实详细说明了他们的算法是如何开发的。

    【讨论】:

      【解决方案5】:

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

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

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

      【讨论】:

      • 好吧,因为我的问题明确指出我不想要声音到文本的识别,因为我没有用它来寻找叮当声或其他类型的声音,我将不得不给你-1。
      【解决方案6】:

      我会根据 Tim Kryger 的回答去某个地方并使用简单的统计相关函数,因为您希望保持与内容无关。

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

      【讨论】:

        猜你喜欢
        • 2020-01-13
        • 2022-01-21
        • 1970-01-01
        • 1970-01-01
        • 2012-12-28
        • 1970-01-01
        • 2011-10-26
        • 2013-07-24
        • 2015-12-31
        相关资源
        最近更新 更多