视窗 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/