Pocket TTS 100M

Pocket TTS 100M es el backend de texto a voz en inglés, local y de baja latencia de speech-core. El paquete ONNX público usa la voz Alba fija y transmite audio en cuanto está listo cada frame acústico.

Primer audio en streaming

La inferencia está realmente intercalada: cada latente autorregresivo se decodifica y emite antes de generar el siguiente. Cada callback no final entrega 1.920 muestras Float32 — 80 ms a 24 kHz — y evita el suelo fijo de los grafos TTS con búfer.

Paquete publicado

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

Descarga y verificación

El descargador de speech-core fija v1.0.0 y verifica cada archivo publicado mediante 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.
    });

Contrato de streaming

El callback recibe un frame de 80 ms cada vez; el callback final marca el fin del stream. last_metrics() informa del acondicionamiento, primer audio, latencia total, frames, muestras, EOS, cancelación y semilla efectiva. cancel() detiene una síntesis activa.

Benchmark en Galaxy S23 Ultra

La repetición limpia del paquete público v1.0.0 utilizó ONNX Runtime 1.27, dos hilos de CPU y un Galaxy S23 Ultra. Son medidas directas del motor, no de la UI ni del pipeline de voz completo.

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

Inteligibilidad de ida y vuelta

La prueba en dispositivo sintetizó 46 frases de comandos y respuestas, las pasó por el remuestreo de producción de 24 a 16 kHz y las transcribió con Parakeet-EOU desplegado.

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

El ASR de ida y vuelta mide inteligibilidad, no naturalidad ni preferencia del oyente; complementa las pruebas de escucha.

Estado de integración

Qué está disponible hoy

El backend ONNX C++17 está fusionado en speech-core y compila para Windows, Linux y Android. La ruta SDK/JNI actual de speech-android sigue eligiendo Kokoro por defecto; la selección Kotlin, la descarga y la API del SDK son trabajo posterior. Esta versión no incluye backend Apple/CoreML.

Límites y licencia

Fuentes