82Mの軽量TTS「Kokoro」をローカルPC(CPU)で動かしてみた
ざっくりまとめ
軽量TTS「Kokoro」を検証
CPU環境でも実用的な生成速度(10秒の音声が約3秒)
品質は淡々としている感じ
1. はじめに:「Kokoro」とは
このモデルは、2024年のクリスマス(12月25日)にhexgradという名前で活動する個人の研究者によって公開されました(Discordなどでは @rzvzn というハンドルネームでも知られています)。
まず驚くべきは、その圧倒的な「身軽さ」です。昨今のAIモデルが数億、数十億という巨大なパラメータ数を誇る中で、Kokoroのパラメータ数はわずか82M。ファイルサイズにしても100MBを切る程度です。
しかし、その小さな体には、最新の技術が凝縮されています。
技術的な背景と驚きのエピソード
開発のルーツ:高品質な音声合成として名高い「StyleTTS2」のアーキテクチャをベースに、高速なデコーダー(ISTFTNet)を組み合わせることで、計算量を極限まで削ぎ落としています。
驚異の学習コスト:これほど高品質なモデルでありながら、学習にかかった費用はわずか1,000ドル程度(約15万円ほど)と言われています。効率的な学習がいかに重要かを証明するような、夢のあるエピソードですよね。
オープンな精神:ライセンスはApache-2.0。商用利用も含め、誰でも自由に、そして無料で使うことができます。
多言語への対応:英語から始まり、現在は日本語、中国語、フランス語、スペイン語など、多くの言語をサポートしています。
「実は、この『StyleTTS2』という技術、前回の記事でご紹介した『Tsukasa Speech』のベースにもなっていたんです。別の技術かと思って調べ始めたのですが、こんなところでまたご縁があるとは驚きですね。
想定されている用途
この軽量さがもたらす最大の恩恵は、「AIをクラウドから手元(ローカル)へ取り戻せる」ことです。
デバイス上での動作:高価なGPUを積んだPCでなくても、スマホやシングルボードコンピュータ(Raspberry Piなど)、あるいは今回私が試したような「ごく普通のノートPC」のCPU環境で、リアルタイムに喋らせることができます。
オフライン環境:ネットに繋がなくても使えるため、プライバシーが気になる用途や、電波の届かない場所でのアシスタントにも最適です。
アプリへの組み込み:非常に軽いため、個人の開発者が自分のアプリに「声」を実装する際、コストやリソースを気にせず導入できる有力な選択肢となります。
エッジデバイスでの動作を想定しているようですね。今回は、この「Kokoro」を私のノートPCで動かしてみようと思います。
2. 環境構築
動作環境は前回までと同様ノートPC(Windows + CPU環境)です。環境構築は、いつものようにMinicondaを使って、他の環境を汚さない「専用の個室」を作ることから始めます。
注意点
本手順は、私が実際に手元の環境で動作を確認した記録をベースにしています。ただし、ご自身のPC(ローカル環境)で動かす場合、いくつか事前にお伝えしておきたいことがあります。
動作の保証について:お使いのPCのOS詳細バージョンや、すでにインストールされている他ソフトとの干渉により、100%の動作保証は難しいです。ただ、動かなかったとしてもかなりの部分は参考になると思います。
バージョンの指定:エラーを回避するため、ライブラリのバージョンを可能な範囲で細かく指定しています。アップデートによって状況が変わる可能性がある点だけ、頭の片隅に置いておいていただけると嬉しいです。
コードの修正:元のソースコードのままではWindows環境でエラーが出る箇所があったため、一部ファイルの修正を行い手順と参考に、修正したファイルを含めています。
今回もPython 3.11を選択しました。基本的にはコマンドをコピー&ペーストしていけば進みますが、一箇所だけ「外部ソフトのインストール」という大切なステップがあります。
隔離環境(Conda)の作成
まずはターミナル(PowerShellなど)を開いて、作業用のディレクトリを作って移動しましょう。
# 好きな場所にディレクトリを作って移動します
cd (作業用フォルダ)
# 新しい環境を作成 (Python 3.11)
conda create -n kokoro python=3.11 -y
# 作成した環境に入ります
conda activate kokoroPyTorch (CPU版) のインストール
今回は「ノートPCのCPUで軽快に動かす」のが目的なので、重たいGPU版ではなくCPU版を導入します。
conda install pytorch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 cpuonly -c pytorch -y日本語処理と本体のインストール
Kokoro本体と、日本語を正しく読み上げるための「辞書」たちをまとめてインストールします。
# Kokoro 本体と音声処理ライブラリ
pip install kokoro==0.9.4 soundfile==0.13.1
# 日本語を扱うための大切なライブラリ群
pip install pyopenjtalk==0.4.1 fugashi==1.5.2 jaconv==0.5.0 cutlet==0.5.0 mecab-python3==1.0.12 unidic-lite==1.0.8
pip install gradio==6.14.0外部ソフト「eSpeak NG」の準備
ここが、今回の構築で唯一「手作業」が必要なポイントです。 ここさえ乗り切ればあとは簡単なので、一緒にやっていきましょう! Kokoro(ひいてはベースのStyleTTS2)は、文字を音(音素)に変換する過程で「eSpeak NG」という外部ソフトの力を借ります。
ダウンロード:GitHubのリリースサイトから、Windows用のインストーラー(espeak-ng-X64.msiなど)をダウンロードして実行します。
パス(Path)を通す:Windowsの「システム環境変数の編集」を開き、Pathの項目に C:\Program Files\eSpeak NG を追加します。
再起動:設定を反映させるため、一度PowerShellの画面を閉じて、再度立ち上げ直してください。(これを忘れると「ソフトが見つからないよ」と怒られてしまいます)
Web UI の起動
最後に、ブラウザで操作できるように公式のWeb UIを準備します。
# 公式のソースコードを手元にコピー
git clone https://huggingface.co/spaces/hexgrad/Kokoro-TTS
cd Kokoro-TTS
# ここでファイルを修正(または修正済みの app.py と差し替え)
# ※具体的な修正内容は下記参照公式の app.py は、そのまま動かそうとすると英語専用の設定になっていたり、Windowsだとエラーが出てしまったりします。そこで、私が実際に行った修正のポイントを詳しく解説しますね。
ファイルの修正
① パイプラインに「日本語」を教える
元のコードは、英語(アメリカ・イギリス)の道しか用意されていません。そこに日本語の道を追加してあげます。
・修正内容: KPipeline の設定に、日本語を表す 'j' を追加しました。
② 日本語ボイスを「初期選択」にする
起動した時に、最初から日本語で試せるようにWeb UIの設定を変更しました。
・修正内容
選択肢(CHOICES)に日本語の Alpha を追加。
入力欄(text)の初期値を 「こんにちは、動作確認です。」 に変更。
デフォルトの声を日本語(jf_alpha)に変更。
③ Windows特有の「文字化け」対策
Windows環境で一番の躓きポイントが、ファイルの読み込みエラーです。
・修正内容
テキストファイル(en.txt など)を読み込む部分に、
encoding='utf-8' という記述を付け加えました。
④ クラウド用コードの「お掃除」
Hugging Faceのサーバーで動かすための特殊な命令(GPUの割り当て管理など)を、自分のPC向けにシンプルに整えました。
・修正内容
import spaces をコメントアウトし、起動時のオプション
(app.launch())からサーバー専用の設定を外しました。
手動での修正が不安な方のために、修正箇所が数行なので、基本は手動修正を推奨しますが、実際に使用した修正済みファイルをこちらに添付します。ダウンロードして、元のファイルと差し替えてお使いください。
(セキュリティに不安がある方は、オリジナルファイルとのdiffを確認してから使って頂けたらと思います)
3. 動作結果
準備が整ったら、いよいよ実際に動かしてみましょう。
# いよいよ起動です!
python app.py画面に http://localhost:7860/ と表示されたら成功です。ブラウザでそのURL(http://localhost:7860/)を開くと、先ほど修正した通りの使い勝手の良い画面が立ち上がります。

