【发布时间】:2020-08-23 20:35:08
【问题描述】:
我有一个 Flask 应用程序,它获取一个图像文件,使用 Tesseract OCR 提取文本,然后使用 pyttsx3 将该文本转换为 mp3。它将 .txt 和 mp3 文件保存在同一目录中。
第一次很好用。
但是,再次运行它而不重新启动应用程序,pyttsx3 操作失败:
OSError: [WinError -2147221008] CoInitialize has not been called
Traceback (most recent call last)
File "C:\Users\xxxxx\AppData\Local\Programs\Python\Python38\Lib\site-packages\pyttsx3\__init__.py", line 20, in init
eng = _activeEngines[driverName]
File "C:\Users\xxxxx\AppData\Local\Programs\Python\Python38\Lib\weakref.py", line 131, in __getitem__
o = self.data[key]()
注释掉对 pyttsx3 的调用可以解决该错误 - 现在可以一个接一个地上传多个图像而不会崩溃,因此肯定是 pyttsx3 导致了故障。
似乎循环仍在运行,因此它无法处理下一个图像,因为它仍在忙于第一个图像。
到目前为止尝试过:
- 使用 pyttsx3 版本 2.71 - 应用因不同的初始化错误而失败
- 使用 32 位 python 解释器 - 没有区别
- 文本使用会话而不是全局变量 - 没有区别
Windows 10 专业版 v1903
尝试过的浏览器:Edge、Chrome、Opera Python 3.8.4 64位版本
pyttsx3 v 2.90
IDE = VS 代码
帮助赞赏
【问题讨论】:
标签: python tesseract python-tesseract pyttsx