pyttsx: No module named 'engine'

2019-01-14 06:36发布

I'm trying to install TTS package by using this. Everything was okay until I tried to execute the following command:

import pyttsx

I got back this 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'

Any help would be appreciated. Thank you!

7条回答
仙女界的扛把子
2楼-- · 2019-01-14 07:07

I just had the same problem, try using pyttsx3 instead of pyttsx First install pyttsx3

pip install pyttsx3

and change the

import pyttsx

for

import pyttsx3

After that you have to change engine import (if you're using it in your main .py file). Use engineio instead. Install it

pip install python-engineio

then change import engine for import engineio and change your variables.

Here's an example

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)

Hope this helps someone

查看更多
欢心
3楼-- · 2019-01-14 07:15

I found out the solution. Library was created in python2 language and there are not a lot of differences between those 2 versions, but exclusively in this case that occurs.

Move to your DP folder and change in engine.py "except Exception as e" instead of "except Exception, e", line 67. Do the same in drive.py, line 105.

Because of files are secured try to execute, e. g.

sudo nano engine.py (or drive.py)

I guess I helped everyone with that kind of problem. :)

查看更多
干净又极端
4楼-- · 2019-01-14 07:22

Guys there is an updated package compatible with Python3 :

pyttsx3

Works offline with no delay in the sound produced.

Installation:

pip install pyttsx3

Visit https://pyttsx3.readthedocs.io for the full usage docs. Thanks!

查看更多
SAY GOODBYE
5楼-- · 2019-01-14 07:26

For Python3, please install the latest version via pip3 install pyttsx3 and in coding call import pyttsx3

查看更多
Evening l夕情丶
6楼-- · 2019-01-14 07:28

I used this code after

pip install pywin32 pypiwin32 pyttsx3

and it worked perfectly for me

import os
import sys
import pyttsx3

engine = pyttsx3.init()
engine.say('hello world ')
engine.runAndWait()
查看更多
唯我独甜
7楼-- · 2019-01-14 07:29

Combining the advice from Jacob Tsui and Jokhongir Mamarasulov worked for me. To summarize:

In site_packages/pyttsx/init.py, modify "from engine import Engine" to

from .engine import Engine

Then, in site_packages/pyttsx/engine.py,

  1. Modify import driver to

    from . import driver
    
  2. Modify except Exception, e to

    except Exception as e
    

And finally, in site_packages/pyttsx/driver.py modify except Exception, e to

except Exception as e

See the responses from the aforementioned authors for the rationale behind these changes.

查看更多
登录 后发表回答