【问题标题】:pyttsx and gTTS module errorspyttsx 和 gTTS 模块错误
【发布时间】:2016-07-19 07:49:44
【问题描述】:

Windows 10-64 位

我正在尝试使用一些文本转语音工具从 .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 install 获得还是我必须以其他方式安装它才能尝试:

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

或:

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

所以我正在尝试找到一些解决方案,但我尝试的所有方法在这里都不起作用......

【问题讨论】:

  • 查看pip: dealing with multiple Python versions? 并确保将gtts 安装到您正在使用的同一版本的python。
  • pyttsx 似乎不是为 python 3 设计的,请参阅 pyttsx: No module named 'engine' 但那里的答案并没有让它对我有用。
  • 安装espeak 只需转到sourceforge site 的下载部分,一旦安装,您提供的代码应该可以工作,但我不确定,因为我使用的是mac。祝你好运!
  • '嗨,谢谢,pyttsx 没有任何帮助。在您的帮助下 gtts 工作,从 txt 文件blabla = (line[0]) 获取文本,但首先创建 mp3 文件,然后如果我想听,我必须调用这个 mp3,所以这很好,但在我的情况下,我想避免任何音频文件,只需阅读从文本文件。是否有可能以某种方式使用谷歌语音来阅读我的文本文件?我还没有尝试过 espeak ......好吧,如果我只能使用 gTTS 现在我在此处详细描述的 mp3 文件有问题,因为现在这是另一个问题stackoverflow.com/questions/36347786/how-to-play-mp3-from-gtts

标签: python-3.x text-to-speech google-text-to-speech espeak pyttsx


【解决方案1】:

我使用的是 Windows 10 和 Python 2.7。

对于 pyttsx:

下面的代码对我来说工作正常。我确实收到了ImportError: No module named win32api 错误,我必须从here 安装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)

希望这会有所帮助。

【讨论】:

  • 我也回答了这个问题,请检查我的回答,看看是否有帮助。
  • hello gTTS 在这里报告github.com/pndurette/gTTS/issues/32 和实际错误:stackoverflow.com/questions/37176555/… 和 pyttsx 我不知道如何弄清楚,因为它似乎已安装,但我找不到任何目录换句话说,您在站点包中显示的路径。
  • 我已经用 pip install pyttsx 安装它并且安装过程成功,并且与sourceforge.net/projects/pywin32/files/pywin32相同我尝试了不同但得到相同的消息“需要python版本3.5 ,在目录中找不到哪个”。我也无法用 espeak 弄清楚,同样的问题在这里 stackoverflow.com/questions/37127139/… 不知道下一步该做什么
  • 我已经 windows python 2.7 成功运行 pyttsx。我从 https://github.com/parente/pyttsx 下载并安装。试试看它是否有效。 [可能要卸载以前的版本]
  • 你好,我在 windows 10 上使用 python 3.5
【解决方案2】:

我在 Ubuntu 上使用 python2.7。

尝试在 engine 模块中将“from engine import Engine”替换为“from .engine import Engine”。它对我有用!

【讨论】:

    【解决方案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()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-13
      相关资源
      最近更新 更多