Pocket TTS 100M
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 أعمال لاحقة. لا يتضمن الإصدار محرك Apple/CoreML.
القيود والترخيص
- الإنجليزية فقط؛ يتضمن checkpoint العام صوت Alba الثابت ولا يدعم استنساخ أي صوت.
- النموذج والصوت تحت CC BY 4.0. احتفظ بنسبة صوت Alba MacKenna الموجودة في manifest.
- الرسوم المتكررة موجهة إلى CPU. تسريع العتاد اختياري لأن دعم Android يختلف باختلاف الجهاز وبناء ONNX Runtime.
- مصدر speech-core تحت Apache 2.0، بينما تحتفظ حزمة النموذج بشروط CC BY 4.0.