获得声音输入&用Python找到类似的声音

时间:2016-07-21 04:10:17

标签: python audio

我想做的就像'Shazam'或'SoundHound'与Python,只有声音版本,而不是音乐。

例如,当我发出声音(例如砰砰声)时,在声音列表中找到最相似的声音数据。

我不知道你能理解,因为我的英语不好,但想象一下'Shazam'的声音版本。

我知道'Shazam'没有开放的API。 有没有像'Shazam'的api? 要么, 我该如何实施呢?

2 个答案:

答案 0 :(得分:2)

您可以使用多个库,但没有一个库会将样本归类为“关闭”。例如。但是你可以使用这些库进行特征提取,构建/获取声音数据集,构建分类器,训练它并将其用于声音分类。

图书馆:

  1. Friture - Friture是一个图形程序,旨在实时对音频输入进行时频分析。它提供了一组可视化小部件来显示音频数据,例如示波器,频谱分析仪,滚动2D频谱图。

  2. LibXtract - LibXtract是一个简单,便携,轻量级的音频特征提取功能库。该库的目的是提供一组相对详尽的特征提取原型,这些原型被设计为级联的。创建提取层次结构。

  3. Yaafe - 另一个音频功能提取器是用于音频分析的工具箱。易于使用且高效地同时提取大量音频功能。支持WAV和MP3文件,或嵌入C ++,Python或Matlab应用程序。

  4. Aubio - Aubio是一种用于从音频信号中提取注释的工具。它的功能包括在每次攻击之前分割声音文件,执行音调检测,敲击节拍以及从现场音频产生midi流。

  5. LibROSA - 用于音频和音乐分析的python模块。它易于使用,并实现了许多常用的音乐分析功能。

  6. 如果你选择使用我上面提到的建议,我推荐 scikit-learn作为机器学习库。它包含许多您可能想要使用的分类器。

答案 1 :(得分:0)

这里的问题是音乐具有结构,而您想要找到的声音可能具有不同的签名。以门为例,门的重量,尺寸和材料将影响它将产生的声学特征的类型。如果你想通过相似性进行搜索,那么一个功能包方法可能是一种简单易行的方法。但是,有不同的方法,例如沿着声音的频谱图通过滑动窗口采样,并尝试匹配(通过相似性)与您录制的先前声音,声音分解等...