Ошибки модуля 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" в модуле двигателя. Это работает для меня!