
Kokoro、Piper、Matcha、Kitten、VITSを含むAndroid/iOS向け18のオンデバイスTTSモデルの総合ベンチマーク
ソースコード:
- android-offline-tts-eval — sherpa-onnxとシステムTTSで7モデルを搭載したAndroid TTSベンチマークアプリ
- ios-offline-tts-eval — AVSpeechを含む11モデルを搭載したiOS TTSベンチマークアプリ
概要
Android(7モデル)およびiOS(11モデル)で18のオンデバイスTTSモデルを2つの推論エンジンにわたってベンチマークし、合成速度(tok/s)、リアルタイムファクター(RTF)、メモリ使用量を測定しました。すべてのベンチマークは英語テキストプロンプトのみを使用しています。結果として、Android System TTSとPiper VITSが最速の合成(Androidで33〜42 tok/s)を達成し、一方Kokoroは両プラットフォームでリアルタイム未満の速度でした。iOSではApple内蔵のAVSpeechSynthesizerがメモリオーバーヘッドの少なさから総合スコアで最高ですが、オープンソースモデルの中ではMatcha + Vocosが速度とリソース効率のベストバランスを提供します。正式なリスニングテスト(MOS/ABX)は実施しておらず、本ベンチマークは速度とリソース使用量を測定するものであり、知覚的な音声品質は対象外です。
動機
TTSをモバイルやエッジアプリケーションに統合する開発者は、3つのトレードオフに直面します。合成の遅延(リアルタイムのインタラクションに追いつけるか?)、メモリフットプリント(ASRや他のAIモデルとメモリ制約のあるデバイスで共存できるか?)、音声品質(ユースケースに対して許容可能な出力か?)。TTSモデルの速度は440msのシステムTTSから15秒のKokoroまで35倍の差があり、メモリは21MBから833MBの範囲です。
既存のTTS比較は通常、サーバーハードウェアでの品質(MOSスコア)を評価しますが、オンデバイスデプロイでは品質だけでなく速度とメモリが制約条件となります。音質は優れていても1文の合成に15秒かかるモデルは、インタラクティブなアプリケーションでは使えません。本ベンチマークは、開発者がUXのトレードオフ判断を行うために必要な速度とメモリのデータを提供します。
方法
両プラットフォームで長さと複雑さの異なる12の英語テキストプロンプトの標準セットを使用しています。本ベンチマークのすべての結果は英語の合成性能のみを反映しており、多言語モデルを他言語で評価していません。各モデルはウォームモード(1回のウォームアップ)で評価し、定常状態の性能を測定しています。
測定指標:
- tok/s:1秒あたりに合成される出力トークン(単語)数(高いほど高速)
- RTF:リアルタイムファクター — 合成時間と音声長の比率(1.0未満=リアルタイムより高速)
- 総合スコア:複合指標(iOSのみ、0〜100スケール)= スピードスコア(tok/s正規化+RTFペナルティ)とメモリスコア(メモリ使用量の逆数)の加重組み合わせ。RTF > 1.5のモデルはスピードスコアが0になります。計算式の詳細はios-offline-tts-evalソースコードを参照。このスコアには音声品質は含まれていません。正式なリスニングテスト(MOS/ABX)は未実施です。
テストデバイス:
| デバイス | チップ | RAM | OS |
|---|---|---|---|
| Samsung Galaxy S10 | Exynos 9820 | 8 GB | Android 12 (API 31) |
| iPad Pro 第3世代 | A12X Bionic | 4 GB | iPadOS 17+ |
Android の結果
デバイス: Samsung Galaxy S10、Android 12、API 31、4スレッド
| モデル | エンジン | 中央値合成時間 (ms) | 中央値 tok/s | 中央値 RTF | 状態 |
|---|---|---|---|---|---|
| Android System TTS | android_system_tts | 440 | 42.48 | 0.058 | PASS |
| Piper (ryan-low) | sherpa-onnx | 478 | 39.14 | 0.077 | PASS |
| Piper (amy-low) | sherpa-onnx | 524 | 33.39 | 0.076 | PASS |
| Matcha-Icefall (LJSpeech + HiFiGAN) | sherpa-onnx | 1,104 | 16.37 | 0.135 | PASS |
| Kitten Nano (en v0.2 fp16) | sherpa-onnx | 3,526 | 5.18 | 0.387 | PASS |
| Kokoro (en v0.19) | sherpa-onnx | 8,226 | 2.37 | 1.133 | PASS |
| Kokoro Int8 (multi-lang v1.1) | sherpa-onnx | 15,343 | 1.25 | 2.423 | PASS |
7モデルすべてPASS — 8GBデバイスでクラッシュやOOMは発生していません。
Android 速度に関する所見
Android System TTSとPiper VITSモデルが最速(33〜42 tok/s)です。Kokoroモデルはリアルタイム未満の速度(RTF > 1.0)ですが、高い音声品質を目指して設計されています。Matcha-Icefallは16 tok/sで中間的な位置づけです。注:本ベンチマークは速度とリソース使用量のみを測定しており、正式なリスニングテスト(MOS)は行っていないため、品質比較はモデルの公表特性に基づいています。
iOS の結果
デバイス: iPad Pro 第3世代、A12X Bionic、4 GB RAM
| モデル | エンジン | 総合スコア | スピードスコア | 中央値 tok/s | 中央値 RTF | メモリ (MB) |
|---|---|---|---|---|---|---|
| AVSpeech (System) | native | 100.00 | — | 151.34 | — | 21 |
| Matcha (LJSpeech) + Vocos | sherpa-onnx | 87.77 | 94.39 | 25.68 | 0.084 | 211 |
| Kitten Nano EN (v0.2 fp16) | sherpa-onnx | 59.72 | 75.45 | 5.14 | 0.368 | 193 |
| Kitten Nano (en v0.1 fp16) | sherpa-onnx | 58.90 | 72.86 | 5.61 | 0.407 | 108 |
| Kokoro EN (v0.19) | sherpa-onnx | 43.59 | 58.60 | 4.01 | 0.621 | 833 |
| Kitten Mini EN (v0.1 fp16) | sherpa-onnx | 24.57 | 24.30 | 1.63 | 1.135 | 427 |
| VITS LJS (Int8) | sherpa-onnx | 21.41 | 0.00 | 1.20 | 2.023 | 140 |
| VITS VCTK (Int8) | sherpa-onnx | 20.98 | 0.00 | 1.43 | 2.062 | 122 |
| VITS Melo (ZH+EN, Int8) | sherpa-onnx | 20.07 | 0.00 | 0.83 | 2.874 | 211 |
| Kokoro Int8 (Multi-lang v1.0) | sherpa-onnx | 17.06 | 0.00 | 1.40 | 1.822 | 515 |
| Kokoro Multi-lang INT8 (v1.1) | sherpa-onnx | 16.91 | 0.00 | 1.71 | 1.569 | 588 |
iOS に関する所見
- AVSpeechはメモリ使用量の少なさ(21MB、オープンソースモデルは100〜800MB)と高速合成により総合スコアが最高ですが、音声品質はApple内蔵ボイスに限定されます。
- Matcha + VocosはiOSでのベストなオープンソース選択肢 — 高速(RTF 0.08)、高い総合スコア(87.8)、メモリは211MBで適度です。
- Kitten Nanoモデルはバランスが良好 — RTFは0.5未満でメモリも妥当(108〜193 MB)です。
- **Kokoro EN (v0.19)**は総合スコア43.6、RTF 0.62でリアルタイムより高速ですが、メモリ消費が833MBと本ベンチマーク最大のフットプリントです。
- VITSとKokoro Int8の各バリアントはiPadではすべてリアルタイム未満(RTF > 1.0)であり、インタラクティブな用途には不向きです。
制限事項
- 音声品質評価なし:知覚的品質指標(MOS、ABX、リスニングテスト)は含まれていません。品質比較はモデルの公表特性にのみ基づいています。
- 英語のみ:すべてのプロンプトが英語です。多言語モデル(Kokoro multi-lang、VITS Melo ZH+EN)を対応する他言語では評価していません。
- プラットフォームごとに1台:結果はAndroid 1台、iOS 1台のデバイスによるものです。他のチップセットでは性能が異なる場合があります。
- 総合スコアに品質は含まれない:iOSの複合スコアは速度とメモリ効率のみを反映しています。高スコアのモデルが必ずしも最も音質の良いモデルとは限りません。
今後の研究
- 知覚品質調査:人間の評価者によるMOS/ABXリスニングテストを実施し、速度/メモリ指標を超えた品質評価を検証。
- 多言語プロンプトセット:英語プロンプトのみではなく、多言語モデルの他言語での合成品質と速度を評価。
- 韻律とスタイル制御:対話やアシスタントのユースケースにおける制御性(感情、話速、句読点感度)のベンチマーク。
- ストリーミングTTS遅延:インタラクティブアシスタント向けの最初の音声までの時間とチャンクレベルの遅延を測定。
- 圧縮とモバイルスケーリング:厳しいモバイルRAM制限下でのINT8/INT4および音声クローンバリアントの比較。
結論
オンデバイスTTSはAndroidとiOSの両方で実用可能ですが、モデルの選択はユースケースに大きく依存します。リアルタイムのインタラクティブアプリケーションでは、Android System TTS / Piper(Android)またはMatcha + Vocos(iOS)がRTF 1.0を大きく下回る高速合成を提供します。遅延が許容される事前生成音声や非インタラクティブな用途では、Kokoroが合成時間とメモリの増加と引き換えにより豊かな音声出力を提供します。システムTTSエンジンは依然として競争力があり、Androidの内蔵TTSが最速オプション(42 tok/s)、AppleのAVSpeechSynthesizerが最小リソースフットプリント(21 MB)によりiOSで最高スコアを獲得しています。
iOSでは、メモリ消費量が108 MB(Kitten Nano)から833 MB(Kokoro EN)まで大きく異なり、メモリ制約のあるエッジデバイスで他のAIワークロードと共存できるかに直接影響します。
参考文献
リポジトリ:
- android-offline-tts-eval — Android TTSベンチマークアプリ(Apache 2.0)
- ios-offline-tts-eval — iOS TTSベンチマークアプリ(Apache 2.0)
モデル:
- Kokoro — StyleTTS2ベース、高品質多言語TTS
- Piper — 多くの音声に対応した高速VITSベースTTS
- Matcha-TTS — Vocosボコーダー搭載のフローマッチングTTS
- Kitten Nano/Mini — 軽量ニューラルTTS
- MMS-TTS — Metaの超多言語音声TTS(1,100以上の言語)
推論エンジン:
- sherpa-onnx — Next-gen Kaldi ONNX Runtime(TTSモデル対応)


