我已經給了一個文字mytts.speak("hi hello hi",parameter,parameter...);
如何給詞與詞之間的停頓或間隙在TTS在Android中
,但沒有任何差距不斷說的話或暫停,我想更加清晰提供單詞之間有一段時間間隔。
我怎麼能做到這一點?
我已經給了一個文字mytts.speak("hi hello hi",parameter,parameter...);
如何給詞與詞之間的停頓或間隙在TTS在Android中
,但沒有任何差距不斷說的話或暫停,我想更加清晰提供單詞之間有一段時間間隔。
我怎麼能做到這一點?
你可以用單詞分開你的句子並在一個新線程的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);
}
請讓我知道它是否可以幫助您。 – Giuseppe
什麼是「TTS_ID」? – HrishikeshKulkarni
這是由開發人員定義的標識符。請參閱官方的https://developer.android.com/reference/android/speech/tts/TextToSpeech.html#speak(java.lang.CharSequence,int,android.os.Bundle,java.lang.String)。 – Giuseppe
如果我正確理解你的問題,this線程都有答案(由如是)。
mytts.speak(snippet, QUEUE_ADD, null);
mytts.playSilentUtterance(2000, QUEUE_ADD, null);
多少時間間隔你想:
只要通過一個for循環分割在片段串和循環中增加延遲到TTS隊列? – Kedarnath
1秒鐘就可以做到了。在模擬器中給出'/'我cud實現了這個,但是當我在sumsung設備上運行它時,行爲發生了改變。 – SMS
同意不同的設備,TTS的不同行爲。甚至有時候,語音質量也是不同的。 – Kedarnath