我使用下面的代码使用Android内置的TTS引擎将.txt文件合成为.mp3文件.
码:
textToSpeech.synthesizeToFile(readFileText,utterParam,destinationFileName);
textToSpeech.setOnUtteranceProgressListener(new UtteranceProgressListener() {
@Override
public void onStart(final String utteranceId) {
Log.e(TAG,"onStart...");
}
@Override
public void onDone(final String utteranceId) {
Log.e(TAG,"onDone...");
}
@Override
public void onError(String utteranceId) {
Log.e(TAG,"onError...");
}
});
以上是示例代码.
以下是应用程序执行流程:
问题:文件合成完成后,我只能播放mp3文件.对于大小为1 mb的文件,大约需要1分钟.
我可以做些什么改进吗?
注意:我们需要使用MediaPlayer,因为我们需要播放/暂停阅读器.
谢谢.
最佳答案
我已经解决了这个问题,将整个文件转换成段的段落,并将段落添加到TTS引擎中并直接播放.
public static String[] convertFileToParagraph(String fileContent) {
// String pattern = "(?<=(rn|r|n))([ \t]*$)+";
String pattern = "([ \\t\\r]*\\n[ \\t\\r]*)+";
return Pattern.compile(pattern,Pattern.MULTILINE).split(fileContent);
}
/**
* Divides files in to paragraphs
*/
private void divideFiletochunks() {
try {
currentFileChunks = convertFileToParagraph(fileContent);
currentFileChunks = makeSmallChunks(currentFileChunks);
addChunksToTTS();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Divides file paragraphs into sentences of 200 characters
*
* @param currentFileChunks : list of paragraphs
* @return : list of divided file
*/
private String[] makeSmallChunks(String[] currentFileChunks) {
try {
ArrayList
谢谢.