如何在Android中的TTS中给出单词之间的暂停或间隙

时间:2014-05-06 11:59:41

标签: android text-to-speech

我在mytts.speak("hi hello hi",parameter,parameter...);

中提供了一个文字

但是这些词语一直没有任何差距或停顿,我希望在单词之间留出一些时间间隔以便更清晰。

我怎么能实现这个目标?

4 个答案:

答案 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

希望有帮助。