You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python开发虚拟助手添加语音输出功能时出现comtypes相关AttributeError问题求助

解决方案:pyttsx3初始化时出现AttributeError: 'SpeechLib' has no attribute 'ISpeechVoice'

我之前也碰到过一模一样的问题,这本质是comtypes库生成的Windows语音接口缓存文件出了损坏或者不兼容的情况,下面是几个亲测有效的解决办法,按顺序试试:

方法1:删除comtypes的缓存接口文件

这是最常见的解决方式,步骤如下:

  • 找到你的虚拟环境里comtypes的gen文件夹,路径大概是:
    C:\Users\User\PycharmProjects\romanticAlexa\venv\lib\site-packages\comtypes\gen
  • 删除该文件夹下所有以SpeechLib开头的文件(比如SpeechLib.py、SpeechLib.pyd、SpeechLib__init__.py这些)
  • 重新运行你的代码,comtypes会自动重新生成适配当前系统的正确接口文件

方法2:重装相关依赖并指定驱动

如果方法1没效果,可以尝试彻底重装依赖,同时初始化时明确指定驱动:

  1. 先卸载现有库:
pip uninstall pyttsx3 comtypes -y
  1. 重新安装:
pip install pyttsx3 comtypes
  1. 修改初始化代码,明确指定Windows的sapi5驱动:
engine = pyttsx3.init('sapi5')  # 不再用默认的None,直接指定驱动名

方法3:检查系统语音组件

如果上面两个方法都不行,可能是系统层面的语音合成组件有问题:

  • 打开Windows控制面板,找到「语音识别」→「文本到语音转换」
  • 确认有可用的语音包(比如微软的David、Zira等),如果没有就下载安装一个
  • 可以尝试切换一下语音引擎,再重新运行代码

测试脚本

你可以先运行这个简化的测试脚本,确认语音输出功能正常后再整合到你的虚拟助手中:

import pyttsx3

try:
    # 明确指定sapi5驱动
    engine = pyttsx3.init('sapi5')
    engine.say('Hello! Your voice assistant is working now.')
    engine.runAndWait()
except Exception as e:
    print(f"Error during test: {str(e)}")

内容的提问来源于stack exchange,提问作者Edvin Parmeza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 15:08:10