在我的Android TTS应用程序中,我试图说出日语。所以,我把语言设置为日语。
result = tts.setLanguage(Locale.JAPAN);
finalText = textField.getText().toString();
tts.speak(finalText , TextToSpeech.QUEUE_ADD, null);
这不起作用。所以我设置为
result = tts.setLanguage(Locale.JAPANESE);
finalText = textField.getText().toString();
tts.speak(finalText , TextToSpeech.QUEUE_ADD, null);
这也行不通。
精彩的案例是,除了英语之外的任何其他语言都不起作用!!!!!!!!!!!!!!!
这是我试图说的文字
私は英雄です。だから问题は何ですか?
所以我的问题是,这里发生了什么?不能说出其他语言吗?
更新
我在onInit()
设置语言后立即开始工作。以前,我尝试设置用户请求,这意味着,当用户手动将语言从美国更改为日语时,不会调用onInit()
。那么,如何在不重新启动活动的情况下手动调用OnInit()
?
答案 0 :(得分:2)
将代码编写为 在onCreate()
String Text = text.getText().toString();
tts.speak(Text, TextToSpeech.QUEUE_ADD, null);
Intent checkIntent = new Intent();
checkIntent.setAction(TextToSpeech.Engine.ACTION_CHECK_TTS_DATA);
startActivityForResult(checkIntent, MY_DATA_CHECK_CODE);
然后
public void onInit(int status) {
// TODO Auto-generated method stub
if(status== TextToSpeech.SUCCESS){
int result= tts.setLanguage(Locale.US);
if(result==TextToSpeech.LANG_MISSING_DATA||result== TextToSpeech.LANG_NOT_SUPPORTED){
Log.e("TTS", "This Language is not Supported");
}else{
talk.setEnabled(true);
speakOut();
}
}
else{
Log.e("TTS", "Initialization Falied");
}
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == MY_DATA_CHECK_CODE) {
if (resultCode == TextToSpeech.Engine.CHECK_VOICE_DATA_PASS) {
// success, create the TTS instance
tts = new TextToSpeech(this, this);
}
else {
// missing data, install it
Intent installIntent = new Intent();
installIntent.setAction(TextToSpeech.Engine.ACTION_INSTALL_TTS_DATA);
startActivity(installIntent);
}
}
}
这将为您提供选择语音服务的选项,您可以下载日语
答案 1 :(得分:0)
如果您尝试设置的区域设置不可用(在您的手机上),它会设置最近的可用区域设置,在您的情况下可能只有英文
答案 2 :(得分:0)
it not working because your default language select in your phone is English, you need to change it to your desired language or if the package is not available of the desired language you need to download it.
phone setting->language &input->google voice typing->languages.
yet your problem not solve than commenting me your problem.