text to speech - pyttsx3 - pyttsx: ningún módulo llamado ''motor''
pyttsx spanish (7)
Estoy tratando de instalar el paquete TTS usando this . Todo estuvo bien hasta que intenté ejecutar el siguiente comando:
import pyttsx
Volví este error:
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''
Cualquier ayuda sería apreciada. ¡Gracias!
Acabo de tener el mismo problema, intente usar pyttsx3 en lugar de pyttsx Primero instale pyttsx3
pip install pyttsx3
y cambiar el
import pyttsx
para
import pyttsx3
Después de eso, tendrá que cambiar la importación del motor (si lo está utilizando en su archivo .py principal). Utilice engineio en su lugar. Instalarlo
pip install python-engineio
luego cambie el motor de importación para importar engineio y cambie sus variables.
Aquí un ejemplo
import pyttsx3
import engineio
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)
Espero que esto ayude a alguien
Chicos, hay un paquete actualizado compatible con Python3:
pyttsx3
Funciona offline sin demora en el sonido producido.
Instalación:
pip install pyttsx3
Visite https://pyttsx3.readthedocs.io para ver todos los documentos de uso. ¡Gracias!
La combinación de los consejos de Jacob Tsui y funcionó para mí. Para resumir:
En site_packages / pyttsx / init.py , modifique "from engine import Engine" para
from .engine import Engine
Luego, en site_packages / pyttsx / engine.py ,
Modificar el
import driver
parafrom . import driver
Modificar
except Exception, e
aexcept Exception as e
Y finalmente, en site_packages / pyttsx / driver.py modifique except Exception, e
to
except Exception as e
Vea las respuestas de los autores mencionados anteriormente para conocer las razones detrás de estos cambios.
Modifique site_packages / pyttsx / init .py "from engine import Engine" a
from .engine import Engine
Modifique los paquetes de sitio / pyttsx / engine.py "controlador de importación" para
from . import driver
Motivo: la declaración de importación "desde el motor de importación del motor" le dice a python que importe el módulo del motor desde el motor del directorio. En nuestro caso, el motor no es un directorio, es un archivo python, engine.py. Así que tenemos que decirle a Python que importe este módulo del motor desde el directorio actual (".").
Para Python3, instale la última versión a través de pip3 instale pyttsx3 y en la codificación de importación de importación pyttsx3
Utilicé este código después
pip install pywin32 pypiwin32 pyttsx3
y funcionó perfectamente para mi
import os
import sys
import pyttsx3
engine = pyttsx3.init()
engine.say(''hello world '')
engine.runAndWait()
Descubrí la solución. La biblioteca se creó en lenguaje python2 y no hay muchas diferencias entre esas 2 versiones, pero solo en este caso ocurre.
Vaya a la carpeta DP y cambie en engine.py "excepto Exception como e" en lugar de "excepto Exception, e" , línea 67. Haga lo mismo en drive.py , línea 105.
Debido a que los archivos están protegidos, intente ejecutar, por ejemplo
sudo nano engine.py (o drive.py)
Supongo que ayudé a todos con ese tipo de problema. :)