Azure语音服务TTS调用失败:WS_OPEN_ERROR_UNDERLYING_IO_OPEN_FAILED
解决Azure语音服务文本转语音(Golang/SPX CLI)WS_OPEN_ERROR_UNDERLYING_IO_OPEN_FAILED连接错误
问题描述
运行Golang版Azure语音服务文本转语音快速入门代码时,触发WS_OPEN_ERROR_UNDERLYING_IO_OPEN_FAILED错误,提示连接远程主机失败。同时使用SPX CLI调用服务也出现相同连接问题。
环境信息
- 操作系统:Ubuntu 22.04.2 LTS
- 技术栈:Golang(SPX CLI同步测试失败)
- 运行环境:localhost
- 网络:美国家庭网络
已完成排查
- 确认Azure资源密钥、区域配置完全正确
- 验证Azure语音服务资源处于活跃状态
- 尝试创建westus、eastus等不同区域的新服务,问题依旧存在
- 仅主工作笔记本出现该问题,另一台笔记本运行相同代码/CLI命令可正常工作
排查方向及解决步骤
1. 检查系统代理设置
Ubuntu系统可能存在全局代理或应用级代理导致连接异常:
- 查看当前代理配置:运行
echo $http_proxy $https_proxy,若输出非空,尝试临时取消代理:unset http_proxy unset https_proxy - 之后重新运行Golang代码或SPX CLI命令测试连接
2. 验证防火墙/安全组规则
- 检查Ubuntu本地防火墙(ufw)是否限制了出站连接:
若启用了ufw,确保允许Azure语音服务相关域名的出站流量,可临时关闭ufw测试:sudo ufw statussudo ufw disable - 检查笔记本上的第三方安全软件(如杀毒软件、防火墙工具),确认未拦截Azure语音服务的连接请求
3. 检查DNS解析是否正常
异常的DNS解析可能导致无法正确连接Azure服务端点:
- 尝试手动解析Azure语音服务区域端点(以westus为例):
若解析失败,尝试更换DNS服务器(如Google DNS 8.8.8.8或Cloudflare DNS 1.1.1.1):nslookup westus.tts.speech.microsoft.com
编辑/etc/resolv.conf,添加:
保存后重新测试解析和连接nameserver 8.8.8.8 nameserver 8.8.4.4
4. 检查网络适配器或VPN配置
- 若笔记本曾配置过VPN,确认VPN已完全关闭,残留的VPN路由可能影响连接
- 尝试禁用并重新启用网络适配器:
可通过sudo ip link set <你的网卡名> down sudo ip link set <你的网卡名> upip addr命令查看网卡名(通常是eth0或wlan0)
5. 验证系统CA证书是否完整
Azure语音服务使用HTTPS连接,系统缺失根CA证书可能导致握手失败:
- 更新Ubuntu系统证书库:
更新完成后重启终端再测试sudo apt update && sudo apt install --reinstall ca-certificates
内容的提问来源于stack exchange,提问作者user2736727
相关产品推荐
相关产品推荐

