如何将mp3转换成wav(将mp3格式的音频转换为采样率8k的wav)

访客4年前黑客资讯326

如何将mp3转换成wav(将mp3格式的音频转换为采样率8k的wav)

需求

最近系统上需要增加一个功能,就是测试我们系统的ASR识别引擎,这就需要上传一段音频,然后我们返回识别后的文字,但是我们的识别引擎需要采样率16k,格式为wav的音频文件,但是我们又不能限定用户上传的录音格式,所以需要我们在后台转换一下格式,然后再去识别。

1、MP3转换wav

做这个功能时候, 发现网上的资料真的很少,所以,只能安全上网了,在外面找到了 *** 。

1.1 引入jar:

<dependency>
            <groupId>javazoom</groupId>
            <artifactId>jlayer</artifactId>
            <version>1.0.1</version>
      &nbsp百思特网; </dependency>

1.2 工具类代码:

public boolean toWav(String inputFilePath, String outputFilePath) {
 
        Converter aConverter = new Converter();        try {
            aConverter.convert(inputFilePath, outputFilePath);
        } catch (JavaLayerException e) {
            e.printStackTrace();         &n百思特网bsp;  return false;
        }        return true;
    }

1.3 测试类:

 public static void main(String args[]) {        String filePath = "C:\\data\\hellowordread.pcm";        String targetPath = "C:\\data\\111333.wav";
        toWav(filePath,targetPath);
    }

还是非常简单哦。

2、将wav转换为8k采样率

public void toStandardWav( String inputFilePath, String outputFilePath){        try {            byte[] bytes = Files.readAllBytes(new File(inputFilePath).toPath());
            WaveFileR百思特网eader reader = new WaveFileReader();
            AudioInputStream audioIn = reader.getAudioInputStream(new ByteArrayInputStream(bytes));
 
            AudioFormat srcFormat = audioIn.getFormat();            int targetSampleRate = 8000;
 
            AudioFormat dstFormat = new AudioFormat(srcFormat.getEncoding(),
                    targetSampleRate,
                    srcFormat.getSampleSizeInBits(),
                    srcFormat.getChannels(),
                    srcFormat.getFrameSize(),
                    srcFormat.getFrameRate(),
                    srcFormat.isBigEndian());
 
            System.out.println(audioIn.getFrameLength());
            AudioInputStream convertedIn = AudioSystem.getAudioInputStream(dstFormat, audioIn);
 
            File file = new File(outputFilePath);
            WaveFileWriter writer = new WaveFileWriter();
            writer.write(convertedIn, AudioFileFormat.Type.WAVE, file);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

总结

经过上面代码,我们就可以支持常用的音频格式进行ASR识别引擎的测试!

相关文章

怎么入驻天猫店(2020天猫开店流程和费用)

怎么入驻天猫店(2020天猫开店流程和费用)

环节一:进驻申请办理 1.查看申请办理资质 知名品牌:有关天猫商城列举的这些热招知名品牌,店家能够强烈推荐高品质知名品牌给天猫商城,一部分品类不是限制知名品牌进驻。...

被骗了钱怎么追回来了怎么找黑客

假的,我也上过当,被骗了二千元整。就当给黄志炜先生吃药了烧纸钱了。祝骗子们早点到阴间报到。 最后提醒大家的一点:就是千万不要相信有人和你说他也被骗过他之前找谁谁谁帮忙追回来的然后介绍给你让你去找千万不...

手机清除缓存东西会丢失吗(微信清除缓存丢失什么)

  一:什么是缓存   大家常说缓存文件一般是根据电脑浏览器的。在我们第一次浏览网址时,电脑上会将网址上的照片和数据信息下载到电脑上。如果我们再浏览网址,网址会立即从当地载入,这叫缓存文件。   二:...

卧室墙纸价位(pvc自粘卧室墙纸壁纸)

我跟你是遇到同样的问题,房子刚装修好,老婆还怀孕,听装潢公司的人说一个星期就好,我也不懂,仅供参考。 1.pvc墙纸优缺点以纯纸、无纺布、纺布等为基材,在表面喷涂PVC糊状树脂,再经印花。压花等工序加...

dahon美国大行自行车怎么样(最适合骑长途的折叠车)

dahon美国大行自行车怎么样(最适合骑长途的折叠车)

相信许多老骑友对大行P8都已经不生疏了,这款被誉为大行折叠的超性价比之作,将在2019年中旬推出全新涂装版本。届时,喜爱P8的骑友们在线下门店,就可以有买到一辆差异以往的大行KBC083。 旧版P...