TTS区域设置失效:checkLanguage返回列表但speak调用未生效
解决TTS Locale未生效的问题
首先看你调用window.TTS.checkLanguage()返回的语言列表里,英式英语的标识是en_GB(下划线分隔),但你代码里用的是en-GB(连字符分隔),这应该就是导致区域设置被忽略的核心原因——TTS API识别的是下划线格式的locale标识。
第一步:修正Locale格式
把代码里的locale: 'en-GB'改成locale: 'en_GB',试试这个修改后的代码:
window.TTS.speak({ text: 'hello world!!', locale: 'en_GB', rate: 1.3 }, function () { // 执行后的操作... });
额外排查要点
如果修改格式后还是不行,可以试试这几个方向:
- 确认你的设备/浏览器环境是否已经安装了
en_GB对应的语音包,有些TTS引擎需要手动安装特定区域的语音包才能生效 - 检查是否有其他代码逻辑无意中覆盖了TTS的locale设置,比如全局配置或者后续的TTS调用
- 可以先调用
window.TTS.isLanguageAvailable('en_GB')来验证这个locale是否真的可用,返回true再执行speak操作
内容的提问来源于stack exchange,提问作者user2837319
相关产品推荐
相关产品推荐

