python文字转语音,pyttsx3里的问题

kenshi2856 2018-05-14 04:57:20
import sys
import importlib
import pyttsx3
import pythoncom

pythoncom.CoInitialize()
importlib.reload(sys)
engine=pyttsx3.init()
engine.say('hello world')
engine.runAndWait()
这段代码在别人电脑上可以运行,在我电脑上却报下面这样的错误,重装系统都不行,求大神指教,这个问题困扰了我好几天了、、、、

Traceback (most recent call last):
File "D:\Python\Python36\lib\site-packages\pyttsx3\__init__.py", line 44, in init
eng = _activeEngines[driverName]
File "D:\Python\Python36\lib\weakref.py", line 137, in __getitem__
o = self.data[key]()
KeyError: None

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "D:\Python\Python36\lib\site-packages\win32com\client\dynamic.py", line 89, in _GetGoodDispatch
IDispatch = pythoncom.connect(IDispatch)
pywintypes.com_error: (-2147221005, '无效的类字符串', None, None)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
e=pyttsx3.init()
File "D:\Python\Python36\lib\site-packages\pyttsx3\__init__.py", line 46, in init
eng = Engine(driverName, debug)
File "D:\Python\Python36\lib\site-packages\pyttsx3\engine.py", line 52, in __init__
self.proxy = driver.DriverProxy(weakref.proxy(self), driverName, debug)
File "D:\Python\Python36\lib\site-packages\pyttsx3\driver.py", line 77, in __init__
self._driver = self._module.buildDriver(weakref.proxy(self))
File "D:\Python\Python36\lib\site-packages\pyttsx3\drivers\sapi5.py", line 22, in buildDriver
return SAPI5Driver(proxy)
File "D:\Python\Python36\lib\site-packages\pyttsx3\drivers\sapi5.py", line 26, in __init__
self._tts = win32com.client.Dispatch('SAPI.SPVoice')
File "D:\Python\Python36\lib\site-packages\win32com\client\__init__.py", line 95, in Dispatch
dispatch, userName = dynamic._GetGoodDispatchAndUserName(dispatch,userName,clsctx)
File "D:\Python\Python36\lib\site-packages\win32com\client\dynamic.py", line 114, in _GetGoodDispatchAndUserName
return (_GetGoodDispatch(IDispatch, clsctx), userName)
File "D:\Python\Python36\lib\site-packages\win32com\client\dynamic.py", line 91, in _GetGoodDispatch
IDispatch = pythoncom.CoCreateInstance(IDispatch, None, clsctx, pythoncom.IID_IDispatch)
pywintypes.com_error: (-2147221005, '无效的类字符串', None, None)
...全文
2485 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 7 楼 sd4892576 的回复:
看下系统是否能打开控制面板里的语音识别,如果不能说明系统缺少这个组件,去下一个就是了,现在很多系统为了省备份ISO都会去掉这个的。
对的对的,确实是这个问题,下载了语音识别组件就可以发声了!!!!!!万分感谢!!!!!!!
  • 打赏
  • 举报
回复
我这个也一样,总是报错 在init里的那个drivername那里 怎么办啊 大佬你解决了吗
Black__Jacket 2019-11-28
  • 打赏
  • 举报
回复
import pythoncom from win32com import client pythoncom.CoInitialize() engine=client.Dispatch("SAPI.SpVoice") engine.Speak('hello world') 确实可以
sd4892576 2019-10-23
  • 打赏
  • 举报
回复
看下系统是否能打开控制面板里的语音识别,如果不能说明系统缺少这个组件,去下一个就是了,现在很多系统为了省备份ISO都会去掉这个的。
左海 2019-08-22
  • 打赏
  • 举报
回复
看看你的系统有没有语音识别组件。控制面板里面搜索下关键字“语音”
A327 2019-08-21
  • 打赏
  • 举报
回复
引用 1 楼 管理員的回复:
试试

import pythoncom
from win32com import client

pythoncom.CoInitialize()
engine=client.Dispatch("SAPI.SpVoice")
engine.Speak('hello world')
这个已然报错呀,错的一毛一样
の娟子 2018-08-08
  • 打赏
  • 举报
回复
是你的python版本 问题 要用32位的 我也试了好久 后来改成32位的python就可以啦。。使用64位Python环境就会出现这种问题,显示没有注册,但是64位的我也不知道怎么注册。
手无护鸡之力 2018-05-16
  • 打赏
  • 举报
回复 1
试试

import pythoncom
from win32com import client

pythoncom.CoInitialize()
engine=client.Dispatch("SAPI.SpVoice")
engine.Speak('hello world')

37,743

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