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.
| Huwaran | Task | Pagiging Kuwalente | Laki |
|---|---|---|---|
| Parakeet TDT v3 | SST (114 na wika, 8192 BPE vocab) | INT8 | °891 MB |
| Kokoro-82M | TTS | INT8 | °330 MB |
| Pocket TTS 100M (opsiyonal) | Streaming text-to-speech (Ingles, nakapirmeng tinig ng Alba) | dynamic INT8 + FP32 | 120.3 MB |
| Silero VAD v5 | Pagtukoy sa aktibidad ng boses | float32 | °2 MB |
| DeepFilterNet3 | Pag - iimbak ng Ingay | FP16 | °8 MB |
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 |
|---|---|---|
| Android | Snapdragon 8 Gen 1+ | NNAPI → Hexagon NPU |
| Android | Si Samsung Exynos 2200+ | NNAPI → Samsung NPU |
| Android | Google Tensor G2+ | NNAPI → Google TPU |
| Anumang Android | CPU fallback | XNPACK |
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.cpp | STA kasama ng TDT sakim decoder at per-feature mel normalization |
kokoro_tts.cpp | TTS na may E2E model at maskarang pagtutuon ng pansin |
kokoro_phonemizer.cpp | Dictionary-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.h | Platform-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