- Pocket TTS は1億パラメータで構成された軽量なテキスト読み上げモデルで、音声クローン機能を備え、一般的なノートPCのCPUでもリアルタイム実行が可能
- 既存の大型**LLMベースTTS(10億以上のパラメータ)と小型のKokoro TTS(8,200万パラメータ)**の間の性能差を埋め、高品質と効率性を同時に実現
- 約5秒分の音声サンプルだけで、話者の声質、感情、イントネーション、音響条件などを正確に再現
- Continuous Audio Language Model ベースの構造を採用し、離散トークンの代わりに連続潜在ベクトルを直接予測することで、品質低下なしにモデルサイズを縮小
- MITライセンスのオープンソースとして公開され、CPU環境でも高品質な音声合成を実現する軽量TTS技術の新たな基準を提示
Pocket TTS の概要
- Pocket TTS は1億パラメータのテキスト音声変換モデルで、**音声クローン(voice cloning)**機能をサポート
- ノートPCのCPUでもリアルタイムで実行可能
- コマンド
uvx pocket-tts serve または uvx pocket-tts generate でローカル実行可能
- Kyutai が開発し、MITライセンスでオープンソース公開
- 学習データには公開英語音声データセットのみを使用
- 追加の非公開データへの拡張可能性にも言及
既存TTSモデルとの比較
- 現在のTTS技術は2つに分かれる
- 大型LLMベースモデル: 例) Kyutai TTS 1.6B(約16億パラメータ)
- 多様な音声、感情、音響条件をモデリングできるがGPUが必要
- 小型特化モデル: 例) Kokoro TTS(8,200万パラメータ)
- 固定された音声セットと手作業のパイプラインを使って効率的だが、柔軟性に制限がある
- Pocket TTS はこの2つのアプローチの中間地点に位置し、CPUでも高品質な音声合成が可能
性能評価
- Librispeech test-clean セットで評価を実施
- 音声入力はAdobe Enhance Speechで整えて24kHz品質を確保
- 比較対象: F5-TTS, DSM, Chatterbox Turbo, Kokoro TTS
- 評価指標:
- Word Error Rate (WER)
- 音声品質(ELO)
- 話者類似度(ELO)
- 結果の要約:
- Pocket TTS はWER 1.84で最も低い誤り率
- 音声品質は F5-TTS および DSM より優秀
- 話者類似度は基準音声と同等レベル
- CPUでリアルタイムより速く実行可能な唯一のモデル
| モデル |
パラメータ数 |
WER ↓ |
音声品質(ELO) ↑ |
話者類似度(ELO) ↑ |
CPUリアルタイム実行 |
| F5-TTS |
336M |
2.21 |
1949 ± 27 |
1946 ± 26 |
✗ |
| Kyutai TTS 1.6B |
750M |
1.84 |
1959 ± 25 |
2037 ± 21 |
✗ |
| Chatterbox Turbo |
350M |
3.24 |
2055 ± 23 |
2012 ± 22 |
✗ |
| Kokoro |
82M |
1.93 |
音声クローンなし |
音声クローンなし |
✓ |
| Pocket TTS |
100M |
1.84 |
2016 ± 25 |
1898 ± 26 |
✓ |
- Intel Core Ultra 7 165H および Apple M3 CPU でのテストでは、Pocket TTS と Kokoro だけがリアルタイム合成可能
アーキテクチャ
- Pocket TTS はContinuous Audio Language Model研究をベースに設計
- 従来方式は離散音声トークンを予測していたが、Pocket TTS は**連続潜在ベクトル(latent)**を直接予測
- これによりRQ-transformer のボトルネックを解消し、モデルの軽量化を達成
Neural Audio Codec
- Mimi コーデックをベースに設計
- Mimi は離散トークンに圧縮するが、Pocket TTS は連続潜在表現を使用
- 正規分布で正規化されたVAE学習を適用
- WavLM を コサイン類似度損失で内部表現へ蒸留(distillation)
- RVQ段階を除去し、全潜在表現に蒸留損失を適用
Generative Model
- Masked Autoregressive(MAR) フレームワークベース
- Causal Transformer バックボーンとMLPサンプラーで構成
- Lagrangian Self-Distillation(LSD) 損失を使って1-step サンプリングを実現
- 推論時には、予測された潜在ベクトルを自己回帰的にフィードバック
音声とテキストの条件付け
- モデル入力は音声プロンプト(数秒)とテキストを結合
- 音声はコーデックエンコーダで、テキストはSentencePieceトークナイザーで埋め込み
モデルサイズ構成
- 生成モデル(Transformer + MLP): 9,000万パラメータ
- コーデックデコーダ: 1,000万パラメータ
- コーデックエンコーダ: 1,800万パラメータ(音声サンプルのエンコード時に1回だけ使用)
学習データ
- すべて公開英語音声データセットで構成され、合計88,000時間
- AMI, EARNINGS22, GIGASpeech, SPGISpeech, TED-LIUM, VoxPopuli, LibriHeavy, Emilia
主な技術的貢献
Head Batch Multiplier
- Transformer の計算ボトルネックを緩和するため、zベクトルを複数回再利用
- 各入力シーケンスごとに z を1回計算し、8回の損失計算に再利用
- 効率向上と学習安定化に効果
Gaussian Temperature Sampling
- 連続空間でもサンプリング温度制御を適用
- ガウスノイズ分散の縮小で品質向上
- 温度 0.7で良好な結果を確認
Latent Classifier-Free Guidance (Latent CFG)
- 従来の CFG を**潜在変数(z)**レベルで適用
- 条件付き/非条件付き出力を線形結合して品質を向上
- α=1.5 を使用
- SoundReactor 研究でも類似の概念が登場
Distillation
- CFGモデルを教師モデルとして使用し、軽量な学生モデルへ蒸留
- 教師モデルの MLP ヘッドを固定し、学生モデルが L2損失で z を学習
- 24層の教師モデル → 6層の学生モデルへ縮小可能
結論
- Pocket TTS はCPUでもリアルタイムで高品質な音声合成が可能な軽量TTSモデル
- 連続潜在空間ベースの構造、効率的な学習手法、音声クローン機能を組み合わせている
- オープンソースのMITライセンスで公開され、開発者と研究者に再現性と拡張性を提供
4件のコメント
韓国語対応のオープンなTTSモデルは、あまり見当たらないですね。
以前公開された Kokoro-82M が韓国語対応だとは聞いていましたが、品質はあまり良くないらしいという話も聞きましたし、
少し調べたところでは、GPT-Sovits で作って使ったり、Edge-TTS のようなものを使えば、それなりにいい感じに出るとも言われています。
最近はバイブコーディングをしながら Whisper と組み合わせると何か面白いものができそうな気はするんですが、アイデアがないですね(笑)
最近、Supertonicから韓国語まで対応するモデルが出たので、一度探してみてください。
ワンクリック用ライブラリも作ってみました!
https://www.npmjs.com/package/easy-supertonic-tts
すばらしいですね。ですが、作る際に対象リソースのアドレスも一緒にあるといいと思います。やみくもにインストールするわけにもいかないので(笑)
Hacker Newsのコメント
自分の投稿にこんなに多くの関心が集まって本当にうれしい
私はパリで Kyutaiの研究をベースにしたエンタープライズ級音声ソリューション を開発しているチームの一員
この分野で何かを作っている人がいれば、今後のモデルや機能について共有したい
プロフィールにあるメールアドレスに連絡をもらえるとうれしい
長いケーススタディを読んでいるうちにブラウザー拡張が必要だと気づき、自分でブラウザーインターフェースを作ってみた
成果物は Pocket Reader
面白かったのでさっそく MCPサーバー にして、Claudeが作業完了を知らせるよう設定した
speak_when_done
私も似たツールを作って
sayコマンドをバックグラウンドプロセスとして回したが、良い音声を一貫して設定するのが難しかったあの自然な音声はどこかに隠れているようだ
speak-mcp
今度はあなたのサーバーも試してみる予定
今回はコード品質が本当に良い
たいてい新しいモデルのコードベースは不要な 依存関係のダンプ だらけだが、今回はソフトウェアエンジニアリング的にも素晴らしい
共有ありがとう! 私は Kokoroのファン なので、ローカル音声アシスタントを自作した
ovaプロジェクト
Pocket TTSもぜひ使ってみるつもり
ただPocket TTSはクローズドなので、音声クローニング機能は確認できない
mlxベース なのか、それとも Hugging Face transformers ベースなのか気になる
このプロジェクトを 小さな静的バイナリ として配布できるのか気になる
現状では依存関係がかなり大きい
本当に気に入った
ただMITライセンスと書かれている一方で、READMEに別途 禁止された用途(Prohibited Use) セクションがあって、非自由ソフトウェアになるのではと混乱する
画像や音声のように、MLモデルはソフトウェアと見なされないかもしれない
Hugging Faceのモデルカードにも同じ禁止条項がある
したがってREADMEの禁止項目は 法的に矛盾 する可能性がある
M1 Macで
uvx pocket-tts serveを実行してみたテストとして 『二都物語』の最初の段落 を読ませたところ、Javertの音声が文をところどころ 飛ばす問題 があった
たとえば "it was the age of foolishness" のような句が省略される
信頼性に疑問を感じる点だ
関連issueは ここ に投稿した
これまで音声モデルはあまり使ってこなかったが、Pocket TTS経由で unmute.sh を知った
オープンソースで、同じ会社が作っているようだ
これらのモデルは ホームラボ環境でも低コストで十分活用できる ように見える
オープンソースモデルの水準が全体的に上がっていて、ほとんどあらゆる用途に合うものがある
本当に参入障壁が残っている分野は コーディングモデル だけのようだ
Deepseek 4がClaude Sonnetに勝てるかもしれないのも興味深い
自分の Codexプラグイン に統合して、各ターンの終わりに要約を読み上げるようにしたが、驚くほどよく動く
自分のMacBookでは Samanthaよりずっと滑らかに 動作する
agentify-sh/speak