Azure Android Speech SDK翻译结果语音合成失败问题求助
排查Azure Speech SDK翻译合成语音失效问题的步骤
问题概述
基于Azure Android Speech SDK开发的翻译应用,文本翻译功能正常,但自2024年11月起无法获取翻译结果的合成语音,日志显示连接错误:
11-06 13:23:46.038: E/oqin.translato(3609): netdebug 000000000.093726285 counter:9 ret:-1 connectErrno:115 latencyMs:0 addr:20.189.108.93 port:443 processname:oqin.translator
核心代码逻辑无改动,应用在中国内地使用,核心伪代码如下:
TranslationRecognizer mTranslationRecognizer = new TranslationRecognizer(config, audioInput); mTranslationRecognizer.recognized.addEventListener(new EventHandler<TranslationRecognitionEventArgs>() { @Override public void onEvent(Object o, TranslationRecognitionEventArgs e) { // 返回翻译文本结果,此功能正常 } mTranslationRecognizer.synthesizing.addEventListener(new EventHandler<TranslationSynthesisEventArgs>() { @Override public void onEvent(Object o, TranslationSynthesisEventArgs e) { // 返回翻译文本对应的合成语音,自11月起无响应 }
排查步骤
- 验证SDK版本兼容性:确认当前使用的Azure Android Speech SDK版本,检查2024年11月前后是否有服务端协议更新,若使用旧版本,尝试升级至最新稳定版测试。
- 检查区域配置正确性:确保Speech服务的区域设置为中国内地可用区域(如
eastasia、southeastasia),海外区域可能因网络限制导致合成服务连接失败。 - 排查网络连通性:
- 测试设备能否正常访问日志中的IP(20.189.108.93)及443端口,可通过
ping或telnet命令验证。 - 检查应用是否被系统防火墙、VPN或代理工具拦截,尝试关闭代理后重新测试。
- 测试设备能否正常访问日志中的IP(20.189.108.93)及443端口,可通过
- 确认语音合成语言支持:检查翻译目标语言对应的语音合成是否仍被支持,可在Azure Speech Studio中直接测试目标语言的合成功能是否正常。
- 检查Azure账户状态:登录Azure门户,查看Speech服务的运行状态,确认是否存在服务中断或配额超限;同时验证密钥权限是否包含语音合成服务(后台配置可能存在变动)。
- 添加详细错误监听:在代码中补充全局错误捕获逻辑,获取更具体的服务端错误信息,示例代码:
mTranslationRecognizer.canceled.addEventListener(new EventHandler<TranslationRecognitionCanceledEventArgs>() { @Override public void onEvent(Object o, TranslationRecognitionCanceledEventArgs e) { if (e.getReason() == CancellationReason.Error) { Log.e("SpeechError", "Error code: " + e.getErrorCode() + ", message: " + e.getErrorDetails()); } } });
- 隔离测试合成功能:绕过翻译流程,直接调用Speech SDK的语音合成接口传入翻译文本,验证合成服务是否能正常返回音频,区分是翻译合成联动问题还是单纯合成服务故障。
内容的提问来源于stack exchange,提问作者guan yuzhu
相关产品推荐
相关产品推荐

