许可证:Apache-2.0
语言:
- 英语
基础模型:
- yl4579/StyleTTS2-LJSpeech
任务标签:文本转语音
❤️ Kokoro Discord 服务器:https://discord.gg/QuGxSWBfQy
📣 有合成数据?想要训练好的语音包?请访问:https://hf.co/posts/hexgrad/418806998707773
Kokoro 是一款前沿的文本转语音(TTS)模型,参数量为 8200 万(输入文本/输出音频)。
2024 年 12 月 25 日,Kokoro v0.19 的权重以 Apache 2.0 许可证完全发布,精度为 fp32。截至 2025 年 1 月 2 日,已发布 10 个独特的语音包,并提供 v0.19 的 .onnx
版本。
在发布前的几周内,Kokoro v0.19 在 TTS Spaces Arena 中排名第一🥇。在单语音竞技场设置中,Kokoro 以更少的参数和更少的数据获得了更高的 Elo 评分:
- Kokoro v0.19:8200 万参数,Apache 许可证,训练音频少于 100 小时
- XTTS v2:4.67 亿参数,CPML 许可证,超过 1 万小时
- Edge TTS:微软,专有
- MetaVoice:12 亿参数,Apache 许可证,10 万小时
- Parler Mini:8.8 亿参数,Apache 许可证,4.5 万小时
- Fish Speech:约 5 亿参数,CC-BY-NC-SA 许可证,100 万小时
Kokoro 能够登顶 Elo 排行榜,表明传统 TTS 模型的扩展规律(Elo 与计算/数据/参数的关系)可能比之前预期的更陡峭。
您可以在 hf.co/spaces/hexgrad/Kokoro-TTS 找到托管演示。
使用方法
以下代码可在 Google Colab 的单个单元格中运行:
!git lfs install
!git clone https://huggingface.co/hexgrad/Kokoro-82M
%cd Kokoro-82M
!apt-get -qq -y install espeak-ng > /dev/null 2>&1
!pip install -q phonemizer torch transformers scipy munch
from models import build_model
import torch
device = 'cuda' if torch.cuda.is_available() else 'cpu'
MODEL = build_model('kokoro-v0_19.pth', device)
VOICE_NAME = [
'af',
'af_bella', 'af_sarah', 'am_adam', 'am_michael',
'bf_emma', 'bf_isabella', 'bm_george', 'bm_lewis',
'af_nicole', 'af_sky',
][0]
VOICEPACK = torch.load(f'voices/{VOICE_NAME}.pt', weights_only=True).to(device)
print(f'已加载语音:{VOICE_NAME}')
from kokoro import generate
text = "我怎么会知道?这是一个无法回答的问题。就像问一个未出生的孩子他们是否会过上好生活。他们甚至还没有出生。"
audio, out_ps = generate(MODEL, text, VOICEPACK, lang=VOICE_NAME[0])
from IPython.display import display, Audio
display(Audio(data=audio, rate=24000, autoplay=True))
print(out_ps)
如果遇到 espeak-ng
问题,请参考此 GitHub 问题。Mac 用户请参考此链接,Windows 用户请参考此链接。
关于 ONNX 的使用,请参考 #14。
模型事实
不同行之间的关联性无法假设。
架构:
- StyleTTS 2: https://arxiv.org/abs/2306.07691
- ISTFTNet: https://arxiv.org/abs/2203.02395
- 仅解码器:无扩散,无编码器发布
架构设计者: Li et al @ https://github.com/yl4579/StyleTTS2
训练者: Discord 上的 @rzvzn
支持语言: 美式英语、英式英语
模型 SHA256 哈希值: 3b0c392f87508da38fad3a2f9d94c359f1b657ebd2ef79f9d56d69503e470b0a
发布记录
- 2024 年 12 月 25 日:模型 v0.19,
af_bella
,af_sarah
- 2024 年 12 月 26 日:
am_adam
,am_michael
- 2024 年 12 月 28 日:
bf_emma
,bf_isabella
,bm_george
,bm_lewis
- 2024 年 12 月 30 日:
af_nicole
- 2024 年 12 月 31 日:
af_sky
- 2025 年 1 月 2 日:ONNX v0.19
ebef4245
许可证
推理代码最初由论文作者采用 MIT 许可证发布。请注意,此卡片仅适用于本模型 Kokoro。论文作者发布的原始模型可在 hf.co/yl4579 找到。
评估
指标: Elo 评分
排行榜: hf.co/spaces/Pendrokar/TTS-Spaces-Arena

竞技场中排名的语音是 Bella 和 Sarah 的 50-50 混合。为方便起见,此混合语音已包含在本仓库中,文件名为 af.pt
,但您可以通过以下代码轻松复现:
import torch
bella = torch.load('voices/af_bella.pt', weights_only=True)
sarah = torch.load('voices/af_sarah.pt', weights_only=True)
af = torch.mean(torch.stack([bella, sarah]), dim=0)
assert torch.equal(af, torch.load('voices/af.pt', weights_only=True))
训练详情
计算资源: Kokoro 使用从 Vast.ai(推荐链接)租用的 A100 80GB vRAM 实例进行训练。选择 Vast 是因为其具有竞争力的按需小时费率。用于训练的 A100 80GB vRAM 实例的平均小时成本低于每小时 1 美元/GPU,约为当时其他提供商报价的一半。
数据: Kokoro 仅使用 允许/非版权音频数据 和 IPA 音素标签进行训练。允许/非版权音频的示例包括:
- 公共领域音频
- 采用 Apache、MIT 等许可证的音频
- 由大型提供商的闭源[2] TTS 模型生成的合成音频[1]
[1] https://copyright.gov/ai/ai_policy_guidance.pdf
[2] 不包括开源 TTS 模型或“自定义语音克隆”生成的合成音频
训练轮次: 少于 20 轮
总数据集大小: 少于 100 小时 的音频
局限性
Kokoro v0.19 在某些方面存在局限性,这与其训练集和/或架构有关:
- [数据] 缺乏语音克隆能力,可能是由于训练集小于 100 小时
- [架构] 依赖外部 g2p(espeak-ng),这引入了一类 g2p 故障模式
- [数据] 训练数据集主要是长篇阅读和叙述,而非对话
- [架构] 8200 万参数的 Kokoro 几乎肯定无法与训练良好的 10 亿+参数扩散变换器或像 GPT-4o / Gemini 2.0 Flash 这样的数十亿参数 MLLM 相媲美
- [数据] 多语言能力在架构上是可行的,但训练数据主要是英语
请参考 哲学讨论 以更好地理解这些局限性。
其他语音包会发布吗? 目前没有其他语音包的发布日期,但在此期间您可以在托管演示 hf.co/spaces/hexgrad/Kokoro-TTS 中尝试它们。
致谢
模型卡片联系方式
Discord 上的 @rzvzn
。服务器邀请:https://discord.gg/QuGxSWBfQy
https://terminator.fandom.com/wiki/Kokoro