我正尝试使用这个来安装TTS软件包。一切都很顺利,直到我尝试执行以下命令:
import pyttsx
我收到了这个错误:
File "/usr/local/lib/python3.4/dist-packages/pyttsx/__init__.py", line 18, in module <br>
from engine import Engine<br>
ImportError: No module named 'engine'
非常感谢您的帮助!
我正尝试使用这个来安装TTS软件包。一切都很顺利,直到我尝试执行以下命令:
import pyttsx
我收到了这个错误:
File "/usr/local/lib/python3.4/dist-packages/pyttsx/__init__.py", line 18, in module <br>
from engine import Engine<br>
ImportError: No module named 'engine'
非常感谢您的帮助!
大家好,有一个更新的包与Python3兼容:
离线工作时,所产生的声音没有延迟。
pip install pyttsx3
请访问https://pyttsx3.readthedocs.io获取完整的使用文档。 谢谢!
结合Jacob Tsui和Jokhongir Mamarasulov的建议对我很有效。总结如下:
在 site_packages/pyttsx/init.py 中,将 "from engine import Engine" 修改为
from .engine import Engine
那么,在 site_packages/pyttsx/engine.py 文件中,
将 import driver
修改为
from . import driver
将 except Exception, e
修改为
except Exception as e
最后,在 site_packages/pyttsx/driver.py 中将 except Exception, e
修改为
except Exception as e
请查看上述作者对这些更改背后的原理的回应。
pip install pyttsx3
就足够了。 - shiva我之前也遇到过同样的问题,尝试使用pyttsx3替代pyttsx。 首先安装pyttsx3
pip install pyttsx3
的内容
import pyttsx
对于
import pyttsx3
接下来您需要更改引擎导入(如果您在主要的.py文件中使用它)。请使用engineio代替。安装它。
pip install python-engineio
然后将 import engine 改为 import engineio 并更改你的变量。
这里有一个例子:
import pyttsx3
# import engineio #engineio module is not needed.
engineio = pyttsx3.init()
voices = engineio.getProperty('voices')
engineio.setProperty('rate', 130) # Aquí puedes seleccionar la velocidad de la voz
engineio.setProperty('voice',voices[0].id)
def speak(text):
engineio.say(text)
engineio.runAndWait()
speak("What do you want me to say?")
while(1):
phrase = input("--> ")
if (phrase == "exit"):
exit(0)
speak(phrase)
print(voices)
对于Python3,请通过pip3 install pyttsx3安装最新版本,并调用import pyttsx3
。
将site_packages/pyttsx/init.py中的"from engine import Engine"修改为
from .engine import Engine
from . import driver
原因:导入语句“from engine import Engine”告诉Python从engine目录中导入Engine模块。在我们的情况下,engine不是一个目录,而是一个Python文件,即engine.py。因此,我们需要告诉Python从当前目录(“.”)导入该engine模块。
我也遇到了同样的问题。 首先尝试执行以下命令:
pip install pyttsx3
然后不要使用
import pyttsx
使用这个
import pyttsx3
它将会工作。
pip install pywin32 pypiwin32 pyttsx3
我觉得它对我来说完美地运作了。
import os
import sys
import pyttsx3
engine = pyttsx3.init()
engine.say('hello world ')
engine.runAndWait()
File "/usr/local/lib/python3.4/dist-packages/pyttsx/__init__.py", line 18, in module <br>
from engine import Engine<br>
ImportError: No module named 'engine'
请参阅this link以获取先前的pyttsx3版本
原因:
我们遇到上述错误的原因是由于pyttsx3版本不受您的Python版本支持。即使您遇到错误,也可以使用FOR pyttsx进行修改。
修改位于C:\ Users \ YOUR USER \ AppData \ Local \ Programs \ Python \ Python38-32 \ Lib \ site_packages \ pyttsx \ init.py中的init.py文件。
更改
from engine import Engine
到
from .engine import Engine
pyttsx
修改位于C:\Users\YOUR USER\AppData\Local\Programs\Python\Python38-32\Lib\site_packages\pyttsx\engine.py的engine.py文件。
更改
import driver
至
from . import driver
这是上述错误的两个主要解决方案