תרגום מכונה · המקור באנגלית

אדריכלות: 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 v3STT (114 שפות, 8192 BPE vocab)INT8891 MB
Kokoro-82MTTSINT8330 MB
Pocket TTS 100M (אופציונלי)וידאו-to-speech (אנגלית, קול אלבה קבוע)דינמי INT8 + FP32120.3 MB
Silero VAD v5זיהוי פעילות קוליתfloat322 MB
DeepFilterNet3ביטול רעשFP16-8 MB
Pocket TTS

Pocket TTS הוא אופציונלי speech-core ONNX חזרה: זה לא קיים בהווה speech-android ברירת מחדל או JNI מודל בחירה; Kotlin SDK חיפוש נשאר מעקב אחר העבודה.

הורדה מלאה של מודל היא בערך 1.2 GB לאחר ההורדה הראשונית, כל ההפרעה היא לחלוטין לא מקוון.

המונחים: OnnxEngine

ה- onnx_engine.h עטיפה מספק ספק ביצוע של פלטפורמה-מודע (EP) בחירה.זה חוקר EPs זמינים בזמן ריצה ונופל בחזרה בחסד:

פלטפורמהצ'יפסטאישור
AndroidSnapdragon 8 Gen 1+NNAPI - Hexagon NPU
Androidסמסונג Exynos 2200+סמסונג NPU
AndroidGoogle Tensor G2+Google TPU
AndroidCPU ירידהXNPACK

עבור רכב Qualcomm SA8295P / SA8255P עם QN (Hexagon DSP), ראה speech-core/examples/linux.

מפתח C++ קבצים

Fileמטרה
jni_bridge.cppבונה speech_core::* עדשות מודל ופניות ל VoicePipeline
parakeet_stt.cppSTT עם TDT אדמדן אדמדן ונורמליזציה של אבטיח
kokoro_tts.cppTTS עם 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