我开发了一个提供文本到语音功能的Android应用程序。我使用下面的代码语法来设置印度重音:
public void onInit(int status) {
if (status == TextToSpeech.SUCCESS) {
int result;
Locale locale = new Locale("en","IN");
if (textToSpeech.isLanguageAvailable(locale) == TextToSpeech.LANG_AVAILABLE) {
result = textToSpeech.setLanguage(locale);
} else {
result = textToSpeech.setLanguage(Locale.ENGLISH);
}
if (result == TextToSpeech.LANG_MISSING_DATA
|| result == TextToSpeech.LANG_NOT_SUPPORTED) {
Log.e("TTS", "This Language is not supported");
}
} else {
Log.e("TTS", "Initilization Failed!");
}
}
但是当我访问此功能时,它仍然以美国口音说话。 任何帮助将不胜感激。
答案 0 :(得分:1)
答案 1 :(得分:1)
你应该使用
textToSpeech.setLanguage(new Locale("en", "IN"));
答案 2 :(得分:1)
我尝试这样做,对我有用
tts.setLanguage(new Locale("hin", "IND"));
否则,您还可以在初始化TextToSpeech对象时选择Google的文本转语音引擎,然后,只需选择印地语作为语言即可。
tts = new TextToSpeech(getApplicationContext(), new TextToSpeech.OnInitListener() {
//code for TTS
tts.setLanguage(new Locale("hin"));
}, "com.google.android.tts");//specifying which engine to use; if this is not available, it uses default
在此字符串“ com.google.android.tts”是Google的文本转语音引擎的程序包名称。
我希望这也对您有用! 干杯!
答案 3 :(得分:0)
下面的代码为您提供TextToSpeech的可用语言列表
TextToSpeech textToSpeech;
Log.e(TAG, "Languages: "+textToSpeech.getAvailableLanguages());
应该是:
[ko_KR,ru_RU,zh_TW,hu_HU,th_TH,nb_NO,da_DK,tr_TR,et_EE,bs, sw,vi_VN,en_US,sv_SE,su_ID,bn_BD,sk,el_GR, hi_IN ,fi_FI,km_KH, bn_IN ,fr_FR,uk_UA,en_AU,nl_NL,fr_CA,sr,pt_BR,si_LK,de_DE,ku, cs_CZ,pl_PL,sk_SK,fil_PH,it_IT,ne_NP,hr,zh_CN,es_ES,cy, ja_JP,sq,yue_HK, en_IN ,es_US,jv_ID,la,in_ID,ro_RO,ca,ta, zh_CN]
尝试使用 hi_IN 而不是 en_IN 可以帮助我解决印度口音。 下面的代码:
Locale locale = new Locale("hi_IN");
textToSpeech.setLanguage(locale);
希望这会在将来帮助更多的人。