आर्किटेक्चर — Android और Linux

speech-android प्लेटफ़ॉर्म-विशिष्ट फ़्रंटएंड के साथ एक साझा C++ कोर के माध्यम से Android और एम्बेडेड Linux के लिए ऑन-डिवाइस स्पीच प्रोसेसिंग प्रदान करता है। सभी इन्फ़रेंस हार्डवेयर-एक्सेलेरेटेड एक्ज़ीक्यूशन प्रोवाइडर्स के साथ ONNX Runtime का उपयोग करके लोकली चलते हैं।

क्रॉस-प्लेटफ़ॉर्म स्टैक

Android और Linux speech-core C++ submodule साझा करते हैं, जो पूर्ण स्पीच पाइपलाइन को ऑर्केस्ट्रेट करता है। प्रत्येक प्लेटफ़ॉर्म एक पतला फ़्रंटएंड प्रदान करता है जो vtable-आधारित इंटरफ़ेस के माध्यम से speech-core को डेलिगेट करता है:

┌──────────────────────────────────────────────┐
│   Android: SpeechPipeline (Kotlin/JNI)       │
│   Linux:   speech.h (C API)                  │
└──────────────────┬───────────────────────────┘
                   │
┌──────────────────┴───────────────────────────┐
│            speech-core (C++ submodule)        │
│   Turn detection · Interruptions · Context   │
└──┬────────┬────────┬────────┬────────────────┘
   │        │        │        │  vtables
┌──┴──┐  ┌──┴──┐  ┌──┴──┐  ┌─┴────────┐
│ VAD │  │ STT │  │ TTS │  │ Enhancer │
└──┬──┘  └──┬──┘  └──┬──┘  └─┬────────┘
   └────────┴────────┴────────┘
       ONNX Runtime (CPU / NNAPI / QNN)

प्लेटफ़ॉर्म पथ

Android

Kotlin SDK (SpeechPipeline.kt) पब्लिक API प्रदान करता है। यह JNI के माध्यम से jni_bridge.cpp में कॉल करता है, जो speech-core के साथ vtable कॉलबैक रजिस्टर करता है। ONNX Runtime Qualcomm, Samsung, और Google चिपसेट पर हार्डवेयर एक्सेलेरेशन के लिए NNAPI एक्ज़ीक्यूशन प्रोवाइडर के साथ चलता है।

Kotlin SDK → JNI bridge → speech-core → ONNX Runtime (NNAPI)

Linux

C API (speech.h) एम्बेडेड Linux टारगेट (ऑटोमोटिव, Yocto) के लिए उसी पाइपलाइन को एक्सपोज़ करता है। Qualcomm ऑटोमोटिव प्लेटफ़ॉर्म (SA8295P, SA8255P) पर, ONNX Runtime Hexagon DSP एक्सेलेरेशन के लिए QNN एक्ज़ीक्यूशन प्रोवाइडर का उपयोग करता है।

C API → speech-core → ONNX Runtime (QNN)

पाइपलाइन

स्पीच पाइपलाइन तीन चरणों को क्रमिक रूप से चलाती है: VAD → STT → TTS। Voice Activity Detection रिकॉर्डिंग ट्रिगर करता है, ऑडियो STT द्वारा ट्रांसक्राइब होता है, और TTS प्रतिक्रिया उत्पन्न करता है। Barge-in समर्थन उपयोगकर्ता के प्रतिक्रिया के बीच में बोलना शुरू करने पर TTS प्लेबैक को बाधित करने की अनुमति देता है।

speech-core टर्न डिटेक्शन, इंटरप्शन हैंडलिंग, और कन्वर्सेशन संदर्भ का प्रबंधन करता है। मॉडल कार्यान्वयन (VAD, STT, TTS, Enhancer) C vtable इंटरफ़ेस के माध्यम से प्लग किए जाते हैं, जिससे कोर पाइपलाइन लॉजिक प्लेटफ़ॉर्म-अज्ञेय बन जाता है।

मॉडल

सभी मॉडल डिफ़ॉल्ट रूप से INT8 क्वांटिज़ेशन के साथ ONNX फ़ॉर्मैट का उपयोग करते हैं। मॉडल HuggingFace पर aufklarer org के तहत होस्ट किए जाते हैं और ModelManager.kt के माध्यम से पहले उपयोग पर ऑटो-डाउनलोड होते हैं।

मॉडलकार्यक्वांटिज़ेशनआकार
Parakeet TDT v3STT (114 भाषाएँ, 8192 BPE vocab)INT8~500 MB
Kokoro-82MTTSINT8~89 MB
Silero VAD v5Voice Activity Detectionfloat32~1.2 MB
DeepFilterNet3नॉइज़ कैंसलेशनFP16~4.2 MB

कुल मॉडल डाउनलोड लगभग 1.2 GB है। प्रारंभिक डाउनलोड के बाद, सभी इन्फ़रेंस पूरी तरह ऑफ़लाइन चलते हैं।

इन्फ़रेंस: OnnxEngine

onnx_engine.h रैपर प्लेटफ़ॉर्म-जागरूक एक्ज़ीक्यूशन प्रोवाइडर (EP) चयन प्रदान करता है। यह रनटाइम पर उपलब्ध EPs की जांच करता है और सुचारू रूप से फ़ॉलबैक करता है:

प्लेटफ़ॉर्मचिपसेटएक्सेलेरेशन
AndroidSnapdragon 8 Gen 1+NNAPI → Hexagon NPU
AndroidSamsung Exynos 2200+NNAPI → Samsung NPU
AndroidGoogle Tensor G2+NNAPI → Google TPU
ऑटोमोटिवSA8295P / SA8255PQNN → Hexagon DSP
कोई भीCPU फ़ॉलबैकXNNPACK

मुख्य C++ फ़ाइलें

फ़ाइलउद्देश्य
jni_bridge.cppvtables के माध्यम से ONNX मॉडल कार्यान्वयन को speech-core C API से जोड़ता है
parakeet_stt.cppTDT greedy decoder और per-feature mel नॉर्मलाइज़ेशन के साथ STT
kokoro_tts.cppE2E मॉडल और attention mask के साथ TTS
kokoro_phonemizer.cppTTS इनपुट के लिए शब्दकोश-आधारित phonemizer
silero_vad.cppवॉयस एक्टिविटी डिटेक्शन
deepfilter.cppSTFT/ERB प्रोसेसिंग के साथ नॉइज़ कैंसलेशन
onnx_engine.hप्लेटफ़ॉर्म-जागरूक ONNX Runtime रैपर (Android पर NNAPI, Linux पर QNN, CPU फ़ॉलबैक)
linux/src/speech.cppLinux C API कार्यान्वयन
linux/include/speech.hLinux पब्लिक C हेडर

सोर्स संरचना

speech-android/
  speech-core/              C++ submodule (pipeline orchestration)
  sdk/src/main/
    cpp/                    ONNX Runtime model implementations, JNI bridge, audio DSP
    kotlin/.../speech/      Kotlin public SDK (SpeechPipeline, ModelManager)
  sdk/src/androidTest/      Instrumented e2e tests (23 tests, 5 suites)
  linux/
    include/speech.h        Public C header
    src/speech.cpp          Linux C API implementation
    tests/                  Linux test suite (11 tests)
  app/                      Demo application

सोर्स कोड: github.com/soniqo/speech-android