web-dev-qa-db-ja.com

pyttsx:「engine」という名前のモジュールはありません

this を使用して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'

任意の助けをいただければ幸いです。ありがとうございました!

22

皆さん、Python3と互換性のある更新されたパッケージがあります:

pyttsx3

生成されたサウンドに遅延なしでオフラインで動作します。

インストール:

pip install pyttsx3

詳細な使用法については、 https://pyttsx3.readthedocs.io にアクセスしてください。ありがとう!

24
Natesh bhat

Jacob TsuiJokhongir Mamarasulov からのアドバイスを組み合わせて、私のために働きました。要約する:

site_packages/pyttsx/init.pyで、「from engine import Engine」を

from .engine import Engine

次に、site_packages/pyttsx/engine.pyで、

  1. 変更import driver

    from . import driver
    
  2. 変更except Exception, e

    except Exception as e
    

そして最後に、site_packages/pyttsx/driver.pymodify except Exception, e

except Exception as e

これらの変更の背後にある理論的根拠については、前述の著者からの回答を参照してください。

16
csheehey

Python3の場合、pip3 install pyttsxを使用して最新バージョンをインストールし、コーディングコールでimport pyttsxをインストールしてください。

7
Wiphop

Site_packages/pyttsx/-init。py "from engine import Engine"を変更します

from .engine import Engine

Site_packages/pyttsx/engine.pyの「ドライバーのインポート」を変更します

from . import driver

理由:インポートステートメント「from engine import Engine」は、pythonにディレクトリエンジンからエンジンモジュールをインポートするよう指示します。この場合、エンジンはディレクトリではなく、python = file、engine.py。したがって、このエンジンモジュールを現在のディレクトリ( "。")からインポートするには、pythonと伝える必要があります。

5
Jacob CUI

解決策を見つけました。ライブラリはpython2言語で作成されており、これら2つのバージョン間に大きな違いはありませんが、この場合にのみ発生します。

DPフォルダーに移動し、engine.py "例外を除くas e"の代わりに "例外、e"、67行目を除く。drive.py、105行目でも同じことを行います。

ファイルが保護されているため、実行してみてください。 g。

Sudo nano engine.py(またはdrive.py)

私はそのような問題で皆を助けたと思います。 :)

同じ問題が発生したので、pyttsxの代わりにpyttsxを使用してみてくださいpyttsx3

pip install pyttsx3

を変更します

import pyttsx

for

import pyttsx3

その後、engine importを変更する必要があります(メインの.pyファイルで使用している場合)。代わりにengineioを使用してください。インストールする

pip install python-engineio

次にimport engineioimport engineioに変更し、変数を変更します。

ここに例があります

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)

これが誰かを助けることを願っています

私は後にこのコードを使用しました

pip install pywin32 pypiwin32 pyttsx3

そしてそれは私にとって完璧に働いた

import os
import sys
import pyttsx3

engine = pyttsx3.init()
engine.say('hello world ')
engine.runAndWait()
2
Aju George