如何将mp3转换成wav|将mp3格式的音频转换为采样率8k的wav
如何将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> </dependency>1.2 工具类代码:
【如何将mp3转换成wav|将mp3格式的音频转换为采样率8k的wav】
public boolean toWav(String inputFilePath, String outputFilePath) { Converter aConverter = new Converter(); try { aConverter.convert(inputFilePath, outputFilePath); } catch (JavaLayerException e) { e.printStackTrace(); 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());  百思特网; WaveFileReader 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.getAud百思特网ioInputStream(dstFormat, audioIn); File file = new File(outputFilePath); WaveFileWriter writer = new WaveFileWriter(); writer.write(convertedIn, AudioFileFormat.Type.WAVE, file); } catch (Exception e) { e.printStackTrace(); } }
- 秦国|秦国十大名将将军排名 秦国武力猛将排行榜
- 麻将机|自动麻将机品牌排行榜,自动麻将机哪个牌子质量好
- 海洋动物|海洋动物十大游泳健将 十种时速最快的海洋动物
- 宋朝|宋朝名将排名TOP10 宋朝厉害的武将排名
- 《中国哲学如何登场》读后感摘抄
- 电视柜|电视柜如何选择尺寸
- 德祐的门店复制模式——如何快速培养人才? 薄荷曼哥
- 如何看出一个女生慢慢不喜欢你了
- 中介|中介如何知道你跳单了
- 如何阅读德里达读后感精选
