Tasker任务报unsupported locale %tts错误,已装Google TTS如何修复?
这个问题我之前帮不少用户排查过,大概率是Locale格式或者变量引用方式的问题,给你几个具体的排查和解决步骤:
修正语言代码格式:你当前设置的
%tts值是com.google.android.tts:deu-deu,但Google TTS通常使用ISO 639-1标准的两位语言码(而非三位的deu)加上国家码,德语(德国)的正确格式应该是de-DE。先把变量值改成com.google.android.tts:de-DE试试,这是最常见的错误点。拆分变量配置更稳妥:Tasker的「Say」动作其实支持分别指定引擎和Locale,没必要把两者绑在一个变量里。建议拆分两个变量:
- 新建
%tts_engine,值设为com.google.android.tts - 新建
%tts_lang,值设为de-DE
然后在「Say」动作的设置里,分别将「Engine」选择为%tts_engine,「Locale」选择为%tts_lang,这样变量引用更清晰,也不容易出错。
- 新建
验证Google TTS的语言配置:打开手机系统设置→「语言和输入法」→「文字转语音输出」,选中Google文字转语音引擎,进入「语言」选项,确认德语(德国)已经下载完成,并且可以尝试在这个界面直接测试语音输出,确保引擎本身能正常工作。
做个无变量的测试任务:先抛开变量,创建一个极简测试任务:添加「Say」动作,手动选择Google TTS引擎,Locale选德语(德国),内容设为
%TIME(或直接输入数字测试),运行任务看是否正常播报。如果这个测试成功,说明问题出在你的变量配置或引用逻辑上;如果还是报错,就清除Google TTS的缓存(设置→应用→Google文字转语音→存储→清除缓存),或者卸载重装引擎试试。检查Tasker的权限:确保Tasker已经获得「使用文字转语音服务」的权限,在手机应用权限设置里找到Tasker,确认相关权限已开启,有时候权限缺失也会导致TTS调用失败。
内容的提问来源于stack exchange,提问作者Ooker

