Pocket TTS 100M
Apple के लिए मूल रनटाइम · PocketTTS
PocketTTS, speech-swift में मूल CoreML वाक् संश्लेषण जोड़ता है। सभी चरण डिफ़ॉल्ट रूप से केवल CPU पर चलते हैं। अंग्रेज़ी Alba आवाज़ 24 kHz पर 1,920 नमूनों के फ़्रेम भेजती है, यानी हर फ़्रेम 80 मिलीसेकंड का है।
वितरण पूरा होने तक प्रतीक्षा करने से बैकप्रेशर लागू होता है। हर अनुरोध की अपनी अवस्था और सीड होती है। रद्द करने, कॉलबैक विफल होने या सीमा तक पहुँचने पर त्रुटि मिलती है; सफलता पर एक खाली अंतिम चंक भेजा जाता है। इस बंडल में आवाज़ की क्लोनिंग या अन्य भाषाएँ उपलब्ध नहीं हैं।
पहले उपयोग पर प्रकाशित बंडल aufklarer/Pocket-TTS-100M-CoreML-INT8 डाउनलोड करें या स्थानीय निर्यात लोड करें। CC BY 4.0 के तहत Kyutai, FluidInference और Alba MacKenna का श्रेय बनाए रखें।
Swift और CLI का उपयोग
speech speak "Hello world." --engine pocket --stream \
--pocket-bundle-dir /path/to/bundle --pocket-seed 42 -o hello.wavimport PocketTTS
let model = try PocketTTSModel.fromBundle(URL(fileURLWithPath: "/path/to/bundle"))
try await model.generateStreaming(text: "Hello world.") { chunk in
await consume(chunk.samples)
}HTTP और WebSocket
pocket-tts और alba आवाज़ का उपयोग करें। HTTP स्ट्रीमिंग के लिए PCM आवश्यक है; WebSocket ऑडियो अंश भेजता है। मौजूदा डिफ़ॉल्ट मॉडल यथावत हैं।
curl http://localhost:8080/v1/audio/speech \
-H 'Content-Type: application/json' \
-d '{"model":"pocket-tts","voice":"alba","input":"Hello world.","response_format":"pcm","stream":true}' \
-o hello.pcmApple CPU मापन
Apple M5 Pro · 48 GiB · cpuOnly · first_audio_ms 78.9 · RTF 0.337 · peak_rss 866.8 MiB · n=5 · seed=42 · 2026-10-17
Pocket TTS 100M speech-core का कम-विलंब, ऑन-डिवाइस अंग्रेज़ी टेक्स्ट-टू-स्पीच बैकएंड है। सार्वजनिक ONNX बंडल निश्चित Alba आवाज़ इस्तेमाल करता है और हर ध्वनिक फ्रेम तैयार होते ही ऑडियो स्ट्रीम करता है।
इन्फ़रेंस वास्तव में इंटरलीव्ड है: एक autoregressive latent को decode और emit करने के बाद अगला बनाया जाता है। हर non-final callback 1,920 Float32 samples — 24 kHz पर 80 ms — देता है और buffered TTS graph की स्थिर प्रतीक्षा से बचता है।
प्रकाशित बंडल
| 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 |
डाउनलोड और सत्यापन
speech-core downloader v1.0.0 को pin करता है और हर प्रकाशित फ़ाइल को 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.
});
स्ट्रीमिंग अनुबंध
callback को एक बार में 80 ms का frame मिलता है; final callback stream का अंत बताता है। last_metrics() conditioning, first-audio और total latency, frame/sample counts, EOS, cancellation और effective seed देता है। cancel() सक्रिय synthesis रोकता है।
Galaxy S23 Ultra बेंचमार्क
सार्वजनिक v1.0.0 बंडल का नया परीक्षण ONNX Runtime 1.27, दो CPU threads और Galaxy S23 Ultra पर हुआ। ये सीधे engine माप हैं, UI या पूरी voice pipeline के नहीं।
| 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 |
राउंड-ट्रिप स्पष्टता
डिवाइस परीक्षण ने 46 command और assistant वाक्य synthesize किए, production 24→16 kHz resampler से गुज़ारे और deployed Parakeet-EOU से transcribe किए।
| Metric | Result |
|---|---|
| Corpus | 46 phrases |
| Exact transcripts | 31 / 46 |
| WER / CER | 8.00% / 3.47% |
| Empty audio / transcript / EOS failures | 0 / 0 / 0 |
राउंड-ट्रिप ASR समझ आने की क्षमता मापता है, स्वाभाविकता या श्रोता पसंद नहीं; यह listening tests का पूरक है।
इंटीग्रेशन स्थिति
C++17 ONNX backend speech-core में merge है और Windows, Linux तथा Android के लिए build होता है। मौजूदा speech-android SDK/JNI अभी भी Kokoro को default चुनता है; Kotlin model selection, download wiring और SDK exposure आगे का काम है। यह खंड ONNX संस्करण का वर्णन करता है; मूल Swift CoreML रनटाइम ऊपर समझाया गया है।
सीमाएँ और लाइसेंस
- केवल अंग्रेज़ी; सार्वजनिक checkpoint में निश्चित Alba आवाज़ है और arbitrary voice cloning नहीं है।
- मॉडल और आवाज़ CC BY 4.0 हैं। बंडल manifest में Alba MacKenna attribution बनाए रखें।
- recurrent graphs CPU के लिए हैं। Android provider support डिवाइस और ONNX Runtime build के अनुसार बदलता है, इसलिए hardware acceleration opt-in है।
- speech-core source Apache 2.0 है; model bundle की CC BY 4.0 शर्तें अलग रहती हैं।