·

pyttsx3运行错误

Published at 2024-06-08 20:38:00Viewed 366 times
Professional article
Please reprint with source link

接上文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 人喜欢

Comments

There is no comment, let's add the first one.

弦圈热门内容

Get connected with us on social networks! Twitter

©2024 Guangzhou Sinephony Technology Co., Ltd All Rights Reserved