🚀 Kokoro - 前沿文本轉語音模型
Kokoro 是一款前沿的文本轉語音(TTS)模型,擁有 8200 萬個參數。它能將文本轉化為自然流暢的語音輸出,在性能和效率上表現出色。
❤️ Kokoro Discord 服務器:點擊加入
📣 合成數據與訓練語音包:若你有合成數據或想獲取訓練好的語音包,可查看 相關內容
語音示例
🚀 快速開始
你可以在 hf.co/spaces/hexgrad/Kokoro-TTS 找到該模型的在線演示。
✨ 主要特性
- 參數高效:僅 8200 萬個參數,在性能上卻能超越部分大參數模型。
- 多語音支持:截至 2025 年 1 月 2 日,已發佈 10 種獨特的語音包。
- 高排名表現:在 TTS Spaces Arena 中排名第一🥇。
📦 安裝指南
以下代碼可在 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 = "How could I know? It's an unanswerable question. Like asking an unborn child if they'll lead a good life. They haven't even been born."
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。
💻 使用示例
基礎用法
高級用法
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))
📚 詳細文檔
模型信息
屬性 |
詳情 |
模型類型 |
文本轉語音(TTS) |
基礎模型 |
yl4579/StyleTTS2-LJSpeech |
架構 |
StyleTTS 2(https://arxiv.org/abs/2306.07691)、ISTFTNet(https://arxiv.org/abs/2203.02395),僅解碼器,無擴散,無編碼器發佈 |
架構設計 |
Li 等人(https://github.com/yl4579/StyleTTS2) |
訓練者 |
@rzvzn (Discord) |
支持語言 |
美式英語、英式英語 |
模型 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
許可證
評估

訓練詳情
- 計算資源:在從 Vast.ai(推薦鏈接)租用的 A100 80GB vRAM 實例上進行訓練。
- 訓練數據:僅使用許可/無版權的音頻數據和 IPA 音素標籤,總時長少於 100 小時。
- 訓練輪數:少於 20 輪。
🔧 技術細節
Kokoro v0.19 在某些方面存在侷限性,主要由於其訓練集和/或架構:
- 數據方面:缺乏語音克隆能力,可能是由於訓練集小於 100 小時。
- 架構方面:依賴外部 g2p(espeak-ng),會引入一類 g2p 失敗模式。
- 數據方面:訓練數據集主要是長篇閱讀和敘述,而非對話。
- 架構方面:8200 萬個參數的 Kokoro 很可能會被訓練良好的 10 億+參數擴散變壓器或像 GPT - 4o / Gemini 2.0 Flash 這樣的數千億參數 MLLM 超越。
- 數據方面:多語言能力在架構上可行,但訓練數據主要是英語。
若想更好地理解這些侷限性,請參考 理念討論。
📄 許可證
本項目採用 Apache 2.0 許可證。具體請參考倉庫中的相關文件。
致謝
模型卡片聯繫人
在 Discord 上聯繫 @rzvzn
。服務器邀請鏈接:https://discord.gg/QuGxSWBfQy

Kokoro 相關介紹