使用Android TextToSpeech時,有沒有什麼辦法可以指定語音的性別,例如tts.setGender(TextToSpeech.MALE)
或tts.speak("<voice gender='male'>Hello </voice>")
?Android TextToSpeech,設置性別?
謝謝您的時間,
最好的問候,
詹姆斯
使用Android TextToSpeech時,有沒有什麼辦法可以指定語音的性別,例如tts.setGender(TextToSpeech.MALE)
或tts.speak("<voice gender='male'>Hello </voice>")
?Android TextToSpeech,設置性別?
謝謝您的時間,
最好的問候,
詹姆斯
我一直在尋找相同的,但做一些研究之後,有沒有辦法來配置聲音。無論音高,速度也沒有性別
您可以設置tts.setLanguage
到Locale.UK
女性和Locale.US
男性
if(myTTS.isLanguageAvailable(Locale.ENGLISH)==TextToSpeech.LANG_AVAILABLE)
myTTS.setLanguage(Locale.UK);
或者
if(myTTS.isLanguageAvailable(Locale.ENGLISH)==TextToSpeech.LANG_AVAILABLE)
myTTS.setLanguage(Locale.US);
唯一需要注意的是,這僅與新的Android版本的作品,我認爲4.0及以上。這個博客post有更多關於它的信息。
語音數據(用於生成語音)對於特定語音非常具體,數據量非常大 - 移動設備更爲明智。所以你不能隨意切換男性/女性。以Ivona voices爲例,您可以下載美國英語(Kendra,女性)或英國英語(Amy,女性)的語音數據,每個數據大小爲〜150 MB。
您可以嘗試播放不同的語言(美國與英國),取決於用戶的語音數據加載,它可能是男性,可能是女性。
至於音高和速度,是的,你可以改變TTS音高和速度。雖然我嘗試過,但聽起來不太好,但可能取決於您使用的是哪種語音數據。
這些API:
tts.setPitch(float pitch);
tts.setSpeechRate(float speechRate);
在兩種情況下,參數1.0表示 '正常的' 俯仰/速率。
對於英語來說這是一個好主意,但不幸的是我需要使用德語聲音,這是女性使用的DefaultEngine。我將嘗試下載另一個引擎(帶有男性聲音),並查看是否可以在聲音之間切換。 Das ist eine gute IdeefürEnglisch,aber leider muss ich eine deutsche Stimme benutzen,die weiblich ist mit DefaultEngine。 Ich werde versuchen,ein anderes Engine herunterladen(mitmännlicherStimme),und sehe,ob ich zwischen Stimmen umschalten kann。 – James