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

виндовс 10-64бит

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

так с pyttx:

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")

or:

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)

or:

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

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


person Community    schedule 31.03.2016    source источник
comment
см. pip: работа с несколькими версиями Python? и убедитесь, что вы установили gtts на та же версия Python, которую вы используете.   -  person Tadhg McDonald-Jensen    schedule 31.03.2016
comment
pyttsx, похоже, не предназначен для python 3, см. pyttsx: нет модуля с именем 'engine' но ответ там мне не помог.   -  person Tadhg McDonald-Jensen    schedule 31.03.2016
comment
чтобы установить espeak, просто перейдите в раздел загрузки на сайте sourceforge, и после его установки предоставленный вами код должен работать но я не уверен, так как я использую Mac. удачи тебе однако!   -  person Tadhg McDonald-Jensen    schedule 31.03.2016
comment
привет спасибо, с pyttsx ничего не помогает. с вашей помощью gtts работает, берет текст из txt файла blabla = (line[0]), но сначала создает mp3 файл, затем, если я хочу прослушать, я должен назвать этот mp3, так что это хорошо, но в моем случае я хочу избежать любых аудиофайлов, нужно просто читать из текста файл. возможно ли как-то использовать Google Voice для чтения моего текстового файла? Я еще не пробовал espeak... ну, если я могу использовать только gTTS, теперь у меня проблема с mp3-файлом, который я подробно описал здесь, потому что теперь это другой вопрос stackoverflow.com/questions/36347786/how-to-play-mp3-from-gtts   -  person    schedule 01.04.2016


Ответы (3)


Я использую окна 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 в правильной папке или присутствует ли он вообще.

Для gtts:

Я пытался воспроизвести звук с помощью 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)

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

person Anil_M    schedule 05.04.2016
comment
Я также ответил на этот вопрос, проверьте мой ответ и посмотрите, поможет ли это. - person Anil_M; 05.04.2016
comment
привет gTTS сообщил здесь github.com/pndurette/gTTS/issues/32 и фактическую ошибку : stackoverflow.com /questions/37176555/ и с pyttsx я понятия не имею, как это выяснить, потому что кажется, что он установлен, но я не могу найти ни одного каталога по пути, который вы указали другими словами внутри пакетов сайта. - person ; 13.05.2016
comment
Я установил его с помощью pip install pyttsx, и процесс установки прошел успешно, а также с помощью sourceforge.net/projects/pywin32/files/pywin32 то же самое. Я пробовал разные, но получил такое же сообщение, что требуется версия 3.5 Python, которая не найдена в каталоге. также я не могу разобраться с espeak, такая же проблема здесь stackoverflow.com/questions/37127139/ понятия не имею, что делать дальше - person ; 13.05.2016
comment
У меня windows с python 2.7 работает pyttsx успешно. Я скачал и установил с https://github.com/parente/pyttsx . Попробуйте это посмотреть, если это работает. [может потребоваться удалить предыдущие версии] - person Anil_M; 13.05.2016
comment
привет, я использую Python 3.5 на Windows 10 - person ; 15.05.2016

для использования 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()
person Natesh bhat    schedule 26.06.2017

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

Попробуйте заменить "from engine import Engine" на "from .engine import Engine" в модуле engine. У меня это работает!

person Alejandro    schedule 07.01.2017