Pocket TTS 100M
Pocket TTS 100M là backend chuyển văn bản tiếng Anh thành giọng nói có độ trễ thấp, chạy trên thiết bị trong speech-core. Gói ONNX công khai dùng giọng Alba cố định và phát trực tiếp ngay khi từng frame âm học sẵn sàng.
Suy luận thực sự đan xen: mỗi latent tự hồi quy được giải mã và phát trước khi tạo latent tiếp theo. Mỗi callback chưa kết thúc trả 1.920 mẫu Float32 — 80 ms ở 24 kHz — tránh mức trễ cố định của đồ thị TTS có đệm.
Gói đã phát hành
| Item | Details |
|---|---|
| Model | soniqo/Pocket-TTS-100M-ONNX-INT8 |
| Release | v1.0.0 · ad5d3fae3fb2f10024583708597afca8337c094c |
| Bundle size | 120.3 MiB |
| Runtime | ONNX Runtime · C++17 · dynamic INT8 + FP32 |
| Output | 24 kHz mono Float32 PCM · 1,920 samples / 80 ms per frame |
| Language / voice | English · fixed Alba voice |
Tải xuống và xác minh
Trình tải của speech-core ghim v1.0.0 và xác minh mọi tệp phát hành bằng 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.
});
Giao ước streaming
Callback nhận từng frame 80 ms; callback cuối đánh dấu hết luồng. last_metrics() báo thời gian conditioning, âm thanh đầu tiên và tổng, số frame/mẫu, EOS, hủy và seed thực tế. cancel() dừng lần tổng hợp đang chạy.
Benchmark Galaxy S23 Ultra
Lần chạy lại sạch của gói công khai v1.0.0 dùng ONNX Runtime 1.27, hai luồng CPU và Galaxy S23 Ultra. Đây là số đo trực tiếp của engine, không gồm UI hay toàn bộ pipeline giọng nói.
| Metric | Result |
|---|---|
| TTFA p50 / p95 | 127.7 / 133.7 ms |
| Total latency p50 / p95 | 467.5 / 485.3 ms |
| Median RTF | 0.4495 |
| Peak RSS | 373.7 MiB |
Độ rõ qua vòng lặp
Bài kiểm tra trên thiết bị tổng hợp 46 câu lệnh và phản hồi, đưa qua bộ đổi mẫu production 24→16 kHz rồi chép lời bằng Parakeet-EOU đã triển khai.
| Metric | Result |
|---|---|
| Corpus | 46 phrases |
| Exact transcripts | 31 / 46 |
| WER / CER | 8.00% / 3.47% |
| Empty audio / transcript / EOS failures | 0 / 0 / 0 |
ASR vòng lặp đo độ dễ hiểu, không đo độ tự nhiên hay sở thích người nghe; nó bổ sung cho bài kiểm tra nghe.
Trạng thái tích hợp
Backend ONNX C++17 đã được merge vào speech-core và build cho Windows, Linux, Android. SDK/JNI speech-android hiện vẫn chọn Kokoro mặc định; chọn model trong Kotlin, tải xuống và API SDK là công việc tiếp theo. Bản này chưa có backend Apple/CoreML.
Giới hạn và giấy phép
- Chỉ tiếng Anh; checkpoint công khai tích hợp giọng Alba cố định và không hỗ trợ clone giọng tùy ý.
- Model và giọng nói dùng CC BY 4.0. Phải giữ ghi công Alba MacKenna trong manifest.
- Các đồ thị hồi quy hướng đến CPU. Tăng tốc phần cứng là tùy chọn vì provider Android thay đổi theo thiết bị và bản build ONNX Runtime.
- Mã nguồn speech-core dùng Apache 2.0; gói model giữ điều khoản CC BY 4.0 riêng.