如何让Python说话

84 投票
14 回答
193343 浏览
提问于 2025-04-15 15:19

我怎么让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这个包。

http://pypi.python.org/pypi/pyttsx/

https://pypi.org/project/pyttsx3/

撰写回答