Ошибки модуля pyttsx и gTTS

Windows 10-64bit

Я пытаюсь использовать какой-либо инструмент преобразования текста в речь для чтения текста из строк документа.txt, что-то вроде этого:

так с pyttsx:

import pyttsx
engine = pyttsx.init()
engine.say('my voice')
engine.runAndWait() 

Я получил эту ошибку:

Traceback (most recent call last):
  File "...", line 1, in <module>
    import pyttsx
  File "/.../pyttsx/__init__.py", line 18, in <module>
    from engine import Engine
ImportError: No module named 'engine'

Теперь gTTS, доступный как gtts_token, так как его использовать? потому что этот способ модуля неузнаваем:

import gtts
blabla = ("my voice")
tts = gtts.gTTS(text=blabla, lang='en')
tts.save("C:/rec.mp3")

или же:

from gtts import gTTS
blabla = ("my voice")
tts = gTTS(text=blabla, lang='en')
tts.save("C:/rec.mp3")

ошибка:

 import gtts
ImportError: No module named 'gtts'

Также я хочу попробовать использовать espeak, но не уверен, как установить его, доступен ли он с установкой pip, или мне нужно установить его другим способом, чтобы попробовать:

import subprocess
text = '"my voice"'
subprocess.call('espeak '+text, shell=True)

или же:

import os
os.system("espeak 'my voice'")

поэтому я пытаюсь найти какое-то решение, но все, что я пробовал, здесь не работает...

3 ответа

Для использования на python3

pyttsx3

Это новая библиотека, совместимая как с python3, так и с python2. В отличие от gTTS, он не требует подключения к интернету и не задерживает звук.

Установка:

pip install pyttsx3

Использование:

import pyttsx3
engine = pyttsx3.init()
engine.say("Hi this is working ");
engine.setProperty('volume',0.9)
engine.runAndWait()

Я использую Windows 10 и Python 2.7.

Для pyttsx:

Ниже код работает нормально для меня. Я получил ImportError: No module named win32api ошибка, из-за которой я должен был установить win32api отсюда

После этого я мог играть "мой голос". Хотя качество и достоверность разговорного звука были очень низкими. gtts намного лучше в этом отношении.

import pyttsx
engine = pyttsx.init()
engine.say('my voice')
engine.runAndWait() 

Для ошибки, которую вы получаете, вы можете посмотреть в папку Python и посмотреть, если engine.py файл присутствует?

Например, в моем случае, я имею pyttsx модули установлены в следующем местеC:\Python27\Lib\site-packages\pyttsx и вот список файлов,

 Name
 ----
 drivers
 driver.py
 driver.pyc
 engine.py
 engine.pyc
 voice.py
 voice.pyc
 __init__.py
 __init__.pyc

С момента ввоза engine терпит неудачу, мне интересно, если у вас есть engine.py файл в правильной папке или присутствует вообще.

Для гтц:

Я пытался играть звук с winsound, но это не сработало. С помощью pydub Я был в состоянии играть audio file, Но, поскольку вы не хотите использовать файл, это может быть спорным вопросом.

import gtts
import winsound
from pydub import AudioSegment
from pydub.playback import play

blabla = ("my voice")
tts = gtts.gTTS(text=blabla, lang='en')
tts.save("rec.mp3")
print "Playing sound .."
#winsound.PlaySound("rec.wav", winsound.SND_FILENAME)
song = AudioSegment.from_mp3("rec.mp3")
play(song)

Надеюсь это поможет.

Я использую python2.7 на Ubuntu.

Попробуйте заменить "из двигателя импорта двигателя" на "из двигателя двигателя.engine" в модуле двигателя. Это работает для меня!

Другие вопросы по тегам