Pocket TTS 100M

Pocket TTS 100M は speech-core の低遅延オンデバイス英語音声合成バックエンドです。公開ONNXバンドルは固定Alba音声を使い、各音響フレームの準備ができ次第ストリーミング出力します。

最初の音声をストリーミング

推論は真にインターリーブされ、1つの自己回帰潜在表現をデコードして出力してから次を生成します。非最終コールバックは毎回1,920個のFloat32サンプル(24 kHzで80 ms)を返し、バッファ型TTSエクスポートの固定グラフ待ちを避けます。

公開バンドル

ItemDetails
Modelsoniqo/Pocket-TTS-100M-ONNX-INT8
Releasev1.0.0 · ad5d3fae3fb2f10024583708597afca8337c094c
Bundle size120.3 MiB
RuntimeONNX Runtime · C++17 · dynamic INT8 + FP32
Output24 kHz mono Float32 PCM · 1,920 samples / 80 ms per frame
Language / voiceEnglish · fixed Alba voice

ダウンロードと検証

speech-coreのダウンローダーはv1.0.0に固定され、公開ファイルをすべてSHA-256で検証します。

bash scripts/download_pocket_tts_onnx.sh /models/pocket-tts-onnx

C++ API

#include <speech_core/models/onnx_pocket_tts.h>

speech_core::PocketTtsConfig config;
config.intra_threads = 2;
config.flow_steps = 4;

speech_core::OnnxPocketTts tts("/models/pocket-tts-onnx", config);
tts.synthesize("Hello world.", "en",
    [](const float* samples, size_t length, bool is_final) {
        // Each non-final callback is 1,920 Float32 samples:
        // 80 ms at 24 kHz.
    });

ストリーミング契約

コールバックは80 msフレームを1つずつ受け取り、最終コールバックがストリーム終端を示します。last_metrics()は条件処理、初回音声、総遅延、フレーム数、サンプル数、EOS、キャンセル、実際のシードを報告し、cancel()は実行中の合成を停止します。

Galaxy S23 Ultra ベンチマーク

公開v1.0.0バンドルのクリーンな再測定は、ONNX Runtime 1.27、CPU 2スレッド、Galaxy S23 Ultraで実施しました。UIや音声パイプライン全体を含まないエンジン直接値です。

MetricResult
TTFA p50 / p95127.7 / 133.7 ms
Total latency p50 / p95467.5 / 485.3 ms
Median RTF0.4495
Peak RSS373.7 MiB

往復インテリジビリティ

端末上で46件のコマンド/応答文を合成し、本番の24→16 kHzリサンプラーを通して、配備済みParakeet-EOUで文字起こししました。

MetricResult
Corpus46 phrases
Exact transcripts31 / 46
WER / CER8.00% / 3.47%
Empty audio / transcript / EOS failures0 / 0 / 0

往復ASRが測るのは明瞭度であり、自然さや聴取者の好みではありません。聴感テストを補完する指標です。

統合状況

現在利用できる範囲

C++17 ONNXバックエンドはspeech-coreにマージ済みで、Windows、Linux、Android向けにビルドできます。現在のspeech-android SDK/JNIは引き続きKokoroを既定で選択します。Kotlinでのモデル選択、ダウンロード、SDK公開は今後の作業です。Apple/CoreMLバックエンドは含まれません。

制限とライセンス

情報源