我在mytts.speak("hi hello hi",parameter,parameter...);
但是这些词语一直没有任何差距或停顿,我希望在单词之间留出一些时间间隔以便更清晰。
我怎么能实现这个目标?
答案 0 :(得分:2)
如果我理解你的问题,Chrome user profile directory主题有答案(rushi)。
只需通过for循环将字符串拆分并在循环片段上循环,即可在TTS队列中添加延迟:
mytts.speak(snippet, QUEUE_ADD, null);
mytts.playSilentUtterance(2000, QUEUE_ADD, null);
答案 1 :(得分:0)
你可以用单词分割你的句子,并在一个新的主题中用for循环说出来。拆分这个短语会给你一点延迟,但如果你想要一个更长的一个,你可以在线程上工作并让他们等待。 它会是这样的:
final Handler h = new Handler();
String[] words = text.split(" ");
for (final CharSequence word : words) {
Runnable t = new Thread() {
@Override
public void run() {
m_TTS.speak(word, TextToSpeech.QUEUE_ADD, null, "TTS_ID");
}
};
h.postDelayed(t, 1000);
}
答案 2 :(得分:0)
这是我在每个单词之间放置更长的暂停时间的方法:
///初始化并将TextToSpeech声明为tts
//“行”是您要说的字符串
char ch = '';
String temp = "";
for(int counter = 0; counter < line.length; counter++)
{
ch = charAt(counter);
temp = temp + ch;
if(ch == ' ' || counter == (line.length() - 1))
{
tts.speak(temp, TextToSpeech.QUE_ADD, null, null);
tts.playSilentUtterance(1000, TextToSpeech.QUEUE_ADD,null);
temp = "";
}
}
答案 3 :(得分:-1)
只需添加一个逗号。示例:如果您希望以下网址的显示速度较慢,请输入a,t,t,r,s.gov
希望有帮助。