Awtomatikong salin · Orihinal sa Ingles

Arkitektura — Android

Ang speech-android ay isang manipis na tulay ng Kotlin SDK + JNI sa ibabaw ng tulay ng ibabaw ng speech-core C++ engine. Ang lahat ng MLSPS at pipeline ortendation ay nakatira sa speech-core; speech-android ay humahawak lamang ng Android na pakete. Linux / carciech (Yocto, Qualcomm SA8295P/SA8255P sa QNN) ay direktang pinondohan sa QN) speech-core/examples/linux.

Baluti

Ang modelong mga pambalot (ang modelong mga balotSilero VAD, Parakeet SST, Kokoro TTS, DeepFilterNet3) tuwirang ipatupad ang speech-core Mga interface (mga larawan)VADInterface, STTInterface, TTSInterface, EnhancerInterface), kaya ang tulay ng JNI ay gumagawa ng mga ito at mga kamay na tumutukoy sa speech_core::VoicePipeline na walang C-vtable na pag-aangkop na boilerplate.

┌──────────────────────────────────────────────┐
│     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)

Pipeline

Ang tubo ng pagsasalita ay tumatakbo ng tatlong yugto sa ganang sarili: VAD → STT → TTS. Voice Activity influsion ay nag-udyok ng pagrerekord, ang audio ay na-publish sa pamamagitan ng STT, at ang TTS ay lumilikha ng tugon. ang Barge-in support ay pumapayag sa pag-crash ng TTS playback kapag ang gumagamit ay nagsisimulang magsalita ng mid-response.

speech-core na nakatutok sa pagdetek, paghinto sa paghawak, at pakikipag - usap. speech-core'Mga interface ay direkta — walang C-vtable na pag-aangkop na layer – na ginagawang pantay-pantay na madaling plag sa non-ONNX na mga backends (hal. ang mga ts. CoreML / MLX mga pagpapatupad speech-swift) na naaayon sa iisang interface.

Mga modelo

Ang lahat ng mga modelo ay gumagamit ng ONNX format na may INT8 quanization habang ang default. Models ay hosted sa HuggingFace sa ilalim ng quansion ng ZX QuaXZ soniqo org at auto-download sa unang gamit sa pamamagitan ng ModelManager.kt.

HuwaranTask Pagiging Kuwalente Laki
Parakeet TDT v3SST (114 na wika, 8192 BPE vocab)INT8°891 MB
Kokoro-82MTTSINT8°330 MB
Pocket TTS 100M (opsiyonal)Streaming text-to-speech (Ingles, nakapirmeng tinig ng Alba)dynamic INT8 + FP32120.3 MB
Silero VAD v5Pagtukoy sa aktibidad ng bosesfloat32°2 MB
DeepFilterNet3 Pag - iimbak ng IngayFP16°8 MB
Pocket TTS

Pocket TTS ay isang opsyonal na speech-core ONNX backend. Ito ay wala sa kasalukuyang speech-android default download o JNI model selection; Kotlin SDK work pa rin ang natitirang-up.

Kabuuang modelong download ay humigit - kumulang 1.2 GB. Pagkatapos ng unang download, ang lahat ng mga bagay ay tumatakbo nang husto.

Kawalang - Interes: OnnxEngine

Ang onnx_engine.h pambalot ay nagbibigay ng platform-aware bitayan provider (EP) selection. Ito ay nag-eensayo ng makukuhang mga EPs sa runtime at nahulog nang maganda:

Plataporma Pagpepepetsa Pag - abuso sa Sarili
AndroidSnapdragon 8 Gen 1+NNAPI → Hexagon NPU
AndroidSi Samsung Exynos 2200+NNAPI → Samsung NPU
AndroidGoogle Tensor G2+NNAPI → Google TPU
Anumang AndroidCPU fallbackXNPACK

Para sa carcase Qualcomm SA8295P / SA8255P na may QNN (Hexagon DSP), tingnan ang speech-core/examples/linux.

Susing C++ Files

Sawi ang paglikha ng talaksan Layunin
jni_bridge.cpp Mga istraktura speech_core::* model pambalot at mga pagtukoy ng kamay sa VoicePipeline
parakeet_stt.cppSTA kasama ng TDT sakim decoder at per-feature mel normalization
kokoro_tts.cppTTS na may E2E model at maskarang pagtutuon ng pansin
kokoro_phonemizer.cppDictionary-based phonemizer para sa TTS input
silero_vad.cpp Pagtuklas sa galaw ng boses
deepfilter.cpp Pag - aalis ng Ingay sa pamamagitan ng STFT/ERB processing
onnx_engine.hPlatform-awar ONNX Runtime staple (NNAPI on Android, QNNN on Linux, CPU fallback)

Ang mga modelong pambalot at onnx_engine.h ay lumipat sa speech-core sa model-extraction refactor; tingnan ang docs/models.md para sa buong imbentaryo.

Pinagmulan ng Pag - aayos

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/

Pinagmulan na kodigo: github.com/soniqo/speech-android