
pyttsx3
离线文字转语音,一行代码让 Python 开口说话
项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 2534
技术标签
使用教程
环境要求
- Python 3 环境(README 示例均使用 python3 语法)
- 已配置可用的 pip 包管理工具
- Linux 系统需要系统级语音引擎 espeak-ng 与 libespeak1
- macOS 上若 init() 报 pyobjc 相关错误,需 pyobjc>=9.0.1
安装与启动步骤
-
1升级 wheel 工具
如果安装 pyttsx3 时报错,先升级 wheel 版本再重新安装,可解决大部分构建类报错。
pip install --upgrade wheel -
2安装 pyttsx3
通过 pip 从 PyPI 安装,命令执行成功即完成安装,无需下载额外的大型模型或依赖。
pip install pyttsx3 -
3安装系统语音引擎
仅 Linux 用户且遇到语音输出无声时需要执行,安装 espeak-ng 与 libespeak1 作为底层引擎。
sudo apt update && sudo apt install espeak-ng libespeak1 -
4运行最小示例
创建 Python 脚本调用 init() 初始化引擎,再 say() 朗读文本并由 runAndWait() 阻塞等待播报完成。
import pyttsx3 engine = pyttsx3.init() engine.say("I will speak this text") engine.runAndWait() -
5单行朗读测试
用 speak 函数一行代码即可用默认语音、语速和音量播报文本,适合快速验证环境是否正常。
import pyttsx3 pyttsx3.speak("I will speak this text") -
6保存语音为文件
用 save_to_file 把朗读内容写入音频文件,再调用 runAndWait() 才会真正生成文件;Linux 需已装 espeak-ng。
import pyttsx3 engine = pyttsx3.init() engine.save_to_file('Hello World', 'test.mp3') engine.runAndWait()
如何确认成功
运行示例脚本后能听到语音播报;执行 save_to_file 示例后当前目录下生成 test.mp3 文件,即表示成功。
常见问题
Q:Linux 上运行没有声音怎么办?
A:说明缺少系统语音引擎,执行 sudo apt update && sudo apt install espeak-ng libespeak1 安装后重试即可。
Q:安装 pyttsx3 时报错怎么处理?
A:先执行 pip install --upgrade wheel 升级 wheel 版本,然后再重新执行 pip install pyttsx3。
Q:macOS 调用 init() 报 pyobjc 错误?
A:按 README 说明安装 9.0.1 及以上版本的 pyobjc:pip install pyobjc>=9.0.1,然后重新运行脚本。
Q:使用时需要联网吗?
A:不需要。pyttsx3 是完全离线的 TTS 库,调用的是系统已安装的语音引擎。
注意事项
- pyttsx3 是 Python 库而非独立服务,没有端口和后台进程,直接在代码中 import 使用。
- 语音音色、语速、音量取决于操作系统已安装的语音包,不同平台可用声音不同。
- 调用 say() 或 save_to_file() 后必须执行 runAndWait(),否则不会播报或生成文件。
核心亮点
- 完全离线运行,不依赖网络和云服务,保护隐私且响应快
- 跨平台支持 Windows/macOS/Linux,自动适配系统自带 TTS 引擎
- API 简洁,支持语速、音量、音色调节,并可保存为音频文件
不足之处
- 依赖系统 TTS 引擎,不同平台音质和语言支持差异较大
- 项目维护不活跃,新 Python 版本兼容性问题需自行处理
适用场景
- 为桌面应用添加语音播报功能(如提醒、通知)
- 构建离线语音助手或无障碍阅读工具
- 批量生成语音文件用于视频配音或学习材料
替代项目
gTTS、pyttsx、espeak
同类项目推荐
1SHOT
开源
一个机器人搞定 Discord 音乐、游戏和管理
All my works - https://github.com/FirezTheGreat (latest music commands/djs v14/es6 m···
to-the-stars
开源
把魔法少女小圆外传小说翻译成中文,还能听语音版
魔法少女小圆 飞向星空 中文翻译
remi
开源
用 Transformer 生成有节奏感的流行钢琴曲,基于节拍建模更自然。
"Pop Music Transformer: Beat-based Modeling and Generation of Expressive Pop Piano C···
MagiCodec
开源
单层流式音频编码,让下游模型更易用
A single-layer, streaming codec model providing SOTA audio quality and discrete toke···
HebTTS
开源
跳过元音预测,直接让AI用希伯来语开口说话
The official implementation of "A Language Modeling Approach to Diacritic-Free Hebre···
ComfyUI-OmniVoice-TTS
开源
在 ComfyUI 里拖拽节点,即可克隆声音、生成多语言语音
OmniVoice TTS nodes for ComfyUI - Zero-shot multilingual text-to-speech with voice c···
wavegrad
开源
几步生成高保真语音,比 WaveNet 快几十倍
A fast, high-quality neural vocoder.
FastDiff
开源
让扩散声码器实时生成高质量语音,告别慢速合成。
PyTorch Implementation of FastDiff (IJCAI'22)
MorshuTalk
开源
输入文字,用 Morshu 腔调念出来
Morshu text-to-speech