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 | |  |
| 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绕过, 语音合成, 语音引擎, 轻量级, 辅助技术, 音素转换