2013-08-16 33 views
2

使用Android TextToSpeech時,有沒有什麼辦法可以指定語音的性別,例如tts.setGender(TextToSpeech.MALE)tts.speak("<voice gender='male'>Hello </voice>")Android TextToSpeech,設置性別?

謝謝您的時間,

最好的問候,

詹姆斯

回答

0

我一直在尋找相同的,但做一些研究之後,有沒有辦法來配置聲音。無論音高,速度也沒有性別

2

您可以設置tts.setLanguageLocale.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有更多關於它的信息。

+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

2

語音數據(用於生成語音)對於特定語音非常具體,數據量非常大 - 移動設備更爲明智。所以你不能隨意切換男性/女性。以Ivona voices爲例,您可以下載美國英語(Kendra,女性)或英國英語(Amy,女性)的語音數據,每個數據大小爲〜150 MB。

您可以嘗試播放不同的語言(美國與英國),取決於用戶的語音數據加載,它可能是男性,可能是女性。

至於音高和速度,是的,你可以改變TTS音高和速度。雖然我嘗試過,但聽起來不太好,但可能取決於您使用的是哪種語音數據。

這些API:

tts.setPitch(float pitch); 
tts.setSpeechRate(float speechRate); 

在兩種情況下,參數1.0表示 '正常的' 俯仰/速率。