技術 約7分で読めます

MioTTS - コーデックから自作した軽量LLMベースTTS

2026年2月11日にAratakoが公開した日英対応の軽量TTSモデル群。「コーデックからスクラッチで開発した」と本人が言っている通り、音声コーデック、ボコーダー、TTSモデル、推論サーバーまで一式揃えた力作。

MioTTSの全体像

MioTTSはLLMアーキテクチャをそのまま使ったTTSモデル。テキストを入力すると音声トークンを自己回帰で生成し、それをコーデックでデコードして波形にする。LLMの推論フレームワークがそのまま使えるのが大きな特徴で、llama.cpp、Ollama、vLLMなどOpenAI互換APIを提供する既存のツールがそのまま動く。

構成要素は3つ:

  1. MioCodec — 音声をコンテンツトークンとグローバル埋め込みに分離するニューラル音声コーデック
  2. MioTTS本体 — LLMベースの自己回帰TTSモデル(0.1B〜2.6B)
  3. MioTTS-Inference — REST APIとGradio WebUIを備えた推論サーバー

MioCodec: 独自の音声コーデック

MioTTSの話をするにはまずMioCodecから。

MioCodecはkanade-tokenizerの実装をベースにしたニューラル音声コーデック。音声を以下の2つの要素に分離する:

  • コンテンツトークン: 言語情報と音素内容を表す離散トークン。25Hzの低フレームレートで、「何を言っているか」を表現する
  • グローバル埋め込み: 話者のアイデンティティ、録音環境、マイク特性といった音響特性を表す連続ベクトル。「どう話しているか」を表現する

この分離設計がMioTTSの効率性の鍵になっている。TTSのLLM部分はコンテンツトークンの生成だけに集中すればよく、話者情報はグローバル埋め込みとして別途与える。ゼロショット音声クローニングは、ソースのコンテンツトークンにターゲット話者のグローバル埋め込みを組み合わせるだけで実現できる。

スペック

項目MioCodec 24kHz版MioCodec 44.1kHz版
トークンレート25 Hz25 Hz
ビットレート341 bps341 bps
サンプルレート24 kHz44.1 kHz
ボコーダーiSTFTHead(内蔵)MioVocoder(外部)
パラメータ数132M118M(ボコーダー除く)
用途軽量・高速推論高品質音声処理

24kHz版はiSTFTHeadを統合しており、外部ボコーダーなしで波形を直接生成できる。44.1kHz版はMioVocoderと共同チューニングしたもので、スタジオ品質の音声処理向け。

学習

9言語、約88,000時間以上の音声データで学習。SSLエンコーダーにWavLM-base+を使用し、2段階(24kHz版)または3段階(44.1kHz版)の学習プロセスを経ている。

  1. Phase 1: マルチ解像度メルスペクトログラム損失 + SSL特徴再構成損失による特徴アライメント
  2. Phase 2: 敵対的学習(マルチピリオド弁別器、マルチスケールSTFT弁別器)による知覚品質の改善
  3. Phase 3(44.1kHz版のみ): ボコーダーとコーデックデコーダーのエンドツーエンド共同チューニング

元となったkanadeは2026年2月のarXiv論文で発表されたもので、単一レイヤーの分離型音声トークナイザ。MioCodecはこのkanadeのアーキテクチャを拡張し、iSTFTHeadによる統合波形デコーダーの搭載やボキャブラリーサイズの調整を行っている。

モデルファミリー

6サイズ展開で、それぞれ異なるベースLLMから初期化されている。

モデルパラメータベースモデルライセンスRTF
MioTTS-0.1B0.1BFalcon-H1-Tiny-Multilingual-100MFalcon-LLM License0.04 - 0.05
MioTTS-0.4B0.4BLiquidAI/LFM2-350MLFM Open License v1.00.035 - 0.045
MioTTS-0.6B0.6BQwen3-0.6B-BaseApache 2.00.055 - 0.065
MioTTS-1.2B1.2BLiquidAI/LFM2.5-1.2B-BaseLFM Open License v1.00.065 - 0.075
MioTTS-1.7B1.7BQwen3-1.7B-BaseApache 2.00.10 - 0.11
MioTTS-2.6B2.6BLiquidAI/LFM2-2.6BLFM Open License v1.00.135 - 0.145

RTFはNVIDIA RTX 5090 + vLLM 0.15.1で約15秒の音声を生成した際の実時間係数。0.1Bモデルでも RTF 0.04〜0.05、つまりリアルタイムの20〜25倍速で音声を生成できる。

ベースモデルが多彩なのが面白い。Falcon H1、LiquidAIのLFM2/LFM2.5、Qwen3と、異なるアーキテクチャのLLMを試している。特にLFM2はLiquid AIのハイブリッドアーキテクチャで、Transformerとは異なるSSM系の設計。0.4Bモデルが0.6Bより低いRTFを出しているのはこのアーキテクチャの違いが効いている可能性がある。

学習データは英語と日本語で約10万時間。データセットとしてEmilia-DatasetとHiFiTTS-2が使われている。

ライセンスの注意点

