java - 检查 .wav 文件的相似性

标签 java audio audio-fingerprinting

我正在尝试比较 .wav 文件的相似性。 我使用了谷歌音乐库,但我对类似的声音得到了不好的分数。我比较了同一辆车的两个汽车电机声音,录音声音与人声非常相似,但我得到的指纹相似度分数如 0.012468828。录音是用麦克风录制的。

获得这些糟糕分数的原因是什么?

我使用:

Wave wave = new Wave("wav1.wav");
Wave wave1 = new Wave("wav4.wav");
FingerprintSimilarity fingerprintSimilarity = wave.getFingerprintSimilarity(wave1);
float score = fingerprintSimilarity.getScore();
float similarity = fingerprintSimilarity.getSimilarity();
System.out.println("Similar sound :"+ "Score : " + score + "\n  Similarity : "+ similarity);

我的目标是创建一个程序,可以根据发动机声音找到汽车型号。

还有其他工作得更好的库还是音频指纹的问题?

最佳答案

您应该基于指纹。

但是你应该做的是:

  1. 获取数据
  2. 获取数据注释(什么声音属于什么电机)
  3. 从数据中提取音频特征
  4. 处理数据以消除冗余
  5. 开发分类模型
  6. 评估模型
  7. 判断哪些功能最适合您的问题
  8. 在应用程序中实现模型

正如您所看到的,它不仅仅是音乐那么简单。原因是对于音乐,有些人已经做了上述(很多很多次)并开发了相似性模型。对于您的领域和应用程序特定模型,我还没有听说过任何事情。因此,您应该检查声音事件类似论文,或者检查是否有人开发了用于声音事件的应用程序(因为您拥有的是声音事件)。

附注对于上述步骤,您可以使用 MARSYS、JAudio、Sonic Visualizer 和 MIRToolbox 以及 WEKA。

关于java - 检查 .wav 文件的相似性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28488166/

相关文章:

algorithm - 使用 Echonest 从音频生成音频指纹

ios - Echoprint iOS 缺少框架

java - 在 linux 和 macintosh 上查找 "application data"的目录

java - 检测 Kafka 集群已关闭的最佳方法是什么?

java - 在 GWT 项目中使用常量接口(interface)

audio - 使用 ffmpeg 更改要与视频合并的音频文件的音量

android - 如何在 Android 中使用 KeyGenerator for FingerPrint API 生成 key

java - 检测 Sprite 是否被触摸的简单方法?

html - Adobe Animate cc 2017 - 当我发布/测试带有音频的项目时,HTML5 卡住

c# - 使用 p/invoke 和 win-api 监控音频线路输入 (C#)