问题标签 [audio-fingerprinting]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2658 浏览

python - 音频指纹匹配 - 查找最接近的匹配项

我正在使用 fpcalc 从声音剪辑中获取音频指纹。它们看起来像这样:

现在我录制一个声音并对其进行指纹识别,它可能看起来像这样:

现在我查看我的数据库以使用 levenshtein 距离找到最接近的匹配项,如下所示:

我没有得到好的结果,因为声音与我给它的样本不匹配。

我这样做正确吗?那里有更好的指纹库吗?我使用python或ruby ..

我试图将哨子与鸟叫声相匹配。

0 投票
2 回答
726 浏览

c# - 检查录音质量的有效方法

我们有来自我们的服务器端进程之一的实时不受控制的录音的各种波形文件,其中大多数在整个过程中都有清晰的语音。但是,有时它们会出现乱码,有静电,或者语音音量不够大。是否有一种有效的方法可以使用 C# 确定录音是否被视为“良好”质量?

我考虑将已知良好录音的频谱图与不良录音的频谱图进行比较,但每次录音都会有不同的语音,所以这可能行不通。我研究过 Bass.Net 和 NAudio 等库,但音频处理不是我的专业领域。

我可以尝试比较音频指纹,但我不完全确定它是如何工作的。我看到有人试图使用他们的音频指纹哈希和 Levenshtein 距离算法来比较两个音频文件,以找出两个音频文件之间的相似程度。除非音频指纹生成的哈希值在相似的音频文件之间相似,否则此方法将不起作用。

我的另一个想法是使用某种语音识别 API 来尝试处理语音并将音频的副本写入文本文件。问题是语音识别不是非常准确,像微软的语音 API 这样的 API 可能仍然会尝试识别语音,即使是在乱码录音或带有一堆静态的录音中。我看到 Nuance 有他们的语音识别软件的SDK版本,但我还没有机会查看 SDK,因为他们似乎没有在他们的网站上提供 SDK 的试用版。

0 投票
1 回答
364 浏览

audio - 将 MP3 的每一分钟导出为单独的 WAV

这绝对是一个奇怪的问题,但我正在寻找一种方法,将 60 分钟的 mp3 混合分成 60 个单独的 1 分钟长的 wav 文件,以便与 Echonest 等音频指纹识别 API 一起使用。

这是否可以在单个 ffmpeg 命令中实现,或者我是否必须使用以下值运行 ffmpeg 的多次迭代:

-ss 是以秒为单位的起点。-t 是以秒为单位的持续时间。

0 投票
2 回答
111 浏览

android - 我应该编译所需的文件还是只包含它们?

我正在构建一个 echoprint echonest android 应用程序来识别音乐。我遵循了本教程,其中 echoprint codegen 所需的包是 boost 1.54.0,它只包含在 android.mk 文件中的 echoprint codegen 中。这完美地工作了代码生成器生成声音代码,但即使对于像江南风格这样的流行歌曲,它也不匹配。我想知道我是否还应该编译 Boost 文件或。

0 投票
1 回答
247 浏览

javascript - 自动比较单个单词的发音

我想制作一个简单的游戏,通过麦克风比较给定单词的发音,该单词作为音频文件提供,与玩家发音的相同单词。我所说的发音是指单词的“声音”应该与给定的单词进行比较。

如果系统能够返回玩家发音单词与给定单词的接近程度的百分比,那将是理想的。

我在 StackOverflow 中发现了有关音频指纹语音识别的问题。他们似乎表明,这是一个非常困难的问题。但是由于我不需要完整的语音识别,所以我错过了一种更简单的方法。

所以我的问题是:这是否可行?如果可行,我该如何解决这个问题?有没有可以支持我的库。

0 投票
1 回答
1064 浏览

c++ - 使用 Chromaprint 时出现空白声学指纹

我正在尝试使用声学指纹来区分多个 wav 文件。我正在使用 AcoustID 的 Chromaprint。我正在使用 32 位窗口。我已经下载了文件 fpcalc.exe 并试图在多个 wav 文件上运行它。问题是,它正在为这些 wav 文件生成空白 FINGERPRINT。我正在运行命令

