Jok*_*lov 22 text-to-speech speech-synthesis python-3.4
我正在尝试使用它来安装TTS包.在我尝试执行以下命令之前一切正常:
import pyttsx
Run Code Online (Sandbox Code Playgroud)
我收回了这个错误:
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'
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激.谢谢!
Nat*_*hat 25
伙计们有一个与Python3兼容的更新包:
离线工作,产生的声音没有延迟.
pip install pyttsx3
Run Code Online (Sandbox Code Playgroud)
访问https://pyttsx3.readthedocs.io获取完整的使用文档.谢谢!
小智 16
结合Jacob Tsui和Jokhongir Mamarasulov的建议为我工作.总结一下:
在site_packages/pyttsx/init.py中,修改"从引擎导入引擎"到
from .engine import Engine
Run Code Online (Sandbox Code Playgroud)
然后,在site_packages/pyttsx/engine.py中,
修改import driver为
from . import driver
Run Code Online (Sandbox Code Playgroud)修改except Exception, e为
except Exception as e
Run Code Online (Sandbox Code Playgroud)最后,在site_packages/pyttsx/driver.py中修改except Exception, e为
except Exception as e
Run Code Online (Sandbox Code Playgroud)
请参阅上述作者的回复,了解这些变化背后的基本原理.
我刚遇到同样的问题,尝试使用pyttsx3而不是pyttsx 首先安装pyttsx3
pip install pyttsx3
Run Code Online (Sandbox Code Playgroud)
并改变
import pyttsx
Run Code Online (Sandbox Code Playgroud)
为了
import pyttsx3
Run Code Online (Sandbox Code Playgroud)
之后,您必须更改 引擎导入(如果您在主 .py 文件中使用它)。改用engineio。安装它
pip install python-engineio
Run Code Online (Sandbox Code Playgroud)
然后将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)
Run Code Online (Sandbox Code Playgroud)
希望这有助于某人
我找到了解决方案.库是用python2语言创建的,这两个版本之间没有太多差异,但仅在这种情况下发生.
移动到您的DP文件夹并更改engine.py "除了Exception as e"而不是"Exception,e除外",第67行.在drive.py,第105 行中执行相同操作.
由于文件是安全的,尝试执行,例如
sudo nano engine.py(或drive.py)
我想我帮助每个人解决了这个问题.:)
将site_packages/pyttsx/init .py"从引擎导入引擎"修改为
from .engine import Engine
Run Code Online (Sandbox Code Playgroud)
将site_packages/pyttsx/engine.py"导入驱动程序"修改为
from . import driver
Run Code Online (Sandbox Code Playgroud)
原因:导入语句"来自引擎导入引擎"告诉python从目录引擎导入Engine模块.在我们的例子中,引擎不是目录,它是一个python文件,engine.py.所以我们需要告诉python从当前目录(".")导入这个引擎模块.
| 归档时间: |
|
| 查看次数: |
37933 次 |
| 最近记录: |