軽量・高音質なオープンTTS「Kokoro-82M」をローカルで動かす
出典: ThisIsEngineering / Pexels
テキスト読み上げ(TTS: Text-to-Speech)の分野は、ここ数年で劇的な進化を遂げた。しかし、商用の高音質な音声合成API(ElevenLabsなど)はコストが高く、オープンソースのローカル向けモデル(VITSなど)はクオリティ面で一歩劣るか、セットアップが極めて難解なのが常だった。
そのパワーバランスを塗り替える存在として注目を集めているのが「Kokoro-82M」だ。わずか8200万パラメータ(ファイルサイズは約320MB、量子化すれば約80MB)という極小サイズながら、商用APIに匹敵する極めて自然で肉声に近い日本語・英語の音声生成を可能にする。実際にローカル環境で動かす手順とその魅力に迫る。
なぜ「Kokoro-82M」はこれほど画期的なのか?
従来のローカル向け音声合成エンジンは、ロボット的な不自然さや抑揚のなさが残ることが多かった。一方で、最近のAIモデル(ChatTTSなど)は自然である代わりにサイズが巨大で、実行に強力なGPUを要求する。
hexgradが開発したKokoro-82Mは、以下のような驚異的なアドバンテージを持っている。
- 信じられないほどの軽さ: パラメータ数が82Mと小さいため、特別なGPUを持たないノートPCのCPU環境でもリアルタイム以上の速度で音声が生成できる。
- Apache 2.0 ライセンス: 完全なオープンウェイトで、個人利用だけでなく商用利用も無償で可能。
- 「スタイル」による瞬時の声切り替え: モデル全体の重みを変えることなく、わずか500KB程度のスタイルファイルを読み替えるだけで、何十人ものキャラクターやトーン(男性・女性、落ち着いた声・活発な声)の声に変更できる。
- 高音質な日本語対応: 多言語モデルでありながら、日本語のアクセントや漢字の読み分け精度が非常に高い。
ローカルでのセットアップと実行手順
Python環境が用意されていれば、Kokoro-82Mの導入は拍子抜けするほど簡単だ。ここでは、基本的な導入手順を紹介する。
1. 依存ライブラリのインストール
テキストから発音記号(フォネーム)への変換エンジンである espeak-ng と、音声ファイルを扱うためのライブラリをインストールする。
- Ubuntu / Debianの場合:
sudo apt-get install espeak-ng libsndfile1 - macOSの場合:
brew install espeak - Windowsの場合: espeak-ngのGitHubからインストーラーをダウンロードしてインストールし、環境変数にパスを通す。
2. Pythonライブラリのインストール
pipを使って kokoro パッケージをインストールする。これだけで必要な推論エンジン(ONNX Runtimeなど)も自動で揃う。
pip install kokoro soundfile
3. 簡単な音声生成コードの実行
以下は、日本語テキストから音声を生成して保存するシンプルなスクリプトである。
import soundfile as sf
from kokoro import KPipeline
# 日本語用パイプラインの初期化(jpを指定)
pipeline = KPipeline(lang_code='j')
text = "こんにちは。これはローカル環境で動作する、ココロ音声合成システムです。"
# 音声の生成(jp_001 は日本語の代表的な女性ボイス)
generator = pipeline(text, voice='jf_alpha', speed=1.0)
for i, (gs, ps, audio) in enumerate(generator):
# 生成された音声データを wav 形式で保存
sf.write(f"output.wav", audio, 24000)
print("音声ファイルの保存が完了しました。")
実行すると、モデルファイルが自動的にHugging Faceからダウンロードされ、瞬時に極めて自然な output.wav が生成される。ロボットっぽさはほとんどなく、息継ぎや発音のなめらかさに驚かされるはずだ。
実際に動かしてみてわかった活用法
Kokoro-82Mの最大の強みは「ONNX Runtime」で動く点にある。これにより、Pythonに縛られず、C++、C#、Rust、Node.jsといった多様な言語から呼び出すことができる。
例えば、Unityゲームの中でNPCのセリフをリアルタイムに生成して喋らせたり、スマートホームのラズパイ音声アシスタントに組み込んだり、電子書籍の読み上げアプリを完全ローカル・オフラインで構築することが可能になる。
わずか320MBのデータが、これからのパーソナル開発における「音声UI」のハードルを劇的に下げたことは間違いない。ローカルAIの楽しさを手軽に体験できる最適なモデルとして、ぜひ試してみてほしい。
お役立ち情報
- 🤗 Hugging Face - hexgrad/Kokoro-82M
- Kokoro-82Mの公式モデルレポジトリ。ブラウザ上で直接動作を試せるデモページ(Spaces)も用意されている(英語)。
- 💻 GitHub - hexgrad/kokoro
- Kokoroの公式Pythonパッケージおよび推論エンジンのソースコードリポジトリ(英語)。
- 📝 Zenn - Kokoro-82Mで始めるローカル音声合成
- 日本語によるKokoro-82Mのインストール手順やONNXモデル化、Unity等との連携に関する解説記事の検索一覧。