华为ML Kit文本转语音报错11301扬声器不支持问题求助
解决方案
错误原因
你配置的TTS语言参数和发音人参数不匹配:指定了英文语言MLTtsConstants.TTS_EN_US,却选择了仅支持中文的发音人MLTtsConstants.TTS_SPEAKER_FEMALE_ZH,发音人不支持当前所选语言,所以触发参数非法报错。
修复步骤
- 步骤1:修正配置的语言和发音人匹配关系
如果你需要播报英文内容,将发音人替换为英文对应发音人,示例代码:
如果你需要播报中文内容,将语言替换为中文对应参数,示例代码:mlTtsConfig = new MLTtsConfig() .setLanguage(MLTtsConstants.TTS_EN_US) // 替换为英文女声发音人 .setPerson(MLTtsConstants.TTS_SPEAKER_FEMALE_EN) .setSpeed(1.0f) .setVolume(1.0f);mlTtsConfig = new MLTtsConfig() // 替换为简体中文语言参数 .setLanguage(MLTtsConstants.TTS_ZH_HANS) .setPerson(MLTtsConstants.TTS_SPEAKER_FEMALE_ZH) .setSpeed(1.0f) .setVolume(1.0f); - 步骤2:增加可选兼容校验
为了适配不同设备的支持情况,可以在初始化后先查询当前设备对应语言下的可用发音人列表,再选择合适的发音人传入,避免硬编码导致的不兼容问题。 - 步骤3:其他异常排查
修正匹配关系后如果仍有报错,依次检查:- 填入的ApiKey是否正确,是否已在开发者后台开通TTS服务权限
- 测试用的华为设备HMS Core版本是否符合要求,建议升级到最新版本再测试
内容的提问来源于stack exchange,提问作者Waheed Shah
相关产品推荐
相关产品推荐

