macOS(Python 11)下pyttsx3 save_to_file方法失效问题咨询
问题原因与解决办法
pyttsx3在Python 11 Mac上异常的原因
pyttsx3依赖Mac原生的NSSpeechSynthesizer实现语音合成,但该库的C扩展适配未跟上Python 3.10+版本的更新,导致初始化或音频保存流程出现兼容性错误。
py3-tts的两个问题解析
1. save_to_file调用后进程卡住无法退出
py3-tts的save_to_file方法在Mac平台上未正确处理异步合成的事件循环,导致合成完成后进程无法正常释放资源退出。可以通过手动触发资源释放解决:
import py3tts engine = py3tts.init() try: engine.save_to_file('Hello World', 'test.wav') engine.runAndWait() finally: engine.stop()
2. 无法保存为MP3格式
py3-tts基于Mac原生语音合成,而原生接口仅支持输出WAV格式音频,库本身未内置MP3编码模块。要生成MP3,需借助第三方编码工具(如ffmpeg)先导出WAV再转码:
- 安装ffmpeg:通过Homebrew执行
brew install ffmpeg - 转码代码示例:
import os import py3tts engine = py3tts.init() engine.save_to_file('Hello World', 'test.wav') engine.runAndWait() engine.stop() # 将WAV转成MP3 os.system('ffmpeg -i test.wav -codec:a libmp3lame -qscale:a 2 test.mp3')
内容的提问来源于stack exchange,提问作者Qiulang
相关产品推荐
相关产品推荐

