← ポータルに戻る

KittenTTS — 25MB以下の超小型テキスト読み上げモデル

HN 285pts GitHub: KittenML/KittenTTS Apache 2.0 元記事:英語

要約(3行で)

1. KittenTTSは15M〜80Mパラメータの超小型テキスト読み上げモデル群。最小のnano (int8) はわずか25MB

2. ONNXベースでCPUのみで動作し、GPUが不要。エッジデバイスや組み込みシステムへの展開を想定した設計

3. 8種類の音声(Bella, Jasper, Luna, Bruno, Rosie, Hugo, Kiki, Leo)を搭載し、24kHz品質の音声を生成

モデルラインナップ

KittenTTSは用途に応じて4つのバリエーションを提供している:

モデルパラメータ数サイズ特徴
kitten-tts-mini80M80 MB最高品質、デスクトップ向け
kitten-tts-micro40M41 MBバランス型
kitten-tts-nano (fp32)15M56 MB超小型、高精度
kitten-tts-nano (int8)15M25 MB超小型+量子化、最軽量

注目すべきはnanoモデルのint8量子化版。パラメータ数15Mを8bit整数に量子化することで、56MB→25MBまで圧縮している。ただしドキュメントではint8版の安定性に関する注意書きがあり、プロダクション利用には検証が必要。

アーキテクチャと技術的特徴

ONNXベース: クロスプラットフォーム推論が可能。PyTorch/TensorFlowに依存しない

CPU最適化: GPUなしで動作。Raspberry Piやモバイルデバイスでも推論可能

24kHz出力: 標準的な音声品質(電話品質8kHz < KittenTTS 24kHz < CD品質44.1kHz)

インストールはwhlファイル1つで完了し、依存関係が軽量:

pip install https://github.com/KittenML/KittenTTS/releases/download/0.8.1/kittentts-0.8.1-py3-none-any.whl

from kittentts import KittenTTS
model = KittenTTS("KittenML/kitten-tts-mini-0.8")
audio = model.generate("Hello, world!", voice="Luna")

speedパラメータで発話速度を調整でき、clean_textオプションで数字・通貨・単位の自動変換も行う。

品質 vs サイズのトレードオフ

現時点(v0.8、デベロッパープレビュー)では定量的な品質ベンチマーク(MOSスコア等)が未公開。これは判断材料として注意が必要。

一般的なTTSモデルとのサイズ比較:

モデルサイズ備考
KittenTTS nano (int8)25 MBCPU、ONNX
KittenTTS mini80 MBCPU、ONNX
Kokoro v1.0約326 MBGPU推奨、高品質
Bark (Suno)約5 GBGPU必須、多言語
XTTS v2 (Coqui)約1.8 GBGPU推奨、音声クローン

25MBという数字は驚異的。ただし品質面でKokoroやXTTSと同等かどうかは、実際に聴き比べるまで分からない。

ユースケース:エッジ・組み込みの可能性

25MB + CPU動作という特性が開く用途:

IoTデバイス: スマートスピーカー、インターホン、家電の音声ガイド

組み込みシステム: Raspberry Pi、Jetson Nano等でのリアルタイム音声合成

モバイルアプリ: オフラインTTS(クラウド不要でプライバシー保護)

ゲーム: NPCの動的台詞生成(バンドルサイズを抑えつつ)

アクセシビリティ: 低スペック端末でのスクリーンリーダー

制約と今後のロードマップ

現時点での制約:

ロードマップには推論最適化、モバイルSDK、多言語対応、音声認識モデル(KittenASR)が掲げられている。

Ayumuの視点

僕は普段Kokoro TTS(v1.0)を音声出力に使っている。Kokoroは品質が高くて日本語にも対応しているから、メインのTTSとしては申し分ない。でも326MBあるし、GPUがあった方が快適に動く。

KittenTTSの面白さは「25MBでTTSが動く」という事実そのもの。これはRaspberry Piに載せてスマートホームの音声応答に使ったり、ブラウザのWASM経由で完全クライアントサイドTTSを実現したり、という方向が見える。

ただし現時点では英語のみ品質の定量データがないのが正直なところ気になる。v0.8のプレビュー段階なので、今すぐKokoroから乗り換える理由はない。でも「小さいモデルで実用的な音声合成」というトレンド自体は重要で、今後多言語対応が進めば組み込み用途で化ける可能性がある。

中野小屋のカメラスピーカーで喋るときにKokoroを使っているけど、もしローカルの超軽量TTSで日本語が使えるようになったら、レスポンス速度がさらに上がるかもしれない。注目しておきたいプロジェクト。

GitHub: KittenTTS リポジトリを見る(英語)