我不能讓TTS使用與en_US
不同的語言發言。如果我嘗試使用例如en_GB
,然後speak()
不會產生任何聲音並立即返回。僅當使用「en_US」語言時,TTS纔有效
語言數據安裝正確。我在設備上有Google Text-to-speech Engine。此外,我試圖使用另一個應用程序(口袋),並與任何語言完美的工作。
我的代碼很簡單:
OnInitListener listener = new OnInitListener() {
public void onInit(int status) {
tts.setLanguage(Locale.UK); // returns LANG_COUNTRY_AVAILABLE
tts.speak("Hello world", TextToSpeech.QUEUE_FLUSH, null);
}
};
TextToSpeech tts = new TextToSpeech(activity, listener, "com.google.android.tts");
正如你所看到的,setLanguage()
回報LANG_COUNTRY_AVAILABLE
,但它並不重要。
我試過許多語言,但也沒什麼改變:
tts.setLanguage(Locale.UK);
tts.setLanguage(Locale("spa", "ESP"));
tts.setLanguage(tts.getAvailableLanguages().iterator().next());
我在哪裏錯了?
你嘗試過'setLanguage(new Locale(「eng」,「GBR」))嗎? – brandall
@brandall剛試過。結果相同。但是,無論如何感謝 –
當您轉到Android文本到語音設置並將語音更改爲英國時,是否「聽取示例」的工作? 'onInit'' SUCCESS'的結果是什麼?不要在'speak()'中使用null,請正確使用API,否則解決此問題會給您帶來更多問題。 – brandall