pyttsx3

离线文字转语音,一行代码让 Python 开口说话

开源 🏷️完全免费 🔧 仅开源项目,无在线服务,需自行部署 音频音乐 🍴 复刻 361 🐛 待处理 88 👀 关注 42
GitHub ↗
GitHub 星标 ★ 2534
维护状态 较活跃
是否开源 开源
定价模式 🏷️完全免费 开源库,完全免费,无付费版本。

项目预览

pyttsx3 项目界面预览图
图片来源:GitHub 官方仓库名片

项目数据

分类音频音乐
开发团队nateshmbhat
定价模式🏷️完全免费
价格说明开源库,完全免费,无付费版本。
访问状态🔧 仅开源项目,无在线服务,需自行部署
是否开源是
开源协议MPL-2.0
主要语言Python
技术栈/模型python,python3,pyttsx,pyttsx3,text-to-speech,text-to-speech-python3
GitHub 星标★ 2534
上线时间2017-06-24 00:00:00
代码更新2026-10-20
仓库体积410 KB
本站数据更新2026-11-09
维护状态较活跃
收录时间2026-08-09
浏览次数4

项目介绍

pyttsx3 是一个纯 Python 的离线文本转语音(TTS)库,主要解决开发者在无网络环境下需要将文本转换为语音的问题。它通过封装 Windows 的 SAPI5、macOS 的 NSSpeechSynthesizer 以及 Linux 的 espeak 等系统级 TTS 引擎,提供统一的跨平台 API,支持调整语速、音量、音色等参数,并能将语音保存为音频文件。核心能力包括:多引擎自动选择、线程安全的事件回调(如开始/结束说话)、简单的文本队列管理,以及无需额外安装大型依赖即可快速集成到 Python 项目中。适合用于语音助手、无障碍辅助、自动化播报等场景。

Star 增长趋势

本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整

数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 2534

使用教程

难度:入门 约 10 分钟 部署方式:库/依赖 6 步

环境要求

  • Python 3 环境(README 示例均使用 python3 语法)
  • 已配置可用的 pip 包管理工具
  • Linux 系统需要系统级语音引擎 espeak-ng 与 libespeak1
  • macOS 上若 init() 报 pyobjc 相关错误,需 pyobjc>=9.0.1

安装与启动步骤

  1. 1升级 wheel 工具

    如果安装 pyttsx3 时报错,先升级 wheel 版本再重新安装,可解决大部分构建类报错。

    pip install --upgrade wheel
  2. 2安装 pyttsx3

    通过 pip 从 PyPI 安装,命令执行成功即完成安装,无需下载额外的大型模型或依赖。

    pip install pyttsx3
  3. 3安装系统语音引擎

    仅 Linux 用户且遇到语音输出无声时需要执行,安装 espeak-ng 与 libespeak1 作为底层引擎。

    sudo apt update && sudo apt install espeak-ng libespeak1
  4. 4运行最小示例

    创建 Python 脚本调用 init() 初始化引擎,再 say() 朗读文本并由 runAndWait() 阻塞等待播报完成。

    import pyttsx3
    engine = pyttsx3.init()
    engine.say("I will speak this text")
    engine.runAndWait()
  5. 5单行朗读测试

    用 speak 函数一行代码即可用默认语音、语速和音量播报文本,适合快速验证环境是否正常。

    import pyttsx3
    pyttsx3.speak("I will speak this text")
  6. 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

上一篇:marytts

下一篇:hifi-gan

同类项目推荐

1SHOT 开源

一个机器人搞定 Discord 音乐、游戏和管理

All my works - https://github.com/FirezTheGreat (latest music commands/djs v14/es6 m···

★ 83 2026-08-09
to-the-stars 开源

把魔法少女小圆外传小说翻译成中文,还能听语音版

魔法少女小圆 飞向星空 中文翻译

★ 91 2026-08-09
remi 开源

用 Transformer 生成有节奏感的流行钢琴曲,基于节拍建模更自然。

"Pop Music Transformer: Beat-based Modeling and Generation of Expressive Pop Piano C···

★ 606 2026-08-09
MagiCodec 开源

单层流式音频编码,让下游模型更易用

A single-layer, streaming codec model providing SOTA audio quality and discrete toke···

★ 130 2026-08-09
HebTTS 开源

跳过元音预测,直接让AI用希伯来语开口说话

The official implementation of "A Language Modeling Approach to Diacritic-Free Hebre···

★ 113 2026-08-09
ComfyUI-OmniVoice-TTS 开源

在 ComfyUI 里拖拽节点,即可克隆声音、生成多语言语音

OmniVoice TTS nodes for ComfyUI - Zero-shot multilingual text-to-speech with voice c···

★ 566 2026-08-09
wavegrad 开源

几步生成高保真语音,比 WaveNet 快几十倍

A fast, high-quality neural vocoder.

★ 300 2026-08-09
FastDiff 开源

让扩散声码器实时生成高质量语音,告别慢速合成。

PyTorch Implementation of FastDiff (IJCAI'22)

★ 424 2026-08-09
MorshuTalk 开源

输入文字,用 Morshu 腔调念出来

Morshu text-to-speech

★ 291 2026-10-01