首页 > 解决方案 > 忽略 TTS 语言环境

问题描述

我无法使 TTS 语言环境工作。

  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
    });

'en-GB' 存在,但它读取为 EN-US 语音。

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

标签: androidtext-to-speech

解决方案


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

根据源码,插件内部调用方法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语音朗读文本。


推荐阅读