TTS语言环境被忽略

时间:2018-04-27 11:01:10

标签: android text-to-speech

我无法让TTS Locale工作。

  window.TTS.checkLanguage()

将此列表退回给我      ["ku,pt_BR,ta,ja_JP,sk_SK,tr_TR,ru_RU,ko_KR,hi_IN,fil_PH,fi_FI,ca,hr,es_ES,sk,ro_RO,zh_TW,sw,el_GR,fr_BE,en_GB,nl_NL,la,et_EE,pt_PT,fr_FR,bs,km_KH,vi_VN,en_AU,pl_PL,da_DK,sq,cy,en_US,bn_IN,si_LK,in_ID,yue_HK,uk_UA,bn_BD,sr,en_IN,cs_CZ,it_IT,ne_NP,de_DE,es_US,zh_CN,th_TH,sv_SE,nb_NO,hu_HU" ]

现在,我尝试运行:

window.TTS.speak({
        text: 'hello world!!',
        locale: 'en-GB',
        rate: 1.3
    }, function () {
        // Do Something after success
    }, function (reason) {
        // Handle the error case
    });

'烯GB'存在,但它将其视为EN-US声音。

我使用tts插件进行了cordova(https://github.com/vilic/cordova-plugin-tts),但我认为它与android TTS相关。知道为什么会这样吗?

1 个答案:

答案 0 :(得分:0)

en_GB的语音数据安装到您的设备上。

根据the source code,插件内部调用方法setLanguage,以便为语音选择语言和国家/地区。该方法返回以下支持状态:

  • LANG_AVAILABLE
  • LANG_COUNTRY_AVAILABLE
  • LANG_COUNTRY_VAR_AVAILABLE
  • LANG_MISSING_DATA
  • LANG_NOT_SUPPORTED

如果您的设备没有en_GB的语音数据,则该方法可以将en_US设置为后备并返回LANG_AVAILABLE。在这种情况下,TTS用en_US语音说出文字。