espeak-ng/espeak-ng

GitHub: espeak-ng/espeak-ng

一款紧凑的开源多语言语音合成器,支持离线运行并可嵌入各类应用程序。

Stars: 6184 | Forks: 1191

# eSpeak NG 语音合成 (Text-to-Speech) - [功能特性](#features) - [支持的语言](docs/languages.md) - [文档](#documentation) - [eSpeak 兼容性](#espeak-compatibility) - [历史](#history) - [许可证信息](#license-information) eSpeak NG 是一款紧凑的开源软件语音合成器,适用于 Linux、Windows、Android 和其他操作系统。它支持 [超过 100 种语言和口音](docs/languages.md)。它基于 Jonathan Duddington 创建的 eSpeak 引擎。 eSpeak NG 使用“共振峰合成”方法。这允许以较小的体积提供多种语言。 语音清晰,可以高速使用,但不如基于人类语音录音的 大型合成器那样自然或平滑。它还支持 Klatt 共振峰合成, 以及使用 MBROLA 作为后端语音合成器的能力。 eSpeak NG 提供以下形式: * 一个用于朗读文件或标准输入文本的 [命令行](src/espeak-ng.1.ronn) 程序(Linux 和 Windows)。 * 一个供其他程序使用的 [共享库](docs/integration.md) 版本。(在 Windows 上这是一个 DLL)。 * 一个适用于 Windows 的 SAPI5 版本,因此可以与屏幕阅读器和其他支持 Windows SAPI5 接口的程序一起使用。 * eSpeak NG 已被移植到其他平台,包括 Solaris 和 Mac OSX。 ## 功能特性 * 包含不同的声音(Voices),其特性可以更改。 * 可以将语音输出为 WAV 文件。 * 支持 SSML(语音合成标记语言)(尚未完全支持),以及 HTML。 * 体积紧凑。程序及其数据(包括多种语言)总共仅几兆字节。 * 可用作 [MBROLA 双音素声音](docs/mbrola.md) 的前端。 eSpeak NG 将文本转换为带有音调和长度信息的音素。 * 可以将文本翻译为音素代码,因此可以作为另一个语音合成引擎的前端进行适配。 * 支持其他语言的潜力。其中包含几种处于不同进展阶段的语言。欢迎母语人士为这些或其他语言提供帮助。 * 用 C 语言编写。 请参阅 [变更日志](ChangeLog.md) 以获取有关各种版本以及 eSpeak NG 项目变更的描述。 支持以下平台: | 平台 | 最低版本 | 状态 | |-------------|-----------------|--------| | Linux | | ![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/7fad64a40e155547.svg) | | BSD | | | | Android | 4.0 | | | Windows | Windows 8 | | | Mac | | | ## 文档 1. [用户指南](docs/guide.md) 解释了如何通过命令行或作为库来设置和使用 eSpeak NG。 2. [构建指南](docs/building.md) 提供了如何从源代码编译和构建 eSpeak NG 的信息。 3. [索引](docs/index.md) 为贡献者和开发者提供了更详细信息的完整列表。 4. 查看 [贡献指南](docs/contributing.md) 以开始您的贡献。 5. 查看 [eSpeak NG 路线图](https://github.com/espeak-ng/espeak-ng/wiki/eSpeak-NG-roadmap) 以参与 eSpeak NG 的开发。 ## eSpeak 兼容性 *espeak-ng* 二进制文件使用与 *espeak* 相同的命令行选项, 并增加了 several additions to provide new functionality from *espeak-ng* such as specifying 增加了几项内容以提供 *espeak-ng* 的新功能,例如指定 要使用的输出音频设备名称。构建过程会创建从 `espeak` 到 `espeak-ng` 以及从 `speak` 到 `speak-ng` 的符号链接。 espeak 的 `speak_lib.h` 包含文件位于 `espeak-ng/speak_lib.h`, 并在 `espeak/speak_lib.h` 中有一个可选的符号链接。此文件包含 espeak 1.48.15 API,并对 `ESPEAK_API` 宏进行了更改以修复在 Windows 上的构建问题, 以及对文档注释进行了一些细微更改。此 C API 在 API 和 ABI 上 与 espeak 兼容。 `espeak-data` 数据已移动到 `espeak-ng-data` 以避免与 espeak 冲突。语音、字典和音素文件发生了各种变化, 使它们与 espeak 不兼容。 *espeak-ng* 项目不包含 *espeakedit* 程序。它已将 构建字典、音素和语调二进制文件的逻辑移动到了 `libespeak-ng.so` 文件中,该文件可通过 `espeak-ng` 命令行和 C API 访问。 ## 相关项目 * **[espeak-ng-sapi](https://github.com/gozaltech/espeak-ng-sapi)** – 一个用于 eSpeak NG 的第三方 Windows SAPI 5 引擎实现。 ## 历史 该程序最初被称为 __speak__,由 Jonathan Duddington 于 1995 年开始为 Acorn/RISC\_OS 计算机编写。这在 2007 年 经过增强并重写为 __eSpeak__,包括放宽原有的 内存和处理能力限制,并增加了对其他语言的支持。 2010 年,Reece H. Dunn 开始在 GitHub 上维护一个 eSpeak 版本, 旨在使其更容易在 POSIX 系统上构建 eSpeak,并于 2012 年 将构建系统移植到 autotools。2015 年底,该项目正式 分叉为一个新的 __eSpeak NG__ 项目。新的 eSpeak NG 项目是对 eSpeak 项目的重大变革,旨在清理现有代码库, 添加新功能,并增加和改进支持的语言。 *historical* 分支包含原始 eSpeak 的可用旧版本, 这些版本不包含在 subversion 存储库中。 1.24.02 是出现在 subversion 存储库中的第一个 eSpeak 版本, 但 1.05 到 1.24 的版本可在 [http://sourceforge.net/projects/espeak/files/espeak/](http://sourceforge.net/projects/espeak/files/espeak/) 获取。 这些早期版本已被检入 historical 分支, 其中 1.24.02 版本是最后一个条目。这使得 可以使用 git 的替换功能来查看更早的历史记录: ``` git replace 8d59235f 63c1c019 ``` __注意:__ 源代码版本包含 `big_endian`、`espeak-edit`、 `praat-mod`、`riskos`、`windows_dll` 和 `windows_sapi` 文件夹。这些 直到较晚的版本才出现在源代码存储库中,因此已 从历史提交中排除,以便更好地使它们与 1.24.02 源代码提交保持一致。 ## 许可证信息 eSpeak NG 语音合成 (Text-to-Speech) 根据 [GPL 版本 3](COPYING) 或 更高版本许可证发布。 用于 Windows 上 getopt 支持的 `getopt.c` 兼容性实现 取自 NetBSD `getopt_long` 实现,该实现根据 [2 条款 BSD](COPYING.BSD2) 许可证授权。 Android 是 Google LLC 的商标。 ## 致谢 加泰罗尼亚语扩展由 [Departament de la Vicepresidència i de Polítiques Digitals i Territori de la Generalitat de Catalunya](https://politiquesdigitals.gencat.cat/ca/inici/index.html#googtrans(ca|en) 在 [Projecte AINA](https://politiquesdigitals.gencat.cat/ca/economia/catalonia-ai/aina) 框架内资助。
标签:Android, DSL, eSpeak NG, IPv6支持, Klatt合成, LangChain, MBROLA, SAPI5, SSML, TTS, 人工智能, 人机交互, 共振峰合成, 动态链接库, 多语言支持, 安全测试框架, 客户端加密, 客户端加密, 屏幕阅读器, 文本转语音, 无障碍, 用户模式Hook绕过, 语音合成, 语音引擎, 轻量级, 辅助技术, 音素转换