PythonPython·

pyttsx3运行错误

投稿時間:2024-06-08 20:38:00閲覧数:288
専門記事
転載は出所を明記してください

接上文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的代码!

コメント欄

まだコメントがありません。最初のコメントを投稿しましょう!

弦圈热门内容

为什么有了uwsgi 还要 nginx 服务器?

有关nginx的简单介绍,详见Nginx服务器反向代理。uwsgi是python的一个通信协议,同时也是一种web服务器,而nginx则是高性能反向代理的web服务器。在Django项目服务器部署中,uwsgi几乎是不可替代的。然而部署好了uwsgi,其实django接口已经能够响应请求,为什么还要额外配置nginx服务器?因为,相比于直接将真实地址暴露在公网上,在外面套一层nginx安全性更高,具体如下:安全问题,程序不能直接被浏览器访问到,而是通过nginx,nginx只开放某个接口,uwsgi本身是内网接口,这样运维人员在nginx上加上安全性的限制,可以达到保护程序的作用。负载均衡问题,一个uwsgi很可能不够用,即使开了多个work也是不行,毕竟一台机器的cpu和内存都是有限的,有了nginx做代理,一个nginx可以代理多台uwsgi完成uwsgi的负载均衡。静态文件处理效率问题,用django或是uwsgi这种东西来负责静态文件的处理是很浪费的行为,而且他们本身对文件的处理也不如nginx好,所以整个静态文件的处理都直接由nginx完成,静态文件的访问完全不去经过uwsg ...

Vertically aligning CSS :before and :after content

I am trying to centre the link with the image, but can't seem to move the content vertically in any way.<h4>More Information</h4> <a href="#" class="pdf">File Name</a>The icon is 22 x 22px.pdf { font-size: 12px; } .pdf:before { padding:0 5px 0 0; content: url(../img/icon/pdf_small.png); } .pdf:after { content: " ( .pdf )"; font-size: 10px; } .pdf:hover:after { color: #000; }

数据清洗之异常值处理

在数据清洗过程中,异常值处理是一个非常重要的步骤。异常值,也称为离群值或异常点,是指与大多数观察值明显不同的观察值。这些值可能是由于测量错误、数据录入错误、设备故障或者真实现象的特殊情况而产生的。异常值可能会对数据分析和建模产生负面影响,因此需要进行适当的处理。下面是一些常见的异常值处理方法:删除异常值: 最简单的方法是直接删除异常值。这种方法适用于异常值数量较少、对数据整体影响较小的情况。但是,如果异常值数量较多或者对数据整体影响较大,则不建议使用这种方法。替换异常值: 可以用数据集的其他统计特征值(如均值、中位数、众数)来替换异常值。这种方法可以保持数据集的整体分布特征,并且相对于直接删除异常值,对数据的影响较小。分箱处理: 将数据分成多个箱子(bins),然后用每个箱子的均值或中位数来代替箱子中的异常值。这种方法可以减少异常值对整体数据的影响,并且保持了数据的整体分布特征。基于模型的方法: 可以使用回归、聚类或其他机器学习模型来识别和处理异常值。这些模型可以自动识别数据中的异常值,并提供相应的处理方案。使用离群值检测算法: 可以使用一些专门用于检测异常值的算法,如孤立森林、局部异 ...