问题描述
我正在研究文本到语音转换,使用tts.synthesizetoFile()将文本保存到wav文件,并将输出的.wav文件合并为一个文件。问题是synthesizetoFile()是异步函数,在合并.wav文件之前需要放置一些延迟。将文本转换为wav的代码:
Pattern re = Pattern.compile("[^.!?\\s][^.!?]*(?:[.!?](?!['\"]?\\s|$)[^.!?]*)*[.!?]?['\"]?(?=\\s|$)",Pattern.MULTILINE | Pattern.COMMENTS);
Matcher reMatcher = re.matcher(charSequence);
/////
int position=0 ;
int sizeOfChar= charSequence.length();
String testStri= charSequence.substring(position,sizeOfChar);
while(reMatcher.find()) {
String temp="";
final File sddir = new File(Environment.getExternalStorageDirectory() + "/JG-Audios/temp/");
sddir.mkdir();
String tmAudioFilename = sddir.getAbsolutePath() + "/" + charSequence.lastIndexOf(reMatcher.group()) + ".wav";
try {
temp = testStri.substring(charSequence.lastIndexOf(reMatcher.group()),charSequence.indexOf(reMatcher.group())+reMatcher.group().length());
//tts.speak(temp,TextToSpeech.QUEUE_ADD,null,"play");
tts.synthesizetoFile(temp,new File(tmAudioFilename),mUtteranceID);
} catch (Exception e) {
temp = testStri.substring(0,testStri.length());
tts.speak(temp,null);
break;
}
}
此后,我合并输出的wav文件。有什么方法可以知道需要放置的确切延迟时间,还是可以知道文件实际上已转换为WAV?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)