科大讯飞语音合成
科大讯飞语音合成(java)
最近总是有朋友问科大语音合成的问题,包括在linux 部署合成语音,返回错误码:20021的问题,说百度了很多都不好使,今天有时间给出一版自己实际项目中写的一个流程。部分代码也是整合网上所得。分享如下~
1、放置动态库(放置不对会返回错误码: 20021)
msc32.dll、msc64.dll、libmsc32.so、libmsc64.so 放到自己的 C:\Windows\System32下即可,linux 放在 根目录的lib下,以64位为例:libmsc64.so ->/lib64
2、将iflytek的Msc的jar包引入项目
3、合成代码
SynthesizeToUriListener synthesizeToUriListener = new SynthesizeToUriListener() {
//progress为合成进度0~100
public void onBufferProgress(int progress) {}
//会话合成完成回调接口
//uri为合成保存地址,error为错误信息,为null时表示合成会话成功
public void onSynthesizeCompleted(String uri, SpeechError error) {
try {
System.out.println("uri0"+uri);
System.out.println("error"+error);
if(null == error){
String newUri = uri.replace(".pcm",".wav");
//因为科大讯飞转换为 .pcm 文件,这里自己转换成 .wav
ConvertAudioFiles.convertAudioFiles(uri,newUri);
}
tedisUtil.tedisSetString("lock_tl","true");
} catch (Exception e) {
e.printStackTrace();