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

访客4年前黑客资讯330

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

相关文章

163邮箱登陆入口_怎么找黑客帮忙找人-哪里找靠谱黑客

这个问题暂时没办法处理,用msf脚本乃至手动发包都是相同的。...

今年干什么投资少挣钱快(月入2万的10个小生意)

今年干什么投资少挣钱快(月入2万的10个小生意)

哪些行业最挣钱?什么行业投次少收效快?想知道当前最具暴利的行业吗?假如您正在为投资什么行业而犯愁,那就让股疯为您推荐一下当下五大暴利行业排行榜吧。 TOP1:眼镜业 据统计,我国约莫有近4亿人配戴...

什么软件可以免费的找别人QQ号

  实际上微信聊天纪录不仅说成许多 情侣之间一直想要做的事儿,针对爸爸妈妈而言也是这般的,便是由于她们安心的把手机给他了,可是就担忧她们在网络上会教坏也就是说非常容易学生谈恋爱,害怕有一点点小事就危害...

鱼的门鱼火锅开店一共多少钱?加盟怎么样?

鱼的门鱼火锅开店一共多少钱?加盟怎么样?

陪伴着市场经济的不绝成长,有许多加盟商都想要举办加盟创业,可是呢,各人在项目标选择上都很纠结,因为市场上有着很是多的加盟项目,各人都不知道该如何举办加盟,此刻我就来为各人推荐一下鱼的门鱼暖锅加盟项目吧...

做冷饮批发有什么手续(做冷饮批发开店流程)

做冷饮批发有什么手续(做冷饮批发开店流程)

夏天将至,炎热的天气除了离不开空调风扇,还离不开冷饮,冷饮可作为降暑产品也可以作为休闲零食甜品,夏天冷饮店生意比较火热,其他季节的销量较小,但是也并不影响冷饮批发赚钱,仅需三个月就可以赚回一年的钱。...

2020免费查开宾馆记录(两个人开过房能查出来吗)

2020免费查开宾馆记录(两个人开过房能查出来吗)跟着游览业的开展,关于稀饭游览的旅客来说,不管是缓和压力或是获取洞察力,不管是浏览大天然付与的美丽天然景观,或是明白具备经历气味的人文景观,在观光完中...