【问题标题】:How to compare / match two non-identical sound clips如何比较/匹配两个不同的声音片段
【发布时间】:2018-04-18 08:50:13
【问题描述】:

我需要每 5 秒采集一次简短的声音样本,然后将这些样本上传到我们的云服务器。

然后我需要找到一种方法来比较/检查该样本是否是完整长音频文件的一部分。

样本将从手机麦克风录制,因此它们确实不准确。

我知道这个主题可能会变得相当技术性和复杂性,但我确信一定有一些库或在线服务可以帮助进行这种复杂的音频匹配/配对。

一个想法是使用音频到文本的转换服务,然后根据实际对话进行匹配。然而,这对我来说并不有效。而根据实际声音频率或模式进行匹配会更有效。

我知道有一些服务,比如 Shazam,可以进行这种类型的音频匹配。但是我想他们的服务都是适当的。

一些可能影响它的因素:

  • 两个音频样本都带有时间戳。所以我们不必搜索整个声音片段。

【问题讨论】:

    标签: audio audio-fingerprinting


    【解决方案1】:

    为了让您获得答案,您需要专注于您已经完成战斗并展示您的代码的可回答问题

    在我的脑海中,我会走过音频,从一个桶中取出几个样本......然后将你的桶滑过几个样本并执行另一个桶抽取操作......允许每个桶包含重叠样本也包含在前一个桶和下一个桶中......更少的样本更快的计算更多的样本在一定程度上更高的准确性 YMMV

    ... 将每个桶送入傅立叶变换,以将时域输入音频渲染到其频域对应物... 将每个桶的 FFT 的显着属性记录到数据库中,例如具有最多能量的 X 频率( FFT 上的最大幅度)

    ... 也可能存储这些最高 X 频率相对于它们的能量的标准偏差(这些频率的分散程度)...根据需要定义其他此类属性...对于这样的频域方法可以为您工作由于 FFT 处理周期性时间序列数据,因此每个桶中需要相对较少的样本,因此如果您向其提供 500 毫秒的复杂音频(如语音或音乐),您将不再有周期性音频,而是有糊状

    然后,一旦通过上述处理发送了所有现有音频,对您的实时新音频执行相同操作,然后确定哪些先前音频包含与您当前音频输入匹配的最相似的桶序列...使用贝叶斯方法,以便您的猜测具有概率权重附加的,便于实时更新

    听起来是个很酷的项目,祝你好运……这里有一些音频指纹资源


    音频剪辑 A 是否出现在音频文件 B 中 检测音频中的音频 [音频识别] Detecting audio inside audio [Audio Recognition]

    从 Arduino 中的 FFT 检测特定模式 Detecting a specific pattern from a FFT in Arduino

    使用 AudioContext API 进行音频指纹识别 https://news.ycombinator.com/item?id=21436414 https://iq.opengenus.org/audio-fingerprinting/

    Chromaprint 是 AcoustID 项目的核心组件。 它是一个客户端库,实现了从任何音频源中提取指纹的自定义算法 https://acoustid.org/chromaprint

    从 FFT 中检测特定模式 Detecting a specific pattern from a FFT in Arduino

    音频地标指纹作为节点流模块 - nodejs 将 PCM 音频信号转换为一系列音频指纹。 https://github.com/adblockradio/stream-audio-fingerprint

    所以跟进 如何比较/匹配两个不同的声音片段 How to compare / match two non-identical sound clips

    Python 中的音频指纹和识别 https://github.com/worldveil/dejavu

    使用 Python 和 Numpy 进行音频指纹识别 http://willdrevo.com/fingerprinting-and-audio-recognition-with-python/

    MusicBrainz:一个开放的音乐百科全书 (musicbrainz.org) https://news.ycombinator.com/item?id=14478515

    https://acoustid.org/chromaprint Chromaprint 是如何工作的? https://oxygene.sk/2011/01/how-does-chromaprint-work/

    https://acoustid.org/

    MusicBrainz 是一个开放的音乐百科全书,它收集音乐元数据并将其提供给公众。 https://musicbrainz.org/

    Chromaprint 是 AcoustID 项目的核心组件。 它是一个客户端库,实现了从任何音频源中提取指纹的自定义算法 https://acoustid.org/chromaprint

    Audio Matching (Audio Fingerprinting)

    是否可以根据它们的 wav 文件比较两首相似的歌曲? Is it possible to compare two similar songs given their wav files?

    音频哈希 https://en.wikipedia.org/wiki/Hash_function#Finding_similar_records

    音频指纹 https://encrypted.google.com/search?hl=en&pws=0&q=python+audio+fingerprinting

    ACRCloud https://www.acrcloud.com/ How to recognize a music sample using Python and Gracenote?

    音频地标指纹作为节点流模块 - nodejs 将 PCM 音频信号转换为一系列音频指纹。 https://github.com/adblockradio/stream-audio-fingerprint

    【讨论】:

      猜你喜欢
      • 2012-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-26
      • 1970-01-01
      • 1970-01-01
      • 2010-10-14
      相关资源
      最近更新 更多