pyttsx3运行错误
接上文Python实现语音朗读,运行示例代码时
import pyttsx3
engine = pyttsx3.init()
engine.say('开车不规范,亲人两行泪,I love China')
engine.runAndWait()
弹出以下错误:
经过检查,pywin32
等库都已经安装好了。尝试使用win32com
库替代pyttsx3
,结果仍然报错,报错内容为win32 api
。之后又尝试了几种办法,仍然都是跟win32
有关的报错。
因为之前pip安装总是SSL报错,刚开始以为是SSL报错导致安装出错。但是修复SSL报错问题后(见Python pip安装SSL证书错误),该问题仍然没解决。
最后经过了解,可能是pywin32
版本过高所导致。一般需要将pywin32
版本控制在305以下,可以使用225或者226这样的低版本。于是使用pip下载对应版本
pip install pypiwin32
pip install pywin32 == 225
然而,下载时发现已经没有225版本可以下载。因此另寻办法。最终,发现是pywin32
安装的版本有问题,导致包虽然有了,但是却无法识别,导致出现No module named 'win32gui'
的报错。
使用pip直接安装不行,就需要自己手动安装。在https://www.lfd.uci.edu/~gohlke/pythonlibs/中找到合适的pywin32
版本
下载后使用pip安装whl文件:
pip install pywin32-304.0-cp311-cp311-win_amd64.whl
安装成功后显示
接下来,测试仅需要win32
的代码
import win32com.client
speaker = win32com.client.Dispatch("SAPI.SpVoice")
speaker.Speak("hello")
成功运行!证明pywin32
的问题已经解决。然而,继续运行
import pyttsx3
engine = pyttsx3.init()
engine.say('开车不规范,亲人两行泪,I love China')
engine.runAndWait()
仍然报错,不过报错的内容变了
最后把C:\Python\Lib\site-packages\pywin32_system32
中的文件pywintypes36.dll
拷贝到目录C:\Python\Lib\site-packages\win32\lib
下,成功运行pyttsx3的代码!
0 人喜欢
There is no comment, let's add the first one.