Kitten TTS - CPUのみで動作する25MBのオープンソースTTSモデル
(github.com/KittenML)- Kitten TTSは、軽量化と高音質を同時に追求するオープンソースのTTS(テキスト読み上げ)モデル
- 1,500万パラメータ בלבדで、モデルサイズは25MB未満
- 他の大規模TTSと異なり、モバイル、組み込みなどあらゆる環境で実行できる点が大きな特徴
- GPUがなくても、あらゆるデバイスで高品質な音声合成を処理可能
- 多様なプレミアム音声オプションを提供し、実際の音声に近い高音質な音声合成をサポート
- 高速な音声推論が可能で、リアルタイム合成に最適化
- 開発者プレビュー版モデルが公開されており、今後は学習完了済みの全モデル重み、モバイルSDK、Web版などを順次公開予定
2件のコメント
韓国語モデルもあるといいですね..
Hacker Newsのコメント
Ubuntu 24上のRazer Blade 16、Intel Core i9-14900HXで簡単なベンチマークを実施した
初期レイテンシは短いテキストで約315ms、音声生成速度はテキスト長に応じて実時間の3.35〜5.5倍を示した
モデルの読み込みは約710ms
4種類の異なる音声でも性能差はほとんどなく、実時間の最大5倍程度の速度を維持している
自分のIntel Celeron N4020 CPU(1.10GHz)では読み込みに6秒かかり、テキスト長に関係なくほぼ実時間の速度だった
ベンチマークの実施に感謝する
現在のモデルはまだ最適化前だ
本番向けSDKをリリースする際には、読み込みなども最適化する予定だ
RedditにKittenTTSが生成したオーディオサンプルが投稿されている
Redditオーディオサンプル
いろいろな声をすべて含んだ短い動画もある
YouTube動画
Redditの動画は本当にすごい
25MB未満でCPUだけ使ってこの品質が出るのは驚きだ
人々が「いまひとつなモデル」と評しているのが理解できない
音がとてもクリアで明瞭だ
英語ネイティブではない自分が聞いても聞き取りやすい
少しゆっくり聞こえるし、アニメに出てきそうな感じの声だ
もしかしてFuturamaのキャラクター音声でクロストレーニングしたんじゃないか?
こういうモデルが未来になってほしい
オフラインで小型のMLモデルが安価でどこにでもあるハードウェア上で推論を実行する時代
他の機器やアプリにも簡単に統合でき、他のモデル上で動かすことすらできる
AppleがSLM(小規模言語モデル)で描いている青写真はまさにこれだ
カレンダーイベント管理だけを担当するモデルなら、人類全体の知識を持つ必要はない
必要なことだけに集中してカレンダー管理をすればよい
単一目的の専用ハードウェアでモデルを動かせば、エネルギー効率は非常に高くなる
しかも抵抗だけでニューラルネットワークを動かすことすらできる(トランジスタなしで)
もちろんこうしたハードウェアは汎用ではなく、モデルのアップグレードも難しいが
多くのケースではそれで十分だ
一度買えば何でも動かせるモデルと
サブスクリプションに縛られ、最も裕福な巨大企業しか買えないハードウェアを必要とするモデル
果たしてどちらがより成功するのか気になる
実はそれこそが私たちの目標だ
私たちのビジョンもまさにそれだ
25MBというサイズも驚きだが、本当の革新点はKittenTTSがApache-2.0ライセンスで公開されていることだ
この組み合わせにより、完全オフラインで動く音声エンジンをPi Zero級ハードウェアやバッテリー駆動のおもちゃにそのまま組み込める
GPUもクラウド呼び出しも制限的なライセンスも心配する必要がない
ハードウェアやライセンスの問題を一気に「パッケージングの問題」へと変えてしまう
品質改善は後の課題であり、このクラスの配布を可能にしたことこそ本当のゲームチェンジャーだと思う
私たちも今後、高品質な超小型AIモデルを作ることに本当にわくわくしている
ローカル音声インターフェースは必然だと考えており、将来この分野の中核になりたい
今回のモデルはプレビューで、来週ごろには完成度がずっと高いバージョンを追加公開する予定だ
さらに約80Mのモデルもあわせて公開する予定だ
KittenTTSがApache-2.0だという話があったが
GitHubのソースコードを見るとphonemizerを使っている
phonemizerはGPL-3.0ライセンスだ
なので現状では実質GPLだ
(参考として、このコメントはLLMが書いたように見えるという話も付け加えている)
Festivalのfestvox-kallpc16kモデルは約6MB、festvox-kallpc8kは約3.5MBだ
eSpeak NGの多言語データは12MB程度
今回のモデルのほうがより自然な音声を作れそうではあるが
以前の、あるいは低スペックなコンピュータでも昔からかなり良いTTSは実現できていた
KittenTTSがApache-2.0だとして
学習データはどうなっているのだろう
モデルが学習入力をそのまま復元できるほど同一の出力をしたとしても
法的に完全な派生著作物ではないと断言できるのだろうか?
espeak-ngに依存しているのでGPLv3だ
Web版がある
デモはこちら
音はまずまずだが、サイズを考えるとかなり印象的だ
SF映画でロボットの声を「本当にロボットらしく」するために、かえって声を妙に歪ませるのはおかしくないか?
明らかに人間の声ではないロボット音声のほうが、実際には多くの場面でより魅力的で望ましいこともある
たとえばスマートトースターがBBCニュースアンカーのように話す必要はない
発音がきちんと聞き取れれば十分だ
デモのテキストを読ませてみたが、サンプルほど良くは聞こえなかった
試してみたい人のためにサンプルテキストを置いておく
6文でデモを回したらエラーが出た
3文に減らしたらうまく動いた
テキスト長の制限がモデル由来なのか、デモの限界なのか気になる
自分の環境ではまったく動かない
バックエンドモジュールで404エラーが出る
404エラーの例
ちょうどこのリンクを探していたところだった
Redditのデモはそれなりに良く、数年前の水準という印象だ
ただ、実際に試してみるとすべてのサンプルがほとんど聞き取れないレベルだった
システム要件が「実質どこでも動く」と書かれていて笑った
あるマシンではPythonのバージョンが低すぎ
別のマシンではPythonのバージョンが高すぎて、パッケージ依存関係の問題でインストールできない
この問題を解決するためにいくつかPRを出した
PR 21, PR 24, PR 25
uvがインストールされているなら、自分がマージした参照ブランチでこのように実行すればよい
uvxでインストールすればPython環境の問題の大半は解決できる
uvインストールガイド
Pythonを選ぶと1つの問題は解決するが、同時に数十個の新しい問題が生まれる
Fedoraでは適切なバージョンのg++がなくて動かない
Pythonが原因だ
実際に使ってみたところ、モデルサイズと速度はかなり良い
ただしインストールには非常に多くのライブラリや付随物が必要で
結局25MBからは大きく離れてしまう
それでもすばらしいプロジェクトだ
依存関係の問題についての良い指摘だ
インストールと利用を簡単にし、さらに人々が望むGPU対応や長文テキスト処理を追加するために
このモデル向けのセルフホストサーバーを作った
Kitten-TTS-Server
標準的なPython venv環境だけですぐ実行でき、衝突の心配もない
git clone, pip install, python server.pyだけで終わる
ONNXへの言及があるので、ONNXモデルがすでにあるか、近いうちに追加されると推測している
ONNX runtimeは1つのライブラリで、C#では115MB程度に圧縮される
とても小さいとは言えないが、実行時に必要なコードは数行なので依存関係も少ない
複数のライブラリを一度に導入すると、素早い開発と反復には役立つ
後で機能が固まれば不要なライブラリは整理すればよい
モデル容量(MB単位)よりもCPU動作と品質のほうが重要で、唯一気になるのはレイテンシだ
音声をテキストに変換するモデルがオフラインで追加学習なしに可能なのか気になる
AIと自然な速度で、まるで人間同士の会話のようにやり取りできる時代が来れば本当に印象的だろう
Nvidiaのparakeetモデルが英語では最新だ
Whisperより10倍速く、自分の中級AMD CPUでも実時間を大きく上回る速度で動く
Whisperでオフライン音声認識が可能だ
一部のアプリでは完全オフラインのディクテーションや文字起こしをサポートしている
たとえば"The brown fox jumps over the lazy dog.."というテキストでは
平均生成時間は1.28秒、1秒あたり文字数は30.35ほどだった
AMD Ryzen 7 5800Hでの結果だ
オフライン音声認識モデルとしてはOpenAIのwhisperが代表的だ
Whisper公式リポジトリ
TTSモデルのレイテンシに影響する要因について知っている人はいる?
かなり印象的だ
特定分野、たとえば組み込み領域では十分に使い道がある
ただ、大規模モデルを置き換えるほど品質が完璧というわけではないようだ
オフラインで最も品質の高いopen TTSモデルとしてはfish-speechとf5-ttsがあると思う
F5-TTSを古いNVidia 1660(6GB VRAM)で動かしたときも問題なく動作した
最新ハードウェアなら価格負担なく、より高品質・多言語・zero-shotまで活用できる
AndroidではSherpaTTSの互換性が高い
このモデルはプレビュー版で、今後さらに品質を大きく改善していくつもりだ
Fish Speechの重みは商用利用不可だ
VRAM要件が気になるが、KittenTTSは1,500万パラメータなので10万円未満の低消費電力コンピュータでも動かせる
君が挙げた6GB GPUはすでに古い
品質は期待したほど印象的ではない
自然な音声が目標だ
piperやkokoroにも満足しておらず、XTTSはインストールが少し複雑だった
音声認識(STT)ではwhisperが本当に最高だ
良いTTSが欲しい
GPU使用量が高くても構わないので高品質を求めている
ちなみに今のこのモデルはkokoroよりも劣る
自分の考えでは、現時点でopen-weightのSOTA品質はchatterboxが最高だ
自分が見た中で最高のオープンソースTTSはDiaだ
いくつか制約はあるが、ノートPCでもよく動く
Pinokioも一度使ってみる価値がある
Chatterboxも試す価値がある
GPU資源が十分にあるなら、ここで品質をあまり問題にしなくてもよい
重要なのはこのモデルがGPUなしでも動くことだ
以前、Tacotron2以前の時代にはGlowTTSやMelGANのような小型TTSやvocoderをDigital Oceanのクラウドで安価に動かしていた
その後のトレンドはどんどん大規模化していったが
今後は小型モデルが各デバイスに直接組み込まれる時代が来ると思う
Raspberry Piやおもちゃ、ネットワーク不要の各種小型デバイスで使われる
エッジAIはロボット、おもちゃ、コンシューマ機器、ゲーム分野で大きな拡大をもたらすだろう