Python 3下可用的文本转语音(TTS)模块

9
我曾尝试过PyTTS(已停用)和PyTTSx(最受推荐),以及两个Google TTS解决方案(gTTS和另一个名为Hung Truong的人的方案),但它们都无法在Python 3.4下运行。看起来它们还没有被移植到3.x版本。
我在StackOverflow和Google上搜索了所有提出的TTS解决方案,但它们都不能在Python 3下工作。我的操作系统是Windows 7。
4个回答

9

Reddit用户找到了一个解决方案

事实证明,gTTS可以在Python 3.x下使用,是我导入模块时出了问题。

我之前使用的代码:

import gtts
blabla = ("Spoken text")
tts = gTTS(text=blabla, lang='en')
tts.save("C:/test.mp3")

导致以下错误:
NameError: name 'gTTS' is not defined

正确的方式是:

from gtts import gTTS
blabla = ("Spoken text")
tts = gTTS(text=blabla, lang='en')
tts.save("C:/test.mp3")

3

最佳解决方案是:

pyttsx3


Pyttsx3是一个离线跨平台文本到语音库,兼容Python 3和Python 2,并支持多个TTS引擎。

我发现它非常有用,声音输出没有延迟,不像gTTS需要互联网连接才能工作,而且还会有一些延迟。

安装方法:

这里是一个示例代码:


    import pyttsx3
    engine = pyttsx3.init()
    engine.say("Hello this is me talking")
    engine.setProperty('rate',120)  #120 words per minute
    engine.setProperty('volume',0.9) 
    engine.runAndWait()
    


如果使用Windows,请也安装pypiwin32,使用以下命令:python -m pip install pypiwin32 - Suresh Anbarasan
仍然出现错误。 这次是:com_error:(-2147352573,“找不到成员。”,无,无) - Radek
1
你如何使用pyttsx3保存语音文件? - jippyjoe4

1
我刚刚安装了2015年10月7日上传的gtts 1.0.7版本。下面这段代码在Python 3.5上可以正常运行:
import subprocess
from gtts import gTTS

audio_file = "hello.mp3"
tts = gTTS(text="Hello World!", lang="en")
tts.save(audio_file)
return_code = subprocess.call(["afplay", audio_file])

我正在使用内置的 "afply" 在 Mac 上播放 mp3,但也有其他方法,例如 在 Python 中播放 mp3 歌曲

如果你要在OS X上使用子进程,为什么不直接使用subprocess.call(["say", "Hello World!"])呢? - Sam Washburn

-5

2
Google使用验证码保护此链接 :( - Maecky

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接