当前位置: 首页 > 知识库问答 >
问题:

比较两个不同的音频文件不起作用

金健
2023-03-14

我想比较两个音频文件,例如mp3和wav。我用Musicg通过指纹进行比较。

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

musicg只在wav上工作,所以我使用JAVE将mp3转换为wav

    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);

现在的问题是,当我尝试比较两个我不转换指纹的wav时,工作完美,但是当我比较两个不同的音频时,我必须转换它总是返回两个音频是相同的。

共有1个答案

单于海荣
2023-03-14
File temp = new File("temp.wav");

两个Wave都由相同的文件支持。:)

 类似资料:
  • 问题内容: 我有一份詹金斯工作,后来被克隆和修改。现在,我想比较两个作业的配置。不是历史更改,不是结果,而是两个作业的配置。 是否可以比较两个Jenkins作业的配置? 问题答案: 尝试: 要么

  • 问题内容: 我正在尝试摆脱Java的困扰。单元测试对我来说非常重要,因此最近我开始使用JUnit。一开始很难,但我已经掌握了。至此为止,我所有的测试都进行了工作,除了比较相同类的两个对象(我没有尝试测试创建不同类的对象的函数)。基本上,当我在类中有一个创建该类新实例的方法并尝试测试该方法时,会收到一个奇怪的错误。 “预期:runnersLog.MTLog@433c675d,但是是runnersLo

  • 问题内容: 假设我有两个表,表A和表B,并且我想比较某个列。 例如, 表A包含以下列:IP,主机,应用 表B具有以下列:IP,数据中心,服务器,模型,最后更新 如何比较两个表之间的IP列以获取差异? 我知道表是否具有相同的列,我可以使用并集和“减号”来获取差异,但是我无法找出表具有不同列的方式。 谢谢! 问题答案: 这将输出两个表中不匹配行的所有列,并且在任一侧都有NULL。

  • 我有两个视频和两个音频 1:-视频1-长度:-60秒||音频1-长度:-15秒 2:-视频-长度:-86秒| |音频2-长度:-18秒 同时播放video1和audio1,如果audio1结束,则重新启动该音频,直到video1结束。这将是最后的视频1。 同样的方式, 同时播放video2和audio2,如果audio2结束,则重新启动该音频,直到video2结束。这将是最后的视频2。 之后,将最

  • 我有一个客户对象类,它有一些变量,并且已经实现了一个关于其中一个变量的比较器。然而,我需要为不同的变量last_name实现另一个比较器。 因为我的Customer类中不能有2个compareTo()方法,所以我决定在这里专门创建一个Comparing类 但一旦触及Collections.sort(客户); 它不会激活下面的公共int比较(Customer Customer_1,Customerc