嘿,我正在尝试为3种不同的语言创建一个tts它们是英语,西班牙语和印度尼西亚我对英语和西班牙语没有问题,他们工作得很好,但我遇到了印尼语言的错误我尝试了不同的方法和不同的地区组合,但仍然没有运气
以下是我在印度尼西亚的代码:
Locale locInd = new Locale("IDN");
int result = tts.setLanguage(locInd);我尝试过locale("in","ID");,locale("ind","IDN");,locale("in_ID);,但每次尝试都没有成功,输出是英语而不是印尼语
我使用jellybean(4.2.2)仿真器来运行它,当我运行仿真器时,区域设置中有in_ID
编辑:我发现了我的问题,在pico TTS印尼文没有安装,有没有一个教程,每次有不支持的语言,它会弹出要求安装?
发布于 2016-11-16 12:19:46
MainActivity.tts.setLanguage(new Locale("id","ID"));我用了它,它起作用了!
显然,你的手机必须支持印尼语。我试了两部不同的手机,其中一部不会说印尼语
发布于 2020-01-27 13:33:59
无论何时更改区域设置,都要在将文本初始化为语音时设置语言:
textToSpeech = new TextToSpeech(context, new TextToSpeech.OnInitListener() {
@Override
public void onInit(int status) {
switch (status) {
case TextToSpeech.SUCCESS: {
synchronized (this) {
int result = textToSpeech.setLanguage(set the indonesia id here);
// Take action based on the result of initialisation
}
}
break;
default: {
Toast.makeText(appContext, appContext.getResources().getString(R.string.tts_init_failed), Toast.LENGTH_LONG).show();
}
break;
}
}
});发布于 2021-08-02 14:54:07
如果您使用的是"id", "ID"或Locale("id", "ID"),但无法正常工作,那么您可以尝试以下代码
Kotlin :
private fun askSpeechInput(){
if(!SpeechRecognizer.isRecognitionAvailable(this)){
Toast.makeText(this, "Speech recognition is not available", Toast.LENGTH_SHORT).show()
}else{
val i = Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH)
i.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "id-ID")
i.putExtra(RecognizerIntent.EXTRA_PROMPT, "Coba ucapkan sesuatu")
launchSomeActivity.launch(i)
}
}这对我来说很有效
https://stackoverflow.com/questions/24816359
复制相似问题