- ONNXベースの
State-of-the-art **軽量テキスト読み上げ(TTS)**ライブラリで、CPUのみで高品質な音声合成を実行
- モデルサイズは**15M〜80Mパラメータ(25〜80MB)**の範囲で、GPUなしでも効率的に実行可能
- 8種類の内蔵音声、速度調整、テキスト前処理パイプライン、24kHzオーディオ出力機能を提供
- Hugging Faceですぐに利用でき、Python APIで簡単に統合可能
- エッジデバイスへのデプロイと商用統合支援を目標としたオープンソースTTSソリューション
Kitten TTSの概要
- Kitten TTSはONNXベースのオープンソースTTSライブラリで、GPUなしでCPU上で高品質な音声合成を実行
- モデルサイズは15M〜80Mパラメータで、ディスク上では25〜80MB
- バージョン0.8では15M、40M、80Mモデルを提供
- 現在は開発者プレビュー段階で、APIは今後変更される可能性あり
- 商用サポート(統合支援、カスタム音声、エンタープライズライセンス)を提供
主な機能
- 超軽量構造: int8基準で25MBから始まり、エッジ環境へのデプロイに適合
- CPU最適化: GPUなしでも効率的なONNX推論を実行
- 8種類の内蔵音声: Bella, Jasper, Luna, Bruno, Rosie, Hugo, Kiki, Leo
- 速度調整機能:
speedパラメータで発話速度を制御
- テキスト前処理パイプライン: 数字、通貨、単位などを自動処理
- 24kHz出力: 標準サンプルレートの高品質オーディオを生成
提供モデル
- 4種類のモデルを提供
- kitten-tts-mini (80M, 80MB)
- kitten-tts-micro (40M, 41MB)
- kitten-tts-nano (15M, 56MB)
- kitten-tts-nano (int8, 15M, 25MB)
- 一部のユーザーは
kitten-tts-nano-0.8-int8モデルで問題を報告しており、Issue登録を推奨
デモと使い方
- Hugging Face Spacesでブラウザから直接試用可能
- Python 3.8以上とpipだけでインストール可能
- 基本的な使用例:
from kittentts import KittenTTS
model = KittenTTS("KittenML/kitten-tts-mini-0.8")
audio = model.generate("テキスト", voice="Jasper")
- 高度な機能: 速度調整(
speed)、ファイル保存(generate_to_file)、利用可能な音声一覧の取得
API構成
KittenTTS(model_name, cache_dir=None)
- Hugging Face Hubからモデルをロード
model.generate(text, voice, speed, clean_text)
model.generate_to_file(text, output_path, voice, speed, sample_rate, clean_text)
model.available_voices
システム要件
- オペレーティングシステム: Linux, macOS, Windows
- Python: 3.8以上
- ハードウェア: CPUのみ必要、GPU不要
- ディスク容量: モデルに応じて25〜80MB
- 仮想環境(venv、condaなど)の使用を推奨
ロードマップ
- 推論エンジン最適化、モバイルSDK、高品質モデル、多言語TTS、KittenASRを今後リリース予定
- Apache License 2.0
1件のコメント
Hacker Newsのコメント
Kitten TTS向けのCLIラッパーであるpurrを作った
kittenパッケージは kittentts → misaki[en] → spacy-curated-transformers という依存チェーンを持っている
そのため
uvで直接インストールすると、torchやNVIDIA CUDAパッケージ(数GB)まで引っ張ってくるが、実際の実行には不要だった初回実行時に「OSError: PortAudio library not found」というエラーが出たが、
apt install libportaudio2で解決したただ、不要な依存関係を削ったことで機能面の損失があるのかは気になる
本当に素晴らしいプロジェクトだ
近いうちに自分でも使ってみるつもりだ
ただ気になる点がある — なぜ コマンドライン実行ファイル の形で配布しなかったのか?
APIもほぼmanpage風なので、すぐ作れそうに思える。単なる興味だ
まずonnx版でフィードバックを集め、その後コマンドライン実行ファイルも含めて実行までの流れを簡単にするつもりだ
OpenClawが気に入った理由は、DiscordでGitHubのURLを送るだけで即座に 音声メッセージ を生成してくれたことだ
数分でベンチマークとサンプル音声も受け取れた
品質はサイズの割に印象的だ。声は完璧ではないが悪くない
Intel 9700 CPUでは80Mモデルでおよそ1.5倍のリアルタイム速度で、3080 GPUでもそれより速くはならなかった
今は表現力を見せるためにアニメ風の声を入れている
GPUで遅い理由をGitHub issueかDiscordで共有してもらえると助かる。サンプルコードも追加する予定だ
Pythonのバージョン衝突を避けるのに苦労し、Dockerでも試したが結局は手でセットアップする必要があった
何とか動いたが、Pythonは本当に嫌いだ
今のところ アメリカ英語の音声 しか対応していないようだ
個人的にはアイルランド、イギリス、ウェールズのアクセントにしか興味がない。アメリカ英語は好みではない
デバイス上で動くTTSは アクセシビリティツール として本当に素晴らしい
ほとんどのデバイスはオンラインサービスに依存しているが、こうしたローカル方式の方がずっと良い
以前のモデルよりはるかに明確な 改善 を感じる
本当に印象的だ。共有してくれてありがとう
現在の15Mモデルは以前の80Mモデルより優れており、この改善ペースを維持していくつもりだ
今後 日本語専用モデル も見てみたい
Qwen3-ttsは日本語をサポートしているが、ときどき中国語が混ざるので使いづらい
ただしそうすると音の高低(例: 飴 vs 雨)の情報が失われる可能性がある
ユースケースを教えてもらえれば品質改善に反映したい
モデルサイズに対して性能は印象的だった
ただ、数字の読み上げに問題があった
「Startup finished in 135 ms.」を試したところ、数字が ノイズのように 聞こえた
「one hundred and thirty five seconds」に変えると、まだましだった
それまでは テキスト前処理 を追加すれば解決できる
ほとんどのTTSモデルは、数字や単位を文字列に変換する方式で処理している
次のリリースではモデル側でも修正される予定だ
4つのモデルを比較した サンプル音声 も一緒に見せてもらえるとよいと思う
同じ文を各モデルで読ませた例があると理解しやすいはずだ
それまでは Hugging Faceデモ で直接モデルを試せる
これは オープンソース なのか、それとも オープンウェイト モデルなのか気になる
今週末までにMITライセンスの phonemizer も追加する予定なので、自由に使えるようになるはずだ