Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何比较两个wave音频文件并生成分数?_Java_Audio_Audio Fingerprinting_Musicg - Fatal编程技术网

Java 如何比较两个wave音频文件并生成分数?

Java 如何比较两个wave音频文件并生成分数?,java,audio,audio-fingerprinting,musicg,Java,Audio,Audio Fingerprinting,Musicg,我的尝试: 我尝试使用API比较(指纹)两首音频歌曲(没有背景音乐)。 代码如下所示: file1.wav是主文件,file2.wav(反之亦然)是录制文件,两者都由同一个人演唱(没有背景音乐)和同一首歌曲 FingerprintSimilarity siml = new Wave("file1.wav") .getFingerprintSimilarity(new Wave("file2.wav"));

我的尝试:
我尝试使用API比较(指纹)两首音频歌曲(没有背景音乐)。

代码如下所示:
file1.wav是主文件,file2.wav(反之亦然)是录制文件,两者都由同一个人演唱(没有背景音乐)和同一首歌曲

     FingerprintSimilarity siml = new Wave("file1.wav")
                                    .getFingerprintSimilarity(new Wave("file2.wav"));
     System.out.println(siml.getScore());
但是它没有正确地比较这两个文件,并且得到很低的分数(0.099384),即使两首歌是由同一个人以相同的方式演唱的

我如何解决这个问题

任何其他java API都会有助于做到这一点?

是相同的录音吗?@ostrichofevil,两个录音(一个作为主文件,另一个是录音)由同一个人演唱。你得到的分数很低,原因与Shazam不适用于不同的录音相同:即使它们在耳朵里听起来是一样的,波形在足够小的水平上实际上是非常不同的。@ostrichofevil,谢谢你的回复。你的意思是如果一个人唱同一首歌两次,当我们比较两个波形文件时,他们会不同吗?(我们不会得到最低分数?@ChandraSekhar是的,如果同一个人唱两遍就完全正确了,因为这种情况下指纹不是办法,也许你需要建立一套音频功能(音高、色度)来进行比较。