在 Python 中将文本转换为语音

Manav Narula 2023年1月30日
  1. 在 Python 中使用 gTTS 模块将文本转换为语音
  2. 在 Python 中使用 pyttsx3 模块将文本转换为语音
在 Python 中将文本转换为语音

由于过去几十年的技术进步,我们拥有许多配备语音识别功能的设备。Python 有多种可用的模块可以处理音频对象。一些模块可以将一些书面文本转换为音频。

在本教程中,我们将讨论如何使用 Python 将文本转换为语音。

在 Python 中使用 gTTS 模块将文本转换为语音

Google 创建了一个名为 Google Text-To-Speech 的 API,他们用它来读取文本并提供音频输出。此 API 与名为 gtts 的 Python 模块集成,该模块可以将文本转换为语音、执行音频操作等,通过将音频存储在字节大小的对象中,甚至保存最终输出。

我们将使用 gTTS 函数创建一个对象,该对象将读取文本并将其转换为音频对象。我们可以在这个函数中使用许多参数。我们可以使用 slow 参数降低输出速度。Google API 支持不同的语言,我们可以使用 lang 参数提及支持的语言。

我们将在下面的代码中实现这个方法。

from gtts import gTTS
from playsound import playsound

s = gTTS("Sample Text")
s.save("sample.mp3")
playsound("sample.mp3")

在上面的代码中,我们创建了一个读取所需文本的对象。我们使用 save() 函数保存这个包含语音音频的对象,然后使用 playsound() 函数播放它。从 playsound 库导入的 playsound() 函数可以播放音频文件。

请注意,鉴于此模块使用 Google API 将文本转换为语音,因此需要有效的互联网连接。如果你希望它脱机运行,你可以参考下面讨论的方法。

在 Python 中使用 pyttsx3 模块将文本转换为语音

pyttsx3 是另一个可以执行此类转换并在没有互联网连接的情况下工作的模块。首先,我们将使用该模块中的 init() 构造函数创建一个引用 pyttsx3.Engine 的对象。然后 say() 函数在此处添加要在队列中朗读的所需文本。然后我们使用 runAndWait() 函数从队列中播放命令。

例如,

import pyttsx3

s = pyttsx3.init()
data = "Sample Text"
s.say(data)
s.runAndWait()

我们可以使用 setProperty() 方法设置最终输出的播放速率等属性。该模块与 Python 2 和 Python 3 兼容。

作者: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

相关文章 - Python Audio