原文: https://pythonbasics.org/text-to-speech/

文字转语音(TTS)是将书面文字转换为语音的方式。您可以使用 python 创建 TTS 程序。 语音的质量取决于您的语音引擎。

在本文中,您将学习如何创建自己的 TTS 程序。

python 中的文字转语音

espeak 示例

程序“espeak”是一个简单的语音合成器,可以将书面文本转换为语音。 espeak 程序听起来确实有点机器人化,但是它足够简单,可以构建一个基本程序。

  1. import subprocess
  2. def execute_unix(inputcommand):
  3. p = subprocess.Popen(inputcommand, stdout=subprocess.PIPE, shell=True)
  4. (output, err) = p.communicate()
  5. return output
  6. a = "Say something in natural language."
  7. # create wav file
  8. # w = 'espeak -w temp.wav "%s" 2>>/dev/null' % a
  9. # execute_unix(w)
  10. # tts using espeak
  11. c = 'espeak -ven+f3 -k5 -s150 --punct="<characters>" "%s" 2>>/dev/null' % a
  12. execute_unix(c)

TTS 与 Google

Google 听起来很自然。 您可以将其 TTS 引擎与以下代码一起使用。
对于此程序,您需要安装模块 gTTS 以及程序 mpg123。

  1. # need gTTS and mpg123
  2. # pip install gTTS
  3. # apt install mpg123
  4. from gtts import gTTS
  5. import os
  6. # define variables
  7. s = "escape with plane"
  8. file = "file.mp3"
  9. # initialize tts, create mp3 and play
  10. tts = gTTS(s, 'en')
  11. tts.save(file)
  12. os.system("mpg123 " + file)

这将输出语音/ mp3 文件。

下载音频示例