תרגום מכונה · המקור באנגלית
אדריכלות: Android
speech-android הוא גשר דק של Kotlin SDK + JNI מעל הגשר speech-core C++ כל ה-ML Inference ו-צנרת Orchestration חיים speech-core; speech-android מטפל רק Android אריזה. Linux רכב (Yocto, Qualcommm SA8295P/SA8255P עם QNN) הוא מתארח ישירות speech-core/examples/linux.
Stack Stack
מודל עטיפה (Silero VAD, Parakeet STT, Kokoro TTS, DeepFilterNet3(1) ליישם ישירות את speech-core ממשקים (VADInterface, STTInterface, TTSInterface, EnhancerInterfaceכך שגשר JNI בונה אותם וידיים speech_core::VoicePipeline ללא מתאם C-vtable.
┌──────────────────────────────────────────────┐
│ SpeechPipeline (Kotlin public API) │
│ ↓ JNI │
│ jni_bridge.cpp (~250 lines) │
└──────────────────┬───────────────────────────┘
│
┌──────────────────┴───────────────────────────┐
│ speech_core_models (git submodule) │
│ Silero / Parakeet / Kokoro / DeepFilter │
│ speech_core │
│ Turn detection · Interruptions · Context │
└──┬────────┬────────┬────────┬────────────────┘
│ │ │ │ direct interface impl
┌──┴──┐ ┌──┴──┐ ┌──┴──┐ ┌─┴────────┐
│ VAD │ │ STT │ │ TTS │ │ Enhancer │
└──┬──┘ └──┬──┘ └──┬──┘ └─┬────────┘
└────────┴────────┴────────┘
ONNX Runtime (CPU / NNAPI)המונחים:
צינור הדיבור פועל בשלושה שלבים: VAD STT TTSגילוי קולי גורם הקלטה, אודיו הוא מתואר על ידי STT, TTS מייצרת את התגובה. Barge-in תמיכה מאפשר להפריע TTS back כאשר המשתמש מתחיל לדבר באמצע תגובה.
speech-core ניהול תפנית זיהוי, הפרעות טיפול וקשר שיחה.המודל עוטפים ליישם speech-coreממשקים ישירות - אין שכבת מתאם C-vtable - מה שהופך את זה קל באותה מידה לתקע ב Backends non-ONNX (למשל, ה- C-V. CoreML / MLX יישום speech-swiftזה תואם את אותו ממשקים.
מודלים
כל המודלים משתמשים בפורמט ONNX עם INT8 קוונטיזציה כמו ברירת המחדל.מודלים מתארחים על HuggingFace מתחת ל- ZXQXZ. soniqo org והורדת אוטומטי לשימוש ראשון ModelManager.kt.
| מודל מודל | משימות | המונחים | גודל |
|---|---|---|---|
| Parakeet TDT v3 | STT (114 שפות, 8192 BPE vocab) | INT8 | 891 MB |
| Kokoro-82M | TTS | INT8 | 330 MB |
| Pocket TTS 100M (אופציונלי) | וידאו-to-speech (אנגלית, קול אלבה קבוע) | דינמי INT8 + FP32 | 120.3 MB |
| Silero VAD v5 | זיהוי פעילות קולית | float32 | 2 MB |
| DeepFilterNet3 | ביטול רעש | FP16 | -8 MB |
Pocket TTS הוא אופציונלי speech-core ONNX חזרה: זה לא קיים בהווה speech-android ברירת מחדל או JNI מודל בחירה; Kotlin SDK חיפוש נשאר מעקב אחר העבודה.
הורדה מלאה של מודל היא בערך 1.2 GB לאחר ההורדה הראשונית, כל ההפרעה היא לחלוטין לא מקוון.
המונחים: OnnxEngine
ה- onnx_engine.h עטיפה מספק ספק ביצוע של פלטפורמה-מודע (EP) בחירה.זה חוקר EPs זמינים בזמן ריצה ונופל בחזרה בחסד:
| פלטפורמה | צ'יפסט | אישור |
|---|---|---|
| Android | Snapdragon 8 Gen 1+ | NNAPI - Hexagon NPU |
| Android | סמסונג Exynos 2200+ | סמסונג NPU |
| Android | Google Tensor G2+ | Google TPU |
| Android | CPU ירידה | XNPACK |
עבור רכב Qualcomm SA8295P / SA8255P עם QN (Hexagon DSP), ראה speech-core/examples/linux.
מפתח C++ קבצים
| File | מטרה |
|---|---|
jni_bridge.cpp | בונה speech_core::* עדשות מודל ופניות ל VoicePipeline |
parakeet_stt.cpp | STT עם TDT אדמדן אדמדן ונורמליזציה של אבטיח |
kokoro_tts.cpp | TTS עם E2E מודל ותשומת לב |
kokoro_phonemizer.cpp | טלפון מבוסס מילון עבור TTS קלט |
silero_vad.cpp | זיהוי פעילות קול |
deepfilter.cpp | ביטול רעש עם עיבוד STFT/ERB |
onnx_engine.h | פלטפורמה-מודע ONNX Runtime עטיפה (NNAPI על Android, QN על Linux, CPU Fallback) |
המודל עטיפה ו onnx_engine.h עבר לתוך speech-core ב- Model-extraction refactor; ראה docs/מודלים עבור המלאי המלא.
מקור Structure
speech-android/
speech-core/ C++ engine + ONNX model wrappers (git submodule)
sdk/src/main/
cpp/jni_bridge.cpp Thin JNI bridge over speech_core::VoicePipeline
cpp/CMakeLists.txt Pulls speech-core via add_subdirectory(SPEECH_CORE_WITH_ONNX=ON)
kotlin/.../speech/ Kotlin public SDK (SpeechPipeline, ModelManager)
sdk/src/androidTest/ Instrumented e2e tests
app/ Demo application
Linux / automotive (C ABI, ALSA demo, CLI tools) lives at:
speech-core/examples/linux/קוד מקור: github.com/soniqo/speech-android