文件为 wav 格式,文件大小为 1 秒。我在更大的文件上运行相同的命令,然后 FINGERPRINT 工作正常。

任何指针?

0 投票
1 回答
380 浏览

speech-recognition - 如何测量语音文件的相似度

我有两个语音音频文件。每一个都是从电话交谈中记录下来的,它们的长度不同(第一个文件长 3 秒,第二个文件长 5 秒)。我想测量两个文件的相似性。请注意,我对语音信号中的文本内容不感兴趣(即 NO Speech to Text)。我只需要测量相似度并获得分数或百分比。

我发现很少有工具可以进行音频指纹分析,但我发现几乎所有工具都针对音乐音频文件,并且在其语音时表现不佳。

0 投票
1 回答
4438 浏览

java - 摩尔斯电码音频解码器 (Android)

我需要为 Android 创建一个“莫尔斯电码解码器”,非常类似于这个应用程序:https ://play.google.com/store/apps/details?id=org.jfedor.morsecode

我的应用程序必须从麦克风收听声音(摩尔斯电码)。并将代码翻译成原文。

老实说,这个功能是一个更大项目的一部分。我的意图是创建一个系统:

  • ENCODE:一个将文本翻译成声音的Java应用程序(在这种情况下,我选择了莫尔斯电码......我们没有太多时间来创建我们的“字母表”......)。所以,它是文本到声音的。
  • DECODE:一个Android App,用于“听”这个声音(莫尔斯电码)并获取原文。所以,声音到文本。

创建 java 应用程序没有问题,但它适用于 android 应用程序......听声音是可以的,但要理解它是问题所在。

只需将问题分解为多个部分。有:

1)从麦克风录音[好的,没问题]

2)检测音调的开始时间

3)将其构建成一系列点和破折号。

4)将其翻译成文本

我将从第 2 步开始)... 想像这样行事:我将应用程序设置为以特定频率和速度收听声音。必须识别莫尔斯电码...翻译它并为用户打印原始文本...但是如何?我不知道从哪里开始。有任何想法吗?

0 投票
3 回答
1332 浏览

c++ - 检测录音中的不同声音/来源

我需要一些关于我对 UNI 项目的想法的建议。

我想知道是否可以将音频文件拆分为来自不同音频源的不同“流”。例如,将音频文件拆分为:引擎噪音、火车噪音、人声、始终不存在的不同声音等。

我不一定需要从编程语言中执行此操作(尽管它会很理想),但也可以通过使用 Sound Forge 之类的声音处理软件手动执行。不过,我需要先知道这是否可行。我对声音处理一无所知。

第一阶段完成后(分离声音),我想确定一个处理过的声音是否存在于另一个录音中。目的是声音检测。对于(一个理想的)示例,获取汽车引擎声音并将其与另一个文件进行匹配,并确定该音频是否是汽车引擎的录音。它不需要那么精确,我想检测一个不恒定的声音,比如喇叭!也会好的。

我会做编程部分,我只需要一些关于寻找什么的指针(软件、数学等)。由于我不是声音专家,如果可能的话,这将是一个非常有趣的项目。

谢谢。

0 投票
1 回答
592 浏览

java - 使用 JAVA 在 echoprint 服务器中摄取(更新哈希代码)

我正在使用 JAVA 开发一个 android 应用程序。我想要的只是

  1. 录制一首歌曲并生成其哈希(CODE),然后查询 echoprint 服务器以获取匹配项。
  2. 如果未找到匹配项,则将其上传到服务器(摄取)以供将来参考。

我已经能够实现第一部分。有人可以向我推荐 JAVA 的第二部分吗?(PS:我已经看到如何使用 python 代码来做到这一点——但这对我的情况没有帮助。)

另一个问题,我可以通过全球 echoprint 服务器实现第二个目标吗?或者,我需要自己设置一个吗?

我使用的参考资料是:

http://masl.cis.gvsu.edu/2012/01/25/android-echoprint/

https://github.com/gvsumasl/EchoprintForAndroid