VoiceGarden Pronunciation Lexicons
收藏资源简介:
一组采用宽松许可证(MIT/BSD)的发音词典,用于文本转语音,包含按语言和语音字母表索引的词典以及WFST OOV模型,旨在替代espeak-ng。每个语言包包含词典文件、音素映射、发音猜测模型和纯文本格式的词典,覆盖14种语言,部分语言还通过神经网络扩展了缺失词汇。
A collection of permissively licensed (MIT/BSD) pronunciation dictionaries for text-to-speech (TTS). This resource includes dictionaries indexed by language and phonetic alphabet, as well as WFST OOV models, and is intended to serve as a replacement for espeak-ng. Each language pack contains dictionary files, phoneme mappings, pronunciation guessing models, and plain-text formatted dictionaries, covering 14 languages. For a subset of these languages, missing vocabulary is further expanded via neural networks.
voicegarden-lexicons 数据集概述
voicegarden-lexicons 是一个面向文本转语音(TTS)系统的发音词典数据集集合,以宽松许可证(MIT 和 BSD)发布,隶属于 VoiceGarden 项目组。其核心目的是为 Apache-2.0 或 MIT 许可的项目提供可替代 GPL 许可 espeak-ng 的发音查询方案。
数据集结构与格式
每个语言包为 <lang>.tar.gz 压缩包,包含五个文件:
- 词典文件(
.fst和.pho):单词到音素的映射,采用 floravox 快速查找格式 - 预测模型(
phonetisaurus.fst):用于推测词典未收录单词的发音 - 纯文本词典(
lexicon.txt):word<TAB>phonemes格式,兼容 sherpa-onnx 直接读取 - 说明文件(
NOTICE):数据来源及许可证信息
语言覆盖:共发布 14 种语言包,包括德语(de, 277,912 条)、英语(en, 124,384 条)、英语 CMUDict 版本(en-cmudict, 135,166 条)、法语(fr, 90,114 条)、俄语(ru, 545,315 条)、西班牙语(es, 595,857 条)、葡萄牙语(pt, 81,219 条),以及加泰罗尼亚语、捷克语、波斯语、意大利语、荷兰语、瑞典语和斯瓦希里语。所有包的详细信息(下载链接、SHA-256、条目数、许可证等)记录在 lexicons.json 中。
扩充词典
对 11 种语言进行了预先扩充,流程包括:从频率列表中选取缺失词、使用两个独立训练的 ByT5 神经网络(小和微小版本)预测发音(仅保留两者结果一致的词)、对未见词进行准确率测试。
扩充效果:
- 新增条目数从 9,253(英语)到 57,954(波兰语)不等
- 测量准确率:82% 至 100%(部分语言采用双重校验,如英语、希腊语、瑞典语)
- 文本覆盖率(对 50,000 常用词的查找率)显著提升,例如西班牙语从 75% 升至 98%,土耳其语从 12% 升至 87%
扩充包位于 dist/expanded/,使用与基础包相同的文件布局,expanded.json 记录各语言词典与生成条目的数量。挑战在于候选词来自频率列表,覆盖率的提升部分反映了选择性偏差。
质量与性能
与 espeak-ng 对比:
| 层级 | 冷启动 | 每词耗时 | 常驻内存 |
|---|---|---|---|
| espeak-ng 规则 | 10-65 ms | 9 ms | ~5 MB |
| 扩充词典(内存映射) | <5 ms | <0.1 ms | ~0 |
| Phonetisaurus 猜测器 | ~650 ms | ~1 ms | ~70 MB |
| ByT5 tiny 神经网络(int8 ONNX) | 410 ms | 64 ms | ~122 MB |
| ByT5 small 神经网络 | 2.1 s | 150 ms | 1.2 GB |
优势:在真实文本(如维基百科文章)上,词典层可覆盖 38% 至 87% 的单词(英语 85%,西班牙语 87%),且新增条目的准确率为 92% 至 100%。数据采用 MIT/BSD 许可证,音素符号与 gruut 系语音(如 piper 训练的声音)兼容,并支持音素到拼写的反向转换。
不足:espeak-ng 在未知单词流上的原始速度更快(每词 9 ms 且无需查找),且从不拒绝单词。尚未与 espeak-ng 在同一测试集上进行公平的准确率对比(两者符号系统不同)。
数据来源
- gruut(MIT):覆盖 ca, cs, de, en, es, fa, fr, it, nl, pt, ru, sv, sw
- CMUDict(BSD 风格):英语(替代包 en-cmudict)
每个包的猜测模型基于该包自身词典训练,确保符号一致。德语词典经检验 236,000 个符号与 piper 的 de_DE-thorsten 声音全部匹配。单独发布的 CMUDict 猜测模型因输出 ARPABET 而非 IPA 未包含在包中。
使用方式
- Rust:通过
cargo add voicegarden-lexicons引入,支持自动下载缓存 - 任意语言(FFI):floravox 提供 C API(
vg_phonemizer_open_lang等),可通过 ctypes 调用 - 纯文件:从 releases 下载,或将
lexicon.txt直接用于 sherpa-onnx 的 lexicon 设置
语言代码采用 BCP-47 格式,支持精确匹配和语言前缀匹配。可通过环境变量 VOICEGARDEN_LEXICON_DIR 和 VOICEGARDEN_LEXICON_URL 自定义缓存目录和镜像地址。
构建与文档
本地构建需 python3、curl 和 floravox-g2p,支持 make all 和 make build-lang LANG=de 命令。文档涵盖构建流程、扩充词典测试方法及 ByT5 模型训练细节。
许可证
构建代码为 Apache-2.0 OR MIT;每个语言包携带其数据源的许可证(记录在 lexicons.json 和包内 NOTICE 中),不包含任何 GPL 数据。




