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

访客4年前黑客资讯344

如何将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识别引擎的测试!

相关文章

吸烟有哪些危害(吸烟对身体的四大危害)

吸烟有哪些危害(吸烟对身体的四大危害)

吸烟有哪些危害(吸烟对身体的四大危害)我们经常说,吸烟有害健康。然而,道理我们都懂,但实际上能够成功戒烟的人却寥寥无几。一天一包烟,这个量对于烟民来说,既不算多,也不算少。今天,我们就以一天一包烟为例...

8种实用策略,解决推荐系统的冷启动难题

8种实用策略,解决推荐系统的冷启动难题

编辑导读:在现实糊口中我们常常会用淘宝、京东、百度等产物去搜索想要买的产物可能想要知道的讯息。在需求不明晰的环境下,产物会对我们的需求举办深度挖掘和匹配,这就是推荐系统在起浸染。提起推荐系统,各人第一...

范冰冰晒自拍美照 红唇妩媚皮肤白皙光滑

范冰冰 26日,范冰冰晒出一组自拍美照,红唇浓郁皮肤白皙,气质温柔妩媚。...

幸运商城官网下载(幸运商城幸运三分技巧)

幸运商城官网下载(幸运商城幸运三分技巧)

对于英雄联盟大多数玩家而言,总会拥有几款自己平时最喜欢的英雄的皮肤,当然土豪玩家请选择无视。随着越来越多的皮肤上架,精湛的皮肤特效也会让玩家忍不住想要买买买。但无奈囊中羞涩,碰到喜欢的皮肤只能多看...

儿童摄影加盟费用是多少,儿童摄影加盟哪个品

儿童摄影加盟费用是多少,儿童摄影加盟哪个品

济南金色童年儿童摄影发现现在不少家长都想记录自己孩子的成长经历,因此现在很多家长都会给孩子拍照,从而使现在很多儿童摄影行业生意很不错,那么对于想开儿童摄影加盟店的投资人来说,现在创业都可以怎么选择加盟...

苹果手机微信朋友圈图片显示不出来

发生这类状况可在qq设置中,挑选常见故障修补开展处理。进入微信,点一下我,设定,挑选帮助与反馈,点一下右上方的扳子标志,挑选常见故障修补,微信朋友圈,弹出对话框,点一下明确,重新启动手机微信就可以。...