Python开发Jarvis AI时遭遇pywintypes.com_error问题求助
解决pyttsx3运行时的pywintypes.com_error错误
问题场景
使用Python开发Jarvis AI语音模块时,调用pyttsx3获取语音列表时触发pywintypes.com_error错误。
错误回溯信息
Traceback (most recent call last): File "d:\BiggestProject\MyAi\speak.py", line 4, in <module> voices = engine.getProperty('voices') File "C:\Users\Win7\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pyttsx3\engine.py", line 154, in getProperty return self.proxy.getProperty(name) File "C:\Users\Win7\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pyttsx3\driver.py", line 185, in getProperty return self._driver.getProperty(name) File "C:\Users\Win7\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pyttsx3\drivers\sapi5.py", line 70, in getProperty return [self._toVoice(attr) for attr in self._tts.GetVoices()] File "C:\Users\Win7\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pyttsx3\drivers\sapi5.py", line 70, in <listcomp> return [self._toVoice(attr) for attr in self._tts.GetVoices()] File "C:\Users\Win7\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pyttsx3\drivers\sapi5.py", line 60, in _toVoice return Voice(attr.Id, attr.GetDescription()) File "C:\Users\Win7\AppData\Local\Temp\gen_py\3.8\C866CA3A-32F7-11D2-9602-00C04F8EE628x0x5x4.py", line 1750, in GetDescription return self._oleobj_.InvokeTypes(4, LCID, 1, (8, 0), ((3, 49),),Locale pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, None, None, None, 0, -2147200966), None)
涉事代码
import pyttsx3 engine = pyttsx3.init('sapi5') voices = engine.getProperty('voices') engine.setProperty('voices',voices[0].id) def speak(audio): engine.say(audio) engine.runAndWait()
解决方案
- 修复或重新安装系统语音包:错误码-2147200966通常对应SAPI5语音引擎的语音数据损坏。打开Windows控制面板的「语音识别」→「文本到语音转换」,检查已安装的语音是否正常,若异常则删除后重新下载安装对应语音包。
- 以管理员权限运行Python脚本:右键点击Python解释器或脚本文件,选择「以管理员身份运行」,避免权限不足导致无法访问SAPI5组件。
- 清理pywin32生成的缓存文件:删除路径
C:\Users\Win7\AppData\Local\Temp\gen_py下的所有文件,然后重新运行脚本,让pywin32重新生成正确的COM接口文件。 - 调整pyttsx3初始化方式:尝试不指定
sapi5驱动,直接使用pyttsx3.init()让系统自动选择合适的驱动,部分场景下可绕过SAPI5的兼容性问题。 - 更新或降级pyttsx3版本:当前使用的pyttsx3版本可能与Python3.8或Windows7存在兼容性问题,执行
pip install --upgrade pyttsx3更新到最新版,或尝试降级到2.71等稳定版本。
内容的提问来源于stack exchange,提问作者Shaikh Sameer
相关产品推荐
相关产品推荐

