如何让Python说话
我怎么让Python说一些文字呢?
我可以用Festival这个工具配合subprocess来实现,但这样我就没法控制它了(或者可以用交互模式,但那样不太好)。
有没有什么Python的语音合成库?就像Festival、eSpeak这些的接口?
14 个回答
35
安装
在命令行中输入:pip install pypiwin32
如何使用Windows电脑的语音合成功能
from win32com.client import Dispatch
speak = Dispatch("SAPI.SpVoice").Speak
speak("Ciao")
使用谷歌的语音合成API创建一个mp3文件并播放它
在命令行中安装gtts模块后:
输入:pip install gtts
from gtts import gTTS
import os
tts = gTTS(text="This is the pc speaking", lang='en')
tts.save("pcvoice.mp3")
# to start the file from python
os.system("start pcvoice.mp3")
43
有点老套,不过如果你用的是Mac电脑,可以通过Python给终端发个命令。
试着在终端里输入以下内容:
$ say 'hello world'
然后Mac会发出声音来朗读你输入的内容。在Python里做这样的事情相对简单:
import os
os.system("echo 'hello world'")
os.system("say 'hello world'")
42
你应该试试PyTTSx这个包,因为PyTTS已经过时了。PyTTSx可以在Python 2上使用。如果你用的是Python 3,就安装PyTTSx3这个包。