Pocket TTS 100M

Pocket TTS 100M 是 speech-core 中低延迟、完全设备端运行的英文文本转语音后端。公开 ONNX 包采用固定 Alba 音色,并在每个声学帧就绪后立即流式输出音频。

流式首音频

推理采用真正的交错方式:每生成一个自回归潜变量就立即解码并输出,然后才生成下一帧。每次非最终回调包含 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 帧,最终回调标记流结束。last_metrics() 报告条件处理、首音频和总延迟、帧数与样本数、EOS、取消状态和实际随机种子;cancel() 可停止正在进行的合成。

Galaxy S23 Ultra 基准

公开 v1.0.0 模型包的全新复测使用 ONNX Runtime 1.27、两个 CPU 线程和 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 后端。

限制与许可证

来源