视窗 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'")

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

最佳答案

我正在使用 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)

希望这可以帮助。

关于python-3.x - pyttsx 和 gTTS 模块错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36323564/

10-12 02:53