Pocket TTS 100M
بيئة تشغيل أصلية لأجهزة Apple · PocketTTS
يضيف PocketTTS توليد الكلام الأصلي عبر CoreML إلى speech-swift. تعمل جميع المراحل على CPU فقط افتراضيًا. يبث صوت Alba الإنجليزي إطارات من 1,920 عينة بتردد 24 kHz، أي 80 مللي ثانية لكل إطار.
يوفر انتظار التسليم تحكمًا في تدفق البيانات. لكل طلب حالته وبذرته الخاصة. يُبلغ الإلغاء وفشل الاستقبال وحدود التوليد عن أخطاء؛ وعند النجاح تُرسل قطعة نهائية فارغة واحدة. لا تدعم هذه الحزمة استنساخ الصوت أو لغات أخرى.
نزّل الحزمة المنشورة aufklarer/Pocket-TTS-100M-CoreML-INT8 عند أول استخدام، أو حمّل تصديرًا محليًا. احتفظ بنسبة العمل إلى Kyutai وFluidInference وAlba MacKenna وفق CC BY 4.0.
استخدام 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.pcmقياس أداء CPU على Apple
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 الثابت وتبث الصوت فور جاهزية كل إطار صوتي.
الاستدلال متداخل فعلاً: يُفك ترميز كل تمثيل ذاتي الانحدار ويُرسل قبل توليد التالي. يعيد كل callback غير نهائي 1,920 عينة Float32، أي 80 مللي ثانية عند 24 kHz، متجنباً الحد الثابت لرسوم TTS المخزنة مؤقتاً.
الحزمة المنشورة
| 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 الإصدار v1.0.0 ويتحقق من كل ملف منشور باستخدام SHA-256.
bash scripts/download_pocket_tts_onnx.sh /models/pocket-tts-onnx
واجهة 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.
});
عقد البث
يستقبل callback إطاراً واحداً بطول 80 مللي ثانية في كل مرة، ويشير callback النهائي إلى نهاية البث. تعرض last_metrics() أزمنة التهيئة وأول صوت والإجمالي وعدد الإطارات والعينات وEOS والإلغاء والبذرة الفعلية. توقف cancel() التوليد النشط.
اختبار Galaxy S23 Ultra
استخدمت إعادة اختبار نظيفة للحزمة العامة v1.0.0 ONNX Runtime 1.27 وخيطَي CPU وهاتف Galaxy S23 Ultra. هذه قياسات مباشرة للمحرك ولا تشمل الواجهة أو خط الصوت الكامل.
| 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 عبارة أوامر وردود، ومررها عبر مسار إعادة أخذ العينات الإنتاجي من 24 إلى 16 kHz، ثم نسخها باستخدام Parakeet-EOU المنشور.
| Metric | Result |
|---|---|
| Corpus | 46 phrases |
| Exact transcripts | 31 / 46 |
| WER / CER | 8.00% / 3.47% |
| Empty audio / transcript / EOS failures | 0 / 0 / 0 |
يقيس ASR ذهاباً وإياباً وضوح الكلام لا طبيعته أو تفضيل المستمع، ويكمل اختبارات الاستماع.
حالة التكامل
دُمج محرك ONNX بلغة C++17 في speech-core ويمكن بناؤه لـ Windows وLinux وAndroid. ما زال مسار SDK/JNI الحالي في speech-android يختار Kokoro افتراضياً؛ اختيار النموذج في Kotlin والتنزيل وإتاحة SDK أعمال لاحقة. يصف هذا القسم إصدار ONNX؛ وبيئة Swift CoreML الأصلية موضحة أعلاه.
القيود والترخيص
- الإنجليزية فقط؛ يتضمن checkpoint العام صوت Alba الثابت ولا يدعم استنساخ أي صوت.
- النموذج والصوت تحت CC BY 4.0. احتفظ بنسبة صوت Alba MacKenna الموجودة في manifest.
- الرسوم المتكررة موجهة إلى CPU. تسريع العتاد اختياري لأن دعم Android يختلف باختلاف الجهاز وبناء ONNX Runtime.
- مصدر speech-core تحت Apache 2.0، بينما تحتفظ حزمة النموذج بشروط CC BY 4.0.