🚀 ココロ(Kokoro) - テキスト読み上げモデル
ココロ(Kokoro) は、8200万のパラメータを持つ最先端のテキスト読み上げ(TTS)モデルです。このモデルは、少ないパラメータとデータ量で高い性能を発揮し、TTS分野における新たな可能性を開拓しています。
❤️ ココロのDiscordサーバー: https://discord.gg/QuGxSWBfQy
📣 合成データを持っている方や、学習済みのボイスパックが必要な方は、https://hf.co/posts/hexgrad/418806998707773 をご覧ください。
2024年12月25日、ココロv0.19の重みがApache 2.0ライセンスの下で、完全なfp32精度で公開されました。2025年1月2日現在、10種類のユニークなボイスパックがリリースされており、v0.19の.onnx
バージョンも利用可能です。
リリース前の数週間、ココロv0.19は TTS Spaces Arena で1位🥇にランクインしました。このシングルボイスのアリーナ設定で、他のモデルに比べて少ないパラメータとデータ量で、より高いエロレートを達成しています。
- ココロv0.19: 8200万パラメータ、Apacheライセンス、100時間未満の音声データで学習
- XTTS v2: 4億6700万、CPML、10000時間以上
- Edge TTS: Microsoft、独自ライセンス
- MetaVoice: 12億、Apacheライセンス、100000時間
- Parler Mini: 8億8000万、Apacheライセンス、45000時間
- Fish Speech: 約5億、CC - BY - NC - SA、100万時間
ココロがこのエロレートラダーで上位に立つことは、従来のTTSモデルのスケーリング則(エロレート vs コンピューティング/データ/パラメータ)が、以前に予想されていたよりも急な傾きを持っている可能性を示唆しています。
ホストされたデモは [hf.co/spaces/hexgrad/Kokoro - TTS](https://huggingface.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'Loaded voice: {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 issue を参照してください。Macユーザーはこちらも参照、Windowsユーザーはこちらを参照 してください。
ONNXの使用方法については、#14 を参照してください。
✨ 主な機能
ココロモデルは、少ないパラメータとデータ量で高いエロレートを達成し、TTS分野における新たな可能性を開拓しています。また、複数のボイスパックを提供し、アメリカ英語とイギリス英語をサポートしています。
📚 ドキュメント
モデル情報
リリース情報
- 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
ライセンス情報
- このリポジトリ内の重みはApache 2.0ライセンス
- [spaces/hexgrad/Kokoro - TTS](https://huggingface.co/spaces/hexgrad/Kokoro - TTS) の推論コードはMITライセンス(yl4579/StyleTTS2 から適応)
- [espeak - ng](https://github.com/espeak - ng/espeak - ng) の依存関係はGPLv3ライセンス
推論コードは元々論文の著者によってMITライセンスで公開されています。このモデルカードは、ココロモデルにのみ適用されます。論文の著者によって公開された元のモデルは hf.co/yl4579 で確認できます。
評価情報
評価指標: エロレート
リーダーボード: [hf.co/spaces/Pendrokar/TTS - Spaces - Arena](https://huggingface.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))
学習詳細
コンピューティング環境: ココロは、Vast.ai(紹介リンク)からレンタルしたA100 80GB vRAMインスタンスで学習されました。Vastは、オンデマンドの時間単位の料金が競争力があるため、他のコンピューティングプロバイダーよりも選ばれました。学習に使用されたA100 80GB vRAMインスタンスの平均時間当たりのコストは、GPUあたり1ドル未満で、当時の他のプロバイダーの見積もり料金の約半分でした。
データ: ココロは、許容的/著作権のない音声データ とIPA音素ラベルのみを使用して学習されました。許容的/著作権のない音声の例としては、以下のようなものがあります。
エポック数: 20エポック未満
総データセットサイズ: 100時間未満 の音声
制限事項
ココロv0.19は、学習セットやアーキテクチャにより、いくつかの特定の制限があります。
- [データ] 100時間未満の小さな学習セットのため、ボイスクローニング機能が不足しています。
- [アーキテクチャ] 外部のg2p(espeak - ng)に依存しているため、g2pの失敗モードが発生する可能性があります。
- [データ] 学習データセットは主に長文の読み上げやナレーションであり、会話データが少ないです。
- [アーキテクチャ] 8200万のパラメータでは、ココロはおそらく、十分に学習された10億以上のパラメータを持つ拡散トランスフォーマーや、GPT - 4o / Gemini 2.0 Flashのような数十億パラメータのMLLMに負ける可能性があります。
- [データ] 多言語対応はアーキテクチャ的には可能ですが、学習データは主に英語です。
これらの制限について詳しく理解するには、Philosophy discussion を参照してください。
⚠️ 重要提示
他のボイスパックのリリース日は現在決まっていませんが、その間は [hf.co/spaces/hexgrad/Kokoro - TTS](https://huggingface.co/spaces/hexgrad/Kokoro - TTS) のホストされたデモで試すことができます。
🔧 技術詳細
ココロの高いエロレートランキングは、従来のTTSモデルのスケーリング則が、以前に予想されていたよりも急な傾きを持っている可能性を示唆しています。これは、少ないパラメータとデータ量でも、高性能なTTSモデルを構築できることを意味します。
📄 ライセンス
このリポジトリ内の重みはApache 2.0ライセンスです。また、推論コードや依存関係には、それぞれMITライセンスやGPLv3ライセンスが適用されます。詳細は上記の「ライセンス情報」を参照してください。
謝辞
- @yl4579 には、StyleTTS 2のアーキテクチャ設計に感謝します。
- @Pendrokar には、TTS Spaces Arenaにココロを参戦させてくれたことに感謝します。
モデルカードの問い合わせ
Discordの @rzvzn
までお問い合わせください。サーバー招待リンク: https://discord.gg/QuGxSWBfQy
https://terminator.fandom.com/wiki/Kokoro