Android Text to Speech语音到印度口音

时间:2018-02-27 19:56:15

标签: android text-to-speech

我开发了一个提供文本到语音功能的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!");
    }
}

但是当我访问此功能时,它仍然以美国口音说话。 任何帮助将不胜感激。

4 个答案:

答案 0 :(得分:1)

var value = dataObject.name

我使用https://www.w3schools.com/tags/ref_language_codes.asp

中的语言

希望能帮到你。

答案 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);

希望这会在将来帮助更多的人。