我无法让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相关。知道为什么会这样吗?
答案 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
语音说出文字。