android - 忽略 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有关。知道为什么会这样吗?
解决方案
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
语音朗读文本。
推荐阅读
- python - 如何使用 scikit-learn 获取带有集群组的新 pandas 数据框列
- react-native - 使 ScrollView 在本机反应中水平自动滚动时出错
- unity3d - 在玩家移动的方向上画一条线
- c++ - 为什么一个变量的值与另一个值相同
- python-3.x - Google Drive API 网络钩子
- python - Pandas 从最后一个时间戳自动反向重采样
- javascript - 尝试通过js调用python函数时出错
- java - 如何在没有继承的情况下避免 DTO 重复?
- php - Telegram bot 获取 forward_from 用户 ID
- angular - 角度 - 如何在表格单元格中将数组显示为多行