世界を動かす技術を、日本語で。

Show HN: Kitten TTS – 25MB CPU専用のオープンソースTTSモデル

2025年8月6日原文(github.com)

概要

  • Kitten TTS は超軽量なオープンソース音声合成モデル
  • 15Mパラメータ で高品質なTTSを実現
  • GPU不要 でRaspberry Piやスマートフォン等に対応
  • 8種類の英語音声 をサポート
  • pipによる簡単インストール とPythonでの利用が可能

Kitten TTS:超軽量・高品質なテキスト読み上げモデル

  • Kitten TTS は、 オープンソース で提供される リアルな音声合成モデル
  • パラメータ数はわずか15M で、 軽量デバイス 向けに設計
  • 高品質な音声合成 が可能で、 GPU不要 の動作環境
  • Raspberry Pi、低スペックスマートフォン、ウェアラブル、ブラウザ など幅広いデバイスで利用可能
  • 英語テキスト の読み上げに対応し、 8種類(男性4/女性4)の音声 を選択可能
  • モデルサイズは25MB未満 で、 ONNXランタイム を使用
  • 量子化(int8 + fp16) により、さらに省メモリ化を実現

Kitten TTSのインストールと利用方法

  • pip で簡単にインストール可能
    • コマンド例:
      pip install https://github.com/KittenML/KittenTTS/releases/download/0.1/kittentts-0.1.0-py3-none-any.whl
      
  • Pythonコード例
    • モデルのインポートと初期化
      from kittentts import KittenTTS
      m = KittenTTS("KittenML/kitten-tts-nano-0.1")
      
    • 音声生成(例文の読み上げ)
      audio = m.generate("This high quality TTS model works without a GPU", voice='expr-voice-2-f')
      
    • 利用可能な音声一覧
      • 'expr-voice-2-m', 'expr-voice-2-f'
      • 'expr-voice-3-m', 'expr-voice-3-f'
      • 'expr-voice-4-m', 'expr-voice-4-f'
      • 'expr-voice-5-m', 'expr-voice-5-f'
    • 音声ファイルの保存
      import soundfile as sf
      sf.write('output.wav', audio, 24000)
      

Kitten TTS開発の背景と特徴

  • 既存のオープンソースTTS大規模GPU が必要なものが多い現状
  • クラウド型TTS高頻度利用時にコストが高い 課題
  • Kitten TTSエッジデバイスでの動作 を重視した設計
  • 現行モデルは初期チェックポイント で、 全データの10%未満で訓練
  • 今後さらなる高品質化と多言語展開 を予定
  • ユーザーからのフィードバック を積極的に募集

Kitten TTSの今後とコミュニティ

  • 次回リリース では、さらなる 音声品質向上低遅延化 を目指す方針
  • オープンソースコミュニティ との連携による発展を期待
  • 軽量TTSモデル の普及による新たなアプリケーション創出を促進

Hackerたちの意見

これが未来だといいな。オフラインで、小さなMLモデルがどこにでもある安価なハードウェアで推論を行う。ほかのものやデバイス、アプリに簡単に統合できるモデル、さらには他のモデルからもドライブできるかもしれないね。

ほんとそれ。これらの小さいモデルの品質はどんどん良くなっていくよ。

それが私たちのビジョンでもあるよ!

わあ、すごい!いい仕事だね。もっと素晴らしいモデルがCPUで動いてるのを見たいな!

ありがとう、これからもっとたくさんのモデルをリリースする予定だから、CPUだけでも動くよ。

ウェブ版はこちら: https://clowerweb.github.io/kitten-tts-web-demo/ 音はまあまあだけど、サイズにしてはすごいね。

SF映画で「ロボットの声」をリアルに聞かせるために、わざわざ歪ませるのが面白いと思わない?ロボットらしい、明らかに自然じゃない声は、実際には多くの場面で全然問題ないし、むしろ望ましいことだと思う。スマートトースターがBBCの司会者みたいに喋るとは思わないけど、認識しやすい音声ならそれで十分だよね。

ここでは動かないな。バックエンドモジュールが404を返してるよ: https://clowerweb.github.io/node_modules/onnxruntime-web/dis...

https://github.com/Picovoice/orca を試してみて。全部含めて約7MBだよ。

デモのテキストを真似してみたけど、なんかうまくいかないな。他に試したい人がいたらどうぞ。 > Kitten TTSは、デバイス上で使える小さくて表現力豊かなオープンソースのテキスト読み上げモデルのシリーズです。最小のモデルは25メガバイト未満です。

スピーチ生成エラー:OrtRun()の呼び出しに失敗しました。ERROR_CODE: 2, ERROR_MESSAGE: Expandノードを実行中に非ゼロのステータスコードが返されました。名前:'/bert/Expand' ステータスメッセージ: 無効な展開形状 タイ語ではうまくいかないみたい。

ありがとう、探してたんだ。redditのデモはまあまあだけど、数年前に達したレベルだし、試したTTSサンプルはほとんど理解できなかったよ。

Hacker Newsで議論の続きを見る