Azure Text to Speech Python SDK macOS环境超时错误求助
解决Azure文本转语音在部分Mac设备上超时的问题
问题概述
相同环境(MacOS 14.5、Python 3.11.8、azure-cognitiveservices-speech 1.41.1)下,8台Mac中有5台运行TTS代码时始终超时,报错包含:
USP error: timeout waiting for the first audio chunk
File:/Users/runner/work/1/s/external/azure-c-shared-utility/pal/ios-osx/tlsio_appleios.c Func:tlsio_appleios_destroy Line:196 tlsio_appleios_destroy called while not in TLSIO_STATE_CLOSED.
3台设备运行正常,已排除环境版本、凭据差异问题。
解决建议
1. 强制使用系统TLS库
Azure语音SDK在Mac上可能存在TLS适配问题,强制SDK调用系统原生TLS实现:
在初始化SpeechConfig前添加代码:
import os os.environ['AZURE_SPEECH_USE_SYSTEM_TLS'] = '1'
2. 调整超时参数
默认超时阈值可能无法覆盖网络条件稍差的设备,手动延长超时时间:
speech_config.set_property(speechsdk.PropertyId.Speech_Synthesis_InitialSilenceTimeoutMs, '10000') # 设为10秒 speech_config.set_property(speechsdk.PropertyId.Speech_Synthesis_EndpointTimeoutMs, '20000') # 设为20秒
3. 排查单设备网络拦截
即使处于同一网络,个别设备可能存在防火墙/代理限制:
- 测试设备能否访问Azure语音端点:运行
curl -v https://<你的服务区域>.tts.speech.microsoft.com/(替换区域为你的Azure服务区域,如eastasia) - 检查第三方防火墙(如Little Snitch)或VPN是否拦截了SDK的网络请求
4. 调整SDK版本
当前1.41.1版本可能存在特定Mac版本的适配bug,尝试:
- 降级到1.40.0版本:
pip install azure-cognitiveservices-speech==1.40.0 - 升级到最新稳定版:
pip install --upgrade azure-cognitiveservices-speech
5. 替换异步调用为同步方式
尝试用同步方法替代异步调用,避免回调逻辑的潜在问题:
result = synthesizer.speak_text(text) # 替换原speak_text_async().get()
6. 重置系统网络缓存
部分设备可能存在网络缓存异常,执行以下命令重置:
sudo dscacheutil -flushcache && sudo killall -HUP mDNSResponder
重启设备后重新测试。
内容的提问来源于stack exchange,提问作者AndyPi
相关产品推荐
相关产品推荐

