M1 Mac使用pyttsx3文本转语音引擎时无法导入NSAutoreleasePool报错
问题根因
你遇到的ImportError: cannot import name 'NSAutoreleasePool' from 'Foundation'报错,是M1芯片Mac的arm64架构下,已安装的pyobjc组件版本和Python 3.9不兼容、组件安装不完整导致的。
解决方案
按以下步骤操作即可修复:
第一步:卸载当前所有不完整的pyobjc相关组件
执行命令:pip3 uninstall -y pyobjc pyobjc-core pyobjc-framework-Foundation PyObjCTools pyttsx3第二步:安装适配M1 + Python3.9的指定版本pyobjc
执行命令:pip3 install --no-cache-dir pyobjc==8.5.1第三步:验证pyobjc安装有效性
打开Python3交互终端,执行以下代码无报错即说明组件安装正常:from Foundation import NSAutoreleasePool第四步:重装pyttsx3
执行命令:pip3 install pyttsx3==2.90
完成以上操作后再运行你的原有代码即可正常执行。
备选轻量化方案
如果不需要pyttsx3的跨平台能力,可直接调用Mac原生say命令实现语音播报,无需额外安装任何依赖,代码示例如下:
import os os.system('say "Hello sir, how may I help you, sir."')
内容的提问来源于stack exchange,提问作者Rushi Pankade
相关产品推荐
相关产品推荐

