欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 会展 > 使用 Python 的 pyttsx3 库进行文本转语音

使用 Python 的 pyttsx3 库进行文本转语音

2025/1/9 13:48:27 来源:https://blog.csdn.net/m0_51261262/article/details/145019161  浏览:    关键词:使用 Python 的 pyttsx3 库进行文本转语音

1. 什么是 pyttsx3?

1.1 pyttsx3 是一个 Python 库,它可以将文本转换为语音。与其他文本转语音库(如 gTTS)不同,pyttsx3 不依赖于网络服务,它使用本地的 TTS(Text-to-Speech)引擎,这使得它在离线状态下也能正常工作
1.2 pyttsx3 支持多平台(Windows、Linux 和 macOS),且可以对语音的音量、语速以及语音类型等进行控制

2. 安装 pyttsx3

要使用 pyttsx3,首先需要在你的 Python 环境中安装该库
你可以通过以下命令安装它:

pip install pyttsx3

安装完成后,就可以开始使用它来生成语音了

3. 使用 pyttsx3 播放文本

下面是一个简单的示例,展示了如何使用 pyttsx3 库将文本转换为语音

示例代码:

import pyttsx3# 初始化 pyttsx3 引擎
engine = pyttsx3.init()# 要转换的文本
text = "你好,欢迎使用 pyttsx3 库进行文本转语音转换。"# 播放文本
engine.say(text)# 等待语音播放完毕
engine.runAndWait()

在这段代码中,我们首先通过 pyttsx3.init() 初始化了语音引擎
然后通过 say() 方法将文本添加到语音队列中,最后通过 runAndWait() 方法让引擎开始播放并等待播放结束

4. 控制语音的参数

pyttsx3 库提供了几个可以控制语音效果的参数,包括音量、语速和语音类型
下面是如何调整这些参数的示例

控制音量

音量的取值范围是 0.0 到 1.0,默认值通常为 1.0
你可以通过 setProperty() 方法来设置音量

engine.setProperty('volume', 0.9)  # 设置音量为 90%
控制语速

语速的默认值通常是 200(单位:字/分钟),你可以使用 setProperty() 方法来设置语速

engine.setProperty('rate', 150)  # 设置语速为 150(单位:字/分钟)
控制语音类型

pyttsx3 允许你选择不同的语音引擎
你可以查看可用的语音列表并选择不同的语音类型(例如男声或女声)

voices = engine.getProperty('voices')  # 获取可用的语音列表# 打印出可用的语音类型
for voice in voices:print(f"ID: {voice.id}, Name: {voice.name}, Lang: {voice.languages}")# 设置使用第一个语音(通常是男性语音)
engine.setProperty('voice', voices[0].id)

你可以通过循环输出所有的语音选项,选择你想要的语音
例如,你可以选择一个女性的语音或者不同的语言

5. 保存语音到文件

pyttsx3 默认是播放语音,而不是保存语音文件
如果你希望将生成的语音保存到一个文件中,pyttsx3 本身并没有直接支持输出到文件的功能,但你可以使用其他工具结合来实现,例如 pydub 或其他音频处理库

如果你有兴趣,可以查看下面的代码片段,它展示了如何使用 pydub 将 pyttsx3 的输出保存为 .mp3 文件:

import pyttsx3
from pydub import AudioSegment
import os# 使用 pyttsx3 生成语音并保存为 WAV 文件
engine = pyttsx3.init()
engine.save_to_file("你好,欢迎使用 pyttsx3 库进行文本转语音转换。", "output.wav")
engine.runAndWait()# 使用 pydub 将 WAV 转换为 MP3
audio = AudioSegment.from_wav("output.wav")
audio.export("output.mp3", format="mp3")# 删除临时的 WAV 文件
os.remove("output.wav")

6. 完整代码示例

下面是一个完整的示例代码,它演示了如何使用 pyttsx3 来控制音量、语速、语音类型,并将文本转换为语音:

import pyttsx3# 初始化 pyttsx3 引擎
engine = pyttsx3.init()# 获取当前的音量、语速、语音设置
volume = engine.getProperty('volume')
rate = engine.getProperty('rate')
voices = engine.getProperty('voices')# 输出当前设置
print(f"当前音量: {volume}")
print(f"当前语速: {rate}")
print(f"当前语音: {voices[0].name}")# 设置新的属性
engine.setProperty('volume', 0.8)  # 设置音量为 80%
engine.setProperty('rate', 150)    # 设置语速为 150# 设置使用不同的语音
engine.setProperty('voice', voices[1].id)  # 使用第二个语音(通常是女性语音)# 要转换的文本
text = "你好,欢迎使用 pyttsx3 库进行文本转语音转换。"# 播放文本
engine.say(text)# 等待语音播放完毕
engine.runAndWait()

pyttsx3 是一个功能强大的文本转语音库,可以用于各种应用场景,如语音助手、自动化任务、盲人辅助工具等,通过简单的 API,用户可以轻松控制音量、语速和语音类型等参数,且无需依赖互联网服务,适合离线使用。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com