pyttsx3

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

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

开源 free 音频音乐
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 2534
维护状态 维护中
是否开源 是
定价模式 free

项目数据

分类音频音乐
开发团队nateshmbhat
所属国家
官网地址
定价模式free
价格说明开源库,完全免费,无付费版本。
访问状态
是否开源是
开源协议MPL-2.0
主要语言Python
技术栈/模型python,python3,pyttsx,pyttsx3,text-to-speech,text-to-speech-python3
GitHub 星标★ 2534
30天Star增速
HF 下载量
上线时间2017-06-24 00:00:00
最近更新2026-09-19 00:00:00
维护状态维护中
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-09
浏览次数3

使用教程

难度:入门 约 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

项目介绍

pyttsx3 是音频音乐领域的开源项目,由 nateshmbhat 开发,2017 年首次发布。

在全站 13,090 个收录项目中,它的 GitHub 星标数(2,534)位列前 30%,在音频音乐分类的 738 个项目里位列前 9%。

项目仍在小幅维护中,最近一次代码更新于 2026-09-19。开源库,完全免费,无付费版本。

它主要面向的使用场景是:为桌面应用添加语音播报功能(如提醒、通知)。同类可对比的替代方案包括 gTTS、pyttsx、espeak。

上一篇:marytts

下一篇:hifi-gan

同类项目推荐

tango 开源

输入一句话,自动生成匹配的音频内容

A family of diffusion models for text-to-audio generation.

★ 1239 2026-08-09
AuK 开源

一个模型搞定语音生成、编辑与分离

AuK: An Open-Source Foundational Model for Speech Generation and Editing

★ 1236 2026-09-13
swift-tts 开源

Swift 项目三行代码接入系统 TTS,兼容 TCA 和 Combine

A straightforward package containing version for Swift modern concurrency, Point-Fre···

★ 52 2026-08-09
ai-dj 开源

现场演出中实时用 AI 生成音乐,保持人类掌控

AI music generation for live performance - Standalone (Ableton Link) + VST3/AU. 8 tr···

★ 246 2026-08-09