我不能让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