pyttsx3开发Jarvis无语音输出及sapi5调用报错问题咨询
问题1:搭配wishMe逻辑的代码无语音输出
根因
你仅定义了speak、wishMe两个函数,没有主动调用执行逻辑,也没有添加主入口判断,脚本运行后直接结束,自然没有语音输出。你贴的可运行简化代码正是因为加了主入口判断、主动调用了speak函数才正常工作。
修复方案
在原有代码末尾添加主入口判断,主动调用wishMe函数即可:
# 原有代码保持不变,末尾新增以下内容 if __name__ == "__main__": wishMe()
问题2:sapi5初始化获取语音列表报com_error错误
根因
该错误是Windows SAPI5语音接口的常见报错,触发原因包括:
- 代码中属性名、方法名写错:设置语音的属性是单数
voice不是复数voices,设置属性的方法是小写开头的setProperty不是大写SetProperty - 系统中没有安装兼容的SAPI5语音包,或语音包损坏
- Python版本位数和系统语音包位数不匹配
修复方案
- 先修正代码错误,修正后的可运行代码如下:
import pyttsx3 engine = pyttsx3.init('sapi5') voices = engine.getProperty('voices') print(voices) print(voices[0].id) # 修正方法名和属性名错误 engine.setProperty('voice', voices[0].id) # 测试语音输出 engine.say("语音测试正常") engine.runAndWait()
- 如果修正代码后仍报错,检查系统语音配置:打开Windows设置→时间和语言→语音,确认已安装至少一个官方语音包(优先安装英文美国、中文简体语音包)
- 若仍未解决,确认你的Python版本为64位,和系统位数保持一致,重新安装
pyttsx3库即可。
内容的提问来源于stack exchange,提问作者krishna07
相关产品推荐
相关产品推荐