ベースモデルごとにライセンスが異なる。Apache 2.0のQwen3ベースモデル(0.6B、1.7B)が最も自由度が高い。Falcon-LLM LicenseとLFM Open Licenseはそれぞれ個別の利用条件があるので、商用利用する場合は確認が必要。

ベンチマーク: J-HARD-TTS-Eval

0.1BモデルのモデルカードにJ-HARD-TTS-Evalの評価結果が掲載されている。これはParakeet Inc.が公開した日本語ゼロショットTTS評価ベンチマークで、以下の4タスクで自己回帰TTSモデルの堅牢性を測定する。

  • Continuation: 部分的なテキストの続きを生成
  • Repetition: 繰り返しパターンの安定性
  • Rhyme: 韻律パターンの処理
  • Short: 短文での安定性

評価指標はCER(文字誤り率、低いほど良い)とSS(話者類似度、高いほど良い)。

0.1Bの結果から抜粋:

  • Rhymeタスク: Best CER 0.1419で最高性能
  • Repetitionタスク: Best CER 4.963で最高性能
  • Continuationタスク: Best CER 0.2884で最高性能

0.1Bという極小サイズでピーク性能はかなり高い。ただし平均スコアと最悪スコアのばらつきが大きく、安定性は大規模モデルに劣る。Shortタスクのように最小限の文脈しかない場合の改善は今後の課題とされている。

SS(話者類似度)は0.53〜0.57程度。モデルカードでも言及されているが、これは「LLMではなくコーデックが音声クローニングを担当する設計トレードオフ」によるもの。グローバル埋め込みでの話者表現はコンパクトだが、きめ細かい話者特徴の再現には限界がある。

GGUF対応: llama.cppとOllamaで動く

全6サイズのGGUF量子化版がMioTTS-GGUFで公開されている。

モデルBF16Q8_0Q6_KQ4_K_M
0.1B232 MB125 MB97.3 MB79.6 MB
0.4B736 MB392 MB304 MB239 MB
0.6B1.22 GB653 MB506 MB408 MB
1.2B2.39 GB1.27 GB983 MB751 MB
1.7B3.5 GB1.86 GB1.44 GB1.13 GB
2.6B5.19 GB2.76 GB2.13 GB1.58 GB

0.1BのQ4_K_Mで79.6MB。スマホでも動きそうなサイズ感。LLMの推論フレームワークがそのまま使えるので、llama.cppやOllamaで起動してOpenAI互換APIとして呼び出し、別途MioTTS-Inferenceサーバーがコーデックのデコードを担当する構成になる。

セットアップ

推論サーバーの構成

git clone https://github.com/Aratako/MioTTS-Inference.git
cd MioTTS-Inference
uv sync
MAX_JOBS=8 uv pip install --no-build-isolation -v flash-attn

3ステップで起動する:

1. LLM推論サーバーの起動(llama.cpp、Ollama、vLLMなど)

2. TTS APIサーバーの起動

python run_server.py --llm-base-url http://localhost:8000/v1

3. WebUI起動(オプション)

python run_gradio.py

http://localhost:7860 でアクセスできる。

プリセット音声

デフォルトで jp_femalejp_maleen_femaleen_male の4プリセットが用意されている。独自のプリセットも登録可能。

python scripts/generate_preset.py --audio /path/to/audio.wav --preset-id my_voice

推奨生成パラメータ

  • Temperature: 0.8
  • Top-p: 1.0
  • Repetition penalty: 1.0

T5Gemma-TTSとの関係

Aratakoは2025年にT5Gemma-TTSというTTSモデルも公開している。こちらはEncoder-Decoder LLMアーキテクチャで、T5とGemmaを組み合わせたもの。MioTTSはDecoder-onlyのLLMアーキテクチャに移行し、さらにコーデックも独自開発したという進化形にあたる。

MioTTSのサンプル音声生成にT5Gemma-TTSとGemini 2.5 Pro TTSが参照音声として使われていることから、T5Gemma-TTSの経験がMioTTSの開発に活かされているのだろう。

他のオープンソースTTSとの比較

直近で公開されたオープンソースTTSと並べてみる。

プロジェクトアーキテクチャ日本語パラメータ推論フレームワーク
MioTTSDecoder-only LLM + 独自コーデック対応0.1B〜2.6Bllama.cpp, Ollama, vLLM
Qwen3-TTS離散マルチコードブックLM対応0.6B〜1.7B専用
CosyVoice 3LLM + DiT Flow Matching対応-専用
KokoroStyleTTS2ベース対応82M専用

MioTTSの最大の差別化ポイントは「既存のLLM推論フレームワークがそのまま使える」こと。GGUFに変換してllama.cppで動かせるTTSモデルは珍しい。エッジデバイスやローカル環境での運用を考えると、この互換性は実用面で大きなアドバンテージになる。

コーデックからフルスクラッチで構築しているのも個人開発としては異色。普通はEncodecやDAC、SpeechTokenizerなど既存のコーデックを使うところを、kanadeベースで独自に88,000時間のデータで学習し、24kHz版と44.1kHz版の2種類を用意している。