MacOS使用pyttsx3运行AI语音助手时出现KeyError: 'sapi5'错误如何解决
pyttsx3在MacOS环境报KeyError: 'sapi5' 解决方案
报错原因
sapi5是Windows平台专属的语音合成驱动,MacOS系统原生不支持该驱动,触发该报错是因为你运行的项目代码默认指定了sapi5作为pyttsx3的初始化驱动参数,该问题和pyttsx3版本无关,你之前执行的降级适配操作不解决核心问题。
修复步骤
- 修改项目中pyttsx3初始化的代码
将原代码中指定sapi5的初始化语句:
engine = pyttsx3.init('sapi5')
替换为适配MacOS的驱动参数:
engine = pyttsx3.init('nsss')
如果需要实现跨平台兼容,可以增加系统判断逻辑:
import sys import pyttsx3 if sys.platform == 'win32': # Windows平台使用sapi5驱动 engine = pyttsx3.init('sapi5') elif sys.platform == 'darwin': # MacOS平台使用nsss驱动 engine = pyttsx3.init('nsss') else: # Linux平台使用espeak驱动 engine = pyttsx3.init('espeak')
- 验证MacOS语音功能正常
打开Mac系统偏好设置→辅助功能→语音内容,确认已安装可用的系统语音包,避免系统层面语音功能异常导致后续报错。 - 测试修复效果
运行以下测试代码验证修复是否生效:
import pyttsx3 # MacOS下指定nsss驱动初始化 engine = pyttsx3.init('nsss') engine.say("语音功能测试正常") engine.runAndWait()
如果运行后能正常听到语音输出,说明问题已解决。
内容的提问来源于stack exchange,提问作者Thayne
相关产品推荐
相关产品推荐

