需求
最近,系统还需要一个功能来测试我们系统的ASR识别引擎,这需要上传一段音频,返回识别的字符,但我们的识别引擎需要采样率16k,wav格式的音频文件,但我们不能限制用户上传的录音格式,所以我们必须在后台转换格式,然后重新识别。
1、MP3转换wav
做这个功能时候, 发现网上的资料真的很少,所以,只能安全上网了,在外面找到了方法。
1.1 引入jar:
<dependency> <groupId>javazoom</groupId> <artifactId>jlayer</artifactId> <version>1.0.1</version> </dependency>
1.2 工具类代码:
public boolean toWav(String inputFilePath, String outputFilePath) { Converter aConverter = new Converter(); try { aConver(inputFilePath, outputFilePath); } catch (JavaLayerException e) { e.printStackTrace(); return false; } return true; }
1.3 测试类:
public static void main(String args[]) { String filePath = "C:\\data\\;; 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 AudioForma(), targetSampleRate, (), (), (), (), ()); Sy()); AudioInputStream convertedIn = AudioSy(dstFormat, audioIn); File file = new File(outputFilePath); WaveFileWriter writer = new WaveFileWriter(); wri(convertedIn, AudioFileFormat.Ty, file); } catch (Exception e) { e.printStackTrace(); } }
总结
经过上面代码,我们就可以支持常用的音频格式进行ASR识别引擎的测试!
1.《怎么做wav文件?总结很全面速看!将mp3格式的音频转换为采样率8k的wav》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《怎么做wav文件?总结很全面速看!将mp3格式的音频转换为采样率8k的wav》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/gl/3271863.html