Pocket TTS 100M

Pocket TTS 100M est le backend de synthèse anglaise local et à faible latence de speech-core. Le bundle ONNX public utilise la voix Alba fixe et diffuse le son dès que chaque trame acoustique est prête.

Premier son en streaming

L’inférence est réellement entrelacée : chaque latent autorégressif est décodé et émis avant la génération du suivant. Chaque callback non final fournit 1 920 échantillons Float32 — 80 ms à 24 kHz — et évite le plancher fixe des graphes TTS mis en tampon.

Bundle publié

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

Téléchargement et vérification

Le téléchargeur speech-core épingle v1.0.0 et vérifie chaque fichier publié avec SHA-256.

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

API C++

#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.
    });

Contrat de streaming

Le callback reçoit une trame de 80 ms à la fois ; le callback final marque la fin du flux. last_metrics() expose le conditionnement, le premier son, la latence totale, les trames, échantillons, EOS, annulation et seed effectif. cancel() arrête une synthèse active.

Benchmark Galaxy S23 Ultra

Un nouveau test propre du bundle public v1.0.0 a utilisé ONNX Runtime 1.27, deux threads CPU et un Galaxy S23 Ultra. Ce sont des mesures directes du moteur, sans UI ni pipeline vocal complet.

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

Intelligibilité aller-retour

Le test sur appareil a synthétisé 46 commandes et réponses, appliqué le rééchantillonnage de production 24→16 kHz, puis transcrit avec Parakeet-EOU déployé.

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

L’ASR aller-retour mesure l’intelligibilité, pas le naturel ni la préférence d’écoute ; il complète les tests d’écoute.

État de l’intégration

Disponible aujourd’hui

Le backend ONNX C++17 est fusionné dans speech-core et se compile pour Windows, Linux et Android. Le SDK/JNI speech-android actuel sélectionne encore Kokoro par défaut ; sélection Kotlin, téléchargement et exposition SDK restent à intégrer. Aucun backend Apple/CoreML n’est inclus.

Limites et licence

Sources