比较两个不同的音频文件不起作用 [英] Comparing two different audio files doesn't work

查看:297
本文介绍了比较两个不同的音频文件不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想比较例如MP3和WAV两个音频文件。我使用 musicg 通过指纹进行比较。

 波RECORD1 = NEW WAVE(music1.toString());
波RECORD2 = NEW WAVE(music2.toString());
FingerprintSimilarity相似= record1.getFingerprintSimilarity(RECORD2);
的System.out.println(Similarity.getSimilarity());

musicg只对WAV工作,所以我转换MP3使用为WAV JAVE

 文件临时=新的文件(temp.wav);
    AudioAttributes音频=新AudioAttributes();
    audio.set codeC(pcm_s16le);
    audio.setBitRate(新的整数(128000));
    audio.setChannels(新整型(2));
    audio.setSamplingRate(新的整数(44100));
    EncodingAttributes ATTRS =新EncodingAttributes();
    attrs.setFormat(WAV);
    attrs.setAudioAttributes(音频);
    恩codeR EN codeR =新恩codeR();
    EN coder.en code(源,温度,ATTRS);

和现在的问题,当我尝试比较两个WAV,我没有转换工作的指纹完美的,但是当我比较两个不同的音频,我必须将它转换总是返回音频相同。 波浪创建 RECORD1 相同的频谱为 RECORD2 的时候,我给它两种不同的声音。


解决方案

 文件临时=新的文件(temp.wav);

两个波由相同的文件备份。 :)

I want to compare two audio file for example mp3 and wav. I use musicg to compare by fingerprints.

Wave record1 = new Wave(music1.toString());
Wave record2 = new Wave(music2.toString());
FingerprintSimilarity Similarity=record1.getFingerprintSimilarity(record2);
System.out.println(Similarity.getSimilarity());

musicg work only on wav so I convert mp3 to wav using JAVE

    File temp = new File("temp.wav");
    AudioAttributes audio = new AudioAttributes();
    audio.setCodec("pcm_s16le");
    audio.setBitRate(new Integer(128000));
    audio.setChannels(new Integer(2));
    audio.setSamplingRate(new Integer(44100));
    EncodingAttributes attrs = new EncodingAttributes();
    attrs.setFormat("wav");
    attrs.setAudioAttributes(audio);
    Encoder encoder = new Encoder();
    encoder.encode(source, temp, attrs);

And now the problem, when I try compare two wav that I don't convert fingerprints work perfect but when I compare two different audio that I have to convert it's always return that both audio are same. Wave create record1 the same spectrogram as record2 when I give to it two different audio.

解决方案

File temp = new File("temp.wav");

both Waves are backed by the same file. :)

这篇关于比较两个不同的音频文件不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