爆速・軽量・高品質!ローカル環境で動く最強TTS『Kokoro』を試してみた
Local, CPU-Friendly, High-Quality TTS (Text-to-Speech) with Kokoro
Local, CPU-Friendly, High-Quality TTS (Text-to-Speech) with Kokoro
ローカル環境かつCPU環境でサクサク動作する、高品質なテキスト読み上げ(TTS)モデル『Kokoro』の紹介です。リソース制限がある環境でも手軽に導入できる、非常に有望なプロジェクトです。
面白いね。これ、まさに今気になっていたところだよ。これまでwhisperxをずっと使ってきたんだけど、単なる文字起こしだけじゃなくて、タイミングや話者識別(字幕作成用とかに)も重要だと思ってるからさ。ただ、pyannoteに依存してて、ライセンスがややこしかったり、インストール時のスクリプト作成が面倒だったりするのがネックで。もっと文字起こしの精度が良くて、ダイアライゼーション(話者分離やタイミング管理)もサポートしてるものを探してたんだ。結局、文字起こしにはparakeet、ダイアライゼーションにはsoftformerを使うことにしたんだけど、対応しているエンジンのほとんどがsoftformerを含んでなくてね。自分でparakeet-rs( https://github.com/altunenes/parakeet-rs )用のOpenAI互換サーバーをコード書いて構築してみた(こっちはsoftformerをサポートしてる)。これをOpenWhispr(文字起こしができるデスクトップアプリ)と組み合わせて使ってるよ。今はGPUを別の用途で使ってて手が回ってないから、CPUだけで文字起こししてるんだけど、ローカルでいつでも好きな時に文字起こしができるっていうのは、とんでもなく強力だね。
アクセシビリティ関連のプロダクトでKokoroをかなり使い込んでいるよ。すごく使いやすくて気に入ってる(似たような品質のTTSの多くが必要とするNVidiaのGPUを持っていなくても動くから)。特に気に入っているのは、IPAの読み方ガイドを手動で追加できる点だね。同形異義語でKokoroが間違った読み方をしてしまうことがたまにあったから助かってる。少し物足りないのは、単語1〜2個だけを喋らせる時かな。例えば「six」とだけ言わせようとすると、ほぼ確実に「ア・シックス・ア」みたいな変な発音になる。ただ、回避策は見つけたよ。長い文章(「The word is: six」みたいな)で渡せば普通に喋ってくれる。Kokoro APIが各単語のタイムスタンプを返してくれるから、Pythonスクリプトで必要な単語の部分だけ切り出せばいいんだ。イントネーションは多少フラットになるけど、かなり確実だよ。Discordでこの件について聞いてみたら、モデルのパラメータサイズが小さいことによる制限だと言われた。まあ公平に見て、ElevenLabsの音声でもたまにこういう現象は起きるしね。
AIをいじり倒して、Kokoroの重いレイヤーを削る作業を1日やってみた。スマホやCPU、MNN上で動かしてみたら3倍速くなったよ。品質もかなり近い。環境によって変わるだろうけど、自分のスクリプトはこれ: https://github.com/DavidVentura/translator-rs/blob/master/scripts/kokoro_mnn/rebuild_best_mnn.sh#L53
数ヶ月前に、どのWebページでもこれができて、読んでいる文章をハイライトしてくれるChrome拡張機能を作ったよ。コンテナの起動やWebページのコピペの手間も省ける。Kokoroを直感的に使いたい人には役立つかも。 https://chromewebstore.google.com/detail/local-reader-ai-on-device/fojpmmgbjcffadgoppmojnggkjhggimc
このモデル最高だね。自分はGPU貧乏で、ローカルモデルを全然触れていないことに対するFOMOを感じてたんだ。1ヶ月前くらいにGTX1650でKokoroをセットアップして、記事読み上げ用のTTSとして使ってるよ。簡単なWebUIでURLを貼ったりテキストをペーストしたりすると、Pythonが整形してKokoroでTTS変換し、それをApple Podcasts用のRSSとして配信する仕組み。朝のドライブ中に、まとめておいた記事やブログ投稿を聞いてるんだ。そのうち別々の声を使って、集めたニュースをラジオの朝番組みたいに読み上げる「NotebookLM」みたいなものを作ってみたいと思ってる。
最高にクールだね!!自分も1月から独自のソリューションを使ってるよ。Linuxを使っててAquaやWhipsrflowとかが使えないから、自分で作ったんだ。最近クリーンアップしてインストールしやすくしたよ。興味があればチェックしてみて: https://github.com/Hugo0/voiceio 。使えば使うほど改善されるし、ローカルマシンで動くし、かなり良いソフトウェアだよ。最近はPC操作の60%が完全に音声入力になってる。
Kokoroは素晴らしいよね。少し前にそれ用のMCPをビルドして、結構使ってもらえてるよ。もし興味があるならここから見てみて: https://github.com/mberg/kokoro-tts-mcp
Qwen3-TTSの音声クローンには完全に惚れ込んだ。ローカルで動くし、何度でも好きなだけ使えるのが最高。
このレポジトリはTTSモデルを比較するのに良い出発点だよ https://github.com/5uck1ess/tts-bench 。Kokoroは1年半前にリリースされたことを考えると本当にいいモデルだね。期待以上の性能を発揮してるよ https://5uck1ess.github.io/tts-bench/scores.html
これは驚きだし、ゲームチェンジャーだね。NLPの時代には、このモデルが提供するものの半分以下を達成するためだけでも何百万ドルも費やされていたんだ。それが今、CPUで動くなんて次のレベルだよ。汎用ハードウェアでアルゴリズムがしっかり動作するようになると、形勢が一気に逆転する。これは、大多数のユースケースで十分に使えるCPU駆動LLM(CPULLM)が、そう遠くない未来に来るんじゃないかという希望を与えてくれるね。