操作はとてもシンプルです。左側の「Input Text」に文章を入力し、オレンジ色の 「Generate」 ボタンをクリックするだけ。
推論速度:CPU環境での手応え
私のノートPC(CPUのみ)で動かしてみたところ、約10秒の文章を生成するのにかかった時間は3秒ほどでした。
正直な感想を言うと、この数値は以前試した「Tsukasa Speech」とそれほど大きな差はありません。Kokoroは82Mと極めて軽量ですが、私のCPU環境においてはTsukasaも十分に健闘していたため、速度面での劇的な変化というよりは「同等にサクサク動く」という印象です。
音声の質感:使い分けのポイント
実際に生成された音声がこちらです。
第一印象は、「とても素直で、淡々としている」ということ。 StyleTTS2ベースらしい音の明瞭さは備わっていますが、前回のTsukasa Speechで見られたような豊かな抑揚や「溜め」と比べると、少し棒読み寄りの落ち着いた響きです。
前回のTsukasa Speech
「感情を込めて物語を語らせたい」という用途であれば、速度がそれほど変わらない分、表現力に勝るTsukasaの方が満足度は高いかもしれません。一方で、Kokoroのこの「飾り気のなさ」は、ニュースの読み上げや機器のアナウンスなど、情報を正確に伝えたいシーンには馴染みやすいと感じました。
4. まとめ
「Kokoro」は、Apache-2.0という自由度の高いライセンスで公開されており、これだけ軽ければオフライン環境や自作アプリへの組み込みなど、さまざまな活用方法が考えられます。
StyleTTS2をベースにしたこのモデルが、わずか1,000ドルほどのコストで開発されたという背景も含め、非常に興味深いプロジェクトです。
日本語化のためにソースコードを数行書き換えるといった「一手間」は必要ですが、それを含めても導入のハードルは低い部類に入ります。この記事が、皆さんの環境構築の少しでもお役に立てば幸いです。
最後までお読みいただき、ありがとうございました。
いいなと思ったら応援しよう!
よろしければ応援してくれると嬉しいです!いただいたチップは、記事づくりや学びの時間に大切に使わせていただきます。