Kitten TTS登場!わずか25MB、GPU不要で動く驚きのオープンソース音声合成モデル
引用元:https://news.ycombinator.com/item?id=44807868
Kitten TTSは、オンデバイスアプリケーション向けの小型で表現力豊かなオープンソース音声合成モデルのシリーズだよ。25MB以下でGPU不要、15Mパラメータの最小モデルをプレビュー公開できたのが嬉しいな。このリリースでは、英語の音声合成に対応してて、男性4名、女性4名の計8種類の声が使えるんだ。モデルはint8 + fp16に量子化されてて、実行にはONNXを使ってるよ。Raspberry Piや低価格スマートフォン、ウェアラブルデバイス、ブラウザなど、文字通りどこでも動くように設計されてるんだ!早期ユーザーに、次のリリース(来週には出したいな)で利用可能になる音声のレイテンシと声を体験してもらうために公開したよ。フィードバックがもらえると嬉しいな!ちなみに、このモデルは全データの10%以下でトレーニングされた初期のチェックポイントだよ。既存の表現力豊かなオープンソースモデルは動かすのに大きなGPUが必要で、クラウドの代替は高頻度で使うには高すぎるから、これを作り始めたんだ。エッジデバイスで動くくらい小さいフロンティアオープンソースモデルの必要性を感じたんだよね!
Redditに生成された音声サンプルがある投稿があるよ: https://www.reddit.com/r/LocalLLaMA/comments/1mhyzp7/kitten_…
Redditの動画、マジやばいよ!25MBでCPUだけでこのクオリティはすごいのに、「OK」って言う人がいるの信じられないわ。
なんか遅いし、アニメに出てくるキャラの声みたいに聞こえるなぁ。
「OK」って言ってる人は、もしかしたら自分で試したのかもね。動画のデモとリリースされた25MBモデルは別物なんじゃないかな。
技術的にはすごいけど、使うかどうかは微妙かな。男性の声がわざとらしいニュースキャスターみたいで、女性の声も広告みたいなんだよね。たぶん、トレーニングデータがそんな感じだったのかな、デモの意図的な設定じゃないと思うけど。慣れるかどうかわかんないな。
スマホでTTSはよく使うんだけど、最近F-DroidのSherpaTTSって新しいプロジェクトも試したんだ。Huggingfaceからモデルを引っ張ってくるんだけど、めちゃくちゃ重くて(これ動かすと他のアプリが一時停止するんだ)、音はいいんだけど、最初のニュース記事でいきなり1、2回誤読があったんだよ。珍しい言葉とか新しい言葉をどう言うか推測してるから、論理的なルールじゃなくなってるんだね。
GoogleとSamsungもデバイスにTTSエンジンをプリインストールしてて、それらは音も機能も問題ないよ。ちょっと単調だけど、いつも同じように発音してくれるから、なんて書いてあるかいつもわかるんだ。
Espeak(または-ng)は最悪だけど、30秒くらい注意して聞けば慣れるし、ちゃんと全部理解できるよ。これがベストなオープンソースの選択肢かどうかはわかんないけど(たぶん他にも試すべきものがあるんだろうね)、少なくとも一番信頼できるし、ライセンスの問題なくどんなデバイスにもインストールできるから、何が起きてるか常にわかるよ。
これ、Futuramaの声でも学習したの?
色々な種類の声が全部聞ける動画がここにあるよ: https://www.youtube.com/watch?v=60Dy3zKBGQg
音声の速さは調整できるから、モデル自体の問題じゃないよ。重要なのは表現力と抑揚で、Kitten TTSはその点espeakよりずっとすごい。このサイズでこのクオリティはマジで驚きだよ。KokoroTTSよりずっとコンパクトだしね。
彼が言ってるのは、英語の吹き替えによくある大げさな演技のことだと思うよ。
デフォルトの声は最悪でデモにはないってさ。RedditユーザーがLimeWireで生成したのがこれだよ→ https://limewire.com/d/28CRH#UPuRLynIi7
ファミリーガイのモートみたいな声だね。
https://vocaroo.com/1njz1UwwVHCF これ聞くとあまり良くないね。技術的な進歩はすごいし、もっと良くなるかもだけど、現状だと一般向けアプリには使えないよ。
sherpaOnnxを試したいならこれ試してみて→ https://github.com/willwade/tts-wrapper。最近kokoroモデルを入れたから、かなり良いはずだよ。モデルはたくさんあるし、Droidアプリはコールドスタートが苦手なのかもね。
いいね、ありがとう。あと、最後の男性の声が高くて酔っ払ってるみたいに聞こえるね。
すごくクリアな声だね。私みたいな英語ネイティブじゃない人には、理解しやすいよ。
声が人工的で耳障りだね。特に男性の声は深みがなくて、最後の声だけは少し深みがあるかな。他はまだ思春期って感じ。どの声も人間っぽくなくてすごくイライラするし、演技してるみたいにも聞こえるよ。
OverwatchのD.Vaみたいな声がちょっと聞こえたな。
疑問なのは、中国のガチャゲームからデータ盗んだのか、PythonコードにClaude CodeかGemini CLIを使ったのかってことだけ。データに過学習してるから、そのうち消えると思うよ。
ローカルだと品質がすごく悪いね。
プレビューリリースだって言ってたし、正式版が出るまでは判断を保留するよ。
ありがとう。正直、どれも普段から聞きたいとは思わないな。
モデルはまだトレーニング中なんだ。次のリリースでは品質が上がる予定だよ。これはプレビューリリースだからね :)
AndroidのAPKを試したい人はここからダウンロードできるよ:
https://k2-fsa.github.io/sherpa/onnx/tts/apk.html
詳細なフィードバックありがとう!今、フォネマイザを使わないモデルを開発中だよ。
個人的にはRHvoiceもかなり良いと思うな。
これが未来だといいな。オフラインで動く小さなMLモデルが、安価なハードで推論できて、他のデバイスやアプリにも簡単に組み込めるようになること。他のモデルから制御できるようになるのも期待しちゃうね。
モデル専用のハードウェアなら、もっと省エネになるはず。理論上は、トランジスタじゃなくて抵抗器だけでニューラルネットワークを動かすチップも設計できるんだ。汎用性はなくてモデルのアップグレードもできないけど、それでも合理的な利用ケースはたくさんあるよ。
でも抵抗器って、理論上も熱を出す装置なんだよ。トランジスタは理論上、完璧にオンかオフの状態になれて、そのどちらの状態でも熱を放出しないのと違うね。
理論上は可能だけど、物理的な”ニューロン”は最悪のアイデアだよ。FFネットの2つの層間の接続数は、各層の重みの積になるから、ルーティングの問題が他の全てを誤差にしちゃうんだ。
もっとコメントを表示(1)
毎日新しいモデルが出てくるのが問題なんだ。だから、一つのモデル専用のチップを作るのは経済的に成り立たないんだよね。
AppleはSLMでこれを構想してるみたいだね。例えば、カレンダーイベント管理専用のモデルとか。全人類の知識は要らなくて、カレンダー管理に必要な情報だけあればいいって考え方。
問題は、AppleがみんなにApple製品だけを使わせようとしてるってことだよ。
Googleもみんなに自社製品を使ってほしいと思ってるのと同じさ。それが企業ってもんさ。でも、技術自体は公開されてて、研究も利用できるよ。
そうかな?
ベースの600ドルのMacと150ドルのApple TVは、市場で簡単に最高の取引の2つだよ。
僕は将来のApple TVモデルが完全にローカルなLLMマシンになるってまだ賭けてるよ。
こうすれば、彼らは自宅にあるデバイスに”LLM”作業の大部分をオフロードできるし、家族のiPhoneやデバイス全部がローカル推論にそれを使える。
今のままでもパワフルすぎるんだから、何か役に立つことに使わない手はないよね。
うーん。
一度だけ払えば(あるいは全く払わなくても)何でも動くモデルかな?
それとも、囲い込んで、最も裕福な巨大企業だけが買えるハードウェアを要求するサブスクリプションモデルかな?
どっちが勝つか、どうだろうね。
これも僕たちの目標だよ。
それ、僕たちのビジョンでもあるんだ!
うん、全くその通り。
これらの小さなモデルの品質は上がる一方だろうね。
いくつか簡単なベンチマークをやってみたよ。
Ubuntu 24、Razer Blade 16、Intel Core i9-14900HXでのパフォーマンス結果だよ。
初期遅延は約315ミリ秒。
音声生成速度は短文でリアルタイムの3.35倍、長文で5.50倍だったね。
モデルの読み込みは約710ミリ秒で、音声生成は初期遅延を除いてリアルタイムの約5倍の速度だよ。
パフォーマンスは音声によっても一貫してたね。
ベンチマークをやってくれてありがとうね。
今、モデルはまだ最適化されてないんだ。
製品向けSDKをリリースする時に、読み込みとかを最適化するつもりだよ。
俺のIntel(R) Celeron(R) N4020 CPU、1.10GHzだとインポートやロードに6秒かかるし、テキスト生成は色々な長さのテキストでだいたいリアルタイムの1倍速くらいだったよ。
俺より先に、俺と同じハードウェアでテストしてくれてサンキュー。
Web版はこれだよ!https://clowerweb.github.io/kitten-tts-web-demo/
音はまあまあだけど、このサイズにしてはすごいね。
SF映画で”ロボットの声”をわざと歪めて、”ロボットらしく”聞こえさせるのって変だと思わない?ロボットっぽい、あえて不自然な声でも、多くの場合全然OKだし、むしろ desirable だよね。賢いトースターがBBCのホストみたいに話す必要なんてないし、聞き取りやすければ十分だろ。
これは少なくとも面白いアイデアだね: https://genderlessvoice.com/
ロボットっぽい、あえて不自然な声でも全然OK、聞き取りやすければ十分って意見だけど、フォルマントシンセはもう何十年も前からあって、すごく聞き取れるし少ない計算能力で動くんだ。でも、みんなそれを聞きたがらないんだよね。
Software Automatic Mouth: https://en.wikipedia.org/wiki/Software_Automatic_Mouth
聞いてみて: https://simulationcorner.net/index.php?page=sam
うーん、これはちょっと耳障りすぎるな。
デモのテキストを試してみたんだけど、なぜかデモみたいにうまく聞こえないんだよね。
もし試したい人がいたらこのテキストでどうぞ:
Kitten TTS is an open-source series of tiny and expressive text-to-speech models for on-device applications. Our smallest model is less than 25 megabytes.
それは映画によるよ。AlienシリーズのAshやBishopは、劇的な理由がない限り人間っぽく聞こえるしね。君の意見には同感だよ。俺はいつもMoon+ReaderでGoogle TTSを使ってるんだ(人間が読んだオーディオブックも試したけど、TTSの一貫性の方が好きなんだ)。
Androidの音声認識エンジンを置き換えるAPKってある?sherpa-onnx試したけど、リアルタイムだと遅すぎたし、オーディオブックを早送りすると特にダメだったよ。
これオープンソースじゃないよ。「AccessKeyをPicovoiceのライセンスサーバーで認証するためにインターネット接続が必要…制限を増やしたいならサブスクリプションプランを購入できる」って書いてある。URL: https://github.com/Picovoice/orca#accesskey
デモで6文試したらエラー出たけど、3文に減らしたらちゃんと動いたよ。この文字数制限ってモデルのせい?それともデモ版だけの制限なのかな?
Safariだと動かないみたい。でもChromeでは問題なく動くよ。
音声はすごい良い感じ!個人的にはすごく美しく聞こえるんだけど、性別がないって感じではないね。
これ探してたんだ。Redditのデモはまあまあだけど、数年前のレベルって感じ。他のTTSサンプルはほとんど聞き取れなかったよ。
「音声生成エラー:OrtRun()呼び出し失敗。エラーコード: 2、エラーメッセージ: Expandノード実行中に非ゼロステータスコードが返された。名前:’/bert/Expand’ ステータスメッセージ: invalid expand shape」
タイ語だと動かないみたい。
面白いコンセプトだけど、あのサイトって「Top X」みたいなブログスパムばっかりなのなんで?
ここじゃ動かないよ。バックエンドモジュールが404エラーを返してる。
URL: https://clowerweb.github.io/node_modules/onnxruntime-web/dis…
もっとコメントを表示(2)
デモって一番小さいモデル使ってないの?
PCだとPythonの依存関係が大変なのに、誰かが自己完結型のJavaScriptコードにパッケージして、モデルをロードしたらオフラインで動くようにしたらしいね。これ、どうやったの?って感じ。
これ見てみて。https://github.com/Picovoice/orca/tree/main/demo%2Fandroid
ちょっと違うんだよね。リプリーも僕らも、アンドロイドだと明かされるまで分からないってのが大事なんだ。人工物として提示されてないのがポイント。ブレードランナーの”人間よりも人間らしい”も同じ。その曖昧さがないと映画として成り立たないよ。
個人的には、ソフトウェアや言語モデルからのテキストには、古い合成音声のほうがTTSとして好きなんだよね。
Qっていう、ジェンダーレスな音声モデルがあったよ。2019年3月のニュースだね。コメントは235件もあったみたい。https://news.ycombinator.com/item?id=19505835
フィフス・エレメントのノベライズで、警官がスピーカーを使う時、わざとロボットっぽく話すように教えられてたのを覚えてる。誰かがそんなのを望むって考えがいつも変だと思ってたんだ。
Macを使ってるなら、ターミナルで”say [言いたいこと]”って打てば音声合成できるよ。
君の言う通りだね。代わりに『銀河ヒッチハイク・ガイド』のマーヴィンを例に出すべきだったよ。彼のしゃべりにはごく軽い処理しかされてないんだ。
カルチャー小説シリーズでイアン・バンクスは、伝送された音声やホログラムの不気味なほどのリアルさに、僕らが違和感を覚えるようになるだろうって想像してたんだ。だから、それが画像だと示すために意図的に歪みを加えるって設定だよ。
今はチャンキングが有効になってないんだ。すぐに追加する予定だよ。そうすれば長さ制限がなくなるからね。
もしかして長さ制限があるのかな?長い文章と短い文章で試したけど、どちらも動作するよ。i7コアだと生成に少し時間がかかるけどね。句読点の制限じゃないと思う。だけど、音声品質はかなり悪いな。80年代のC64 SAM (https://discordier.github.io/sam/) と大差ないくらいで、期待はずれだよ。
25MBっていうサイズだけがすごいんじゃないよ。KittenTTSがApache-2.0ライセンスなのがポイントなんだ。これでPi Zeroくらいのハードウェアやバッテリー駆動のおもちゃにもオフライン音声が組み込める。GPUもクラウドも厳しいライセンスも気にしなくていいから、音声合成がハードウェア/ライセンスの問題からパッケージングの問題に変わる。品質は後で改善できるし、この展開レベルが本当にすごいんだよ。
>KittenTTSがApache-2.0だよって言ってるけど、リポジトリのコード[1]見た?GPL-3.0ライセンスのphonemizer[2]を使ってるんだ。現状では実質GPLライセンスだよ。[1]: https://github.com/KittenML/KittenTTS/blob/main/kittentts/on…
[2]: https://github.com/bootphon/phonemizer
追記:LLMが生成したコメントに返信しちゃったみたい。
GPLライセンスのコードを彼ら自身のコードと一緒に配布してる場合にだけ当てはまる話だよ。MITライセンスのPythonライブラリがbashを実行するコードを含んでても、急にbashのライセンスに従うことにはならないよね。でも、OSベンダーが私のライブラリをbashと一緒に配布したら、私のライブラリもGPLに再ライセンスしなきゃいけなくなるのかな?
LLMにコードを食わせて書き直して自分のものにするのを何が止めるんだい?コードをブロックごとに分析させて、書き換えを監督するような追加ステップもできる。これでAI時代の知的財産権は自由だ。道徳的な問題はあるかもしれないけど、それ以外は?個人的には、AIトークンを使う気があるなら、すべてのオープンソースコードはパブリックドメインと同じだよ。
>弁護士じゃないけど、私の見るところ選択肢は2つ、ライセンスを変えるか依存をなくすかだね。でも3つ目の選択肢もあるよ。プロジェクトに例外を頼むことだ。でもそれは多分認められないだろうね¹。そして4つ目の選択肢は、ライセンスを無視すること。Onyxみたいな会社が取ってる選択肢だね。¹GPL3やAGPLを選ぶ人は、明確さを保つためで例外は水を濁すし、多くのメンテナーがいる場合は再ライセンスには全員の同意が必要で、依存関係からライセンスを継承してたらさらに難しいよ。
4つ目の選択肢は、一種のデュアルライセンスだね。現状のプロジェクトはGPL-3.0で利用可能だけど、依存関係を除いたこのリポジトリのソースコードはApache 2.0でも利用できるってするんだ。ユーザーは実質GPL-3.0に縛られるけど、GPLの依存関係を取り除ければApacheで使えるってことだね。