1 简介

pyttsx3
pyttsx3 是一款轻量级的 Python 文本转语音(TTS)库,其核心优势在于完全离线运行——无需依赖任何云端服务或互联网连接,即可实现文本到语音的转换。该库跨平台兼容性强,完美支持 Windows、macOS 和 Linux 系统,适用于开发辅助工具、语音交互助手、教育类软件等场景。它提供了丰富的自定义功能,包括多语音选择、语速调节和音量控制,满足多样化的语音合成需求。
1.1 核心特征
- ✨ 全离线运行:无需依赖网络,本地即可完成文本到语音的转换,保障使用稳定性与数据安全性。
- 多语音选择:支持调用系统中已安装的各类语音包,灵活切换不同语言、性别及音色的语音。
- 语速精准调控:可根据需求自由调整语音播放速率,适配不同场景的听觉体验。
- 音量灵活调节:提供 0-1 区间的音量控制,轻松匹配各类使用环境的音量需求。
- 音频文件导出:支持将合成的语音直接保存为本地音频文件(如 MP3 格式),方便后续复用与传播。
- ❤️ API 简洁强劲:接口设计直观易懂,上手成本低,同时具备丰富的功能扩展性,适配各类开发场景。
2 安装步骤
通过 pip 包管理器即可快速安装:
pip install pyttsx3
注意:在部分 Linux 系统中,可能需要额外安装语音驱动(如 espeak),可通过系统包管理器执行 sudo apt-get install espeak 完成依赖配置。
3 极简用法:一行代码实现语音合成(使用默认配置)
import pyttsx3
# 直接调用speak函数,使用默认语音、语速和音量朗读文本
pyttsx3.speak("这段文字将会被朗读出来")
3.1 高级配置:自定义语音、语速和音量
# 导入 pyttsx3 库
import pyttsx3
# 初始化语音引擎(根据系统自动选择合适的驱动)
engine = pyttsx3.init()
# 配置语速(默认值为 200,数值越小语速越慢)
engine.setProperty("rate", 150)
# 配置音量(范围 0.0-1.0,1.0 为最大音量)
engine.setProperty("volume", 0.9)
# 获取系统支持的语音列表(可选操作,用于切换不同语音)
voices = engine.getProperty("voices")
# 例如:切换为中文语音(需系统已安装中文语音包,索引可能因系统而异)
# engine.setProperty("voice", voices[1].id)
# 添加需要朗读的文本
engine.say("你好,我正在使用 pyttsx3 进行语音合成!")
engine.say("This is a demo of pyttsx3 offline TTS.") # 支持英文等多语言
# 执行语音合成并等待完成
engine.runAndWait()
# 停止引擎(释放资源,可选)
engine.stop()
# 语音保存为文件(支持生成本地音频)
# 注意:Linux系统需先安装'espeak-ng'依赖(可通过sudo apt-get install espeak-ng安装)
engine.save_to_file('这是保存到文件的语音内容', 'output.mp3') # 第一个参数为文本,第二个为保存路径
engine.runAndWait() # 执行保存操作
补充说明:
- 语音选择兼容性:voices列表的索引对应的音色(性别/语言)因操作系统和安装的语音包而异,提议通过print(voices)查看具体语音信息(如voices[0].name可获取语音名称)。
- 保存格式:save_to_file支持的格式取决于系统底层驱动,常见格式包括MP3、WAV等。
- 性能优化:频繁调用语音合成时,提议复用engine实例,避免反复初始化。
3.2 进阶说明
- 语音选择:通过 engine.getProperty(“voices”) 可获取系统中已安装的语音包列表,包含不同语言、性别和音色的选项,使用 engine.setProperty(“voice”, 语音ID) 进行切换。
- 持久化引擎:若需多次调用语音合成,提议保持引擎实例复用,避免频繁初始化带来的性能损耗。
- 事件回调:支持通过 engine.connect() 绑定事件(如语音开始/结束),实现更精细的流程控制。
4 各操作系统支持的内置文本转语音引擎
|
引擎名称 |
Linux |
macOS |
Windows |
|
AVSpeech(苹果语音合成框架) |
✅ |
||
|
eSpeak(开源语音合成引擎) |
✅ |
✅ |
✅ |
|
NSSpeechSynthesizer(NS语音合成器) |
✅ |
||
|
SAPI5(微软语音API 5.0) |
✅ |
补充说明:
- AVSpeechSynthesizer 的支持目前仍处于实验阶段,功能稳定性可能存在波动。
- NSSpeechSynthesizer 已被苹果官方标记为弃用(deprecated),提议 macOS 平台优先使用 AVSpeech 框架。
- 若需扩展其他语音引擎,可基于 pyttsx3 的接口规范进行二次封装,灵活适配更多场景需求。
官方资源:
- PyPI 项目页:https://pypi.org/project/pyttsx3/
- GitHub 仓库:https://github.com/nateshmbhat/pyttsx3(含详细API文档和问题排查指南)
© 版权声明
文章版权归作者所有,未经允许请勿转载。



这个不知道不少数民族语言
很不错
收藏了,感谢分享