Speech Core
वॉइस एजेंट्स के लिए ओपन-सोर्स C++17 स्पीच इंजन — वॉयस एक्टिविटी डिटेक्शन, बैच और रियल-टाइम स्ट्रीमिंग स्पीच-टू-टेक्स्ट, स्पीकर डायराइज़ेशन, और टेक्स्ट-टू-स्पीच, सब कुछ Linux, Windows और Android पर ऑन-डिवाइस। Apache 2.0।
यह क्या है
Speech Core एक छोटा ऑर्केस्ट्रेशन कोर है — स्टेट मशीन, टर्न डिटेक्शन, इंटरप्शन हैंडलिंग, ऑडियो यूटिलिटीज़, बिना किसी ML निर्भरता के — साथ में स्पीच मॉडलों के लिए ऐब्स्ट्रैक्ट इंटरफ़ेस का एक सेट। इन्फ़रेंस CPU पर लोकल रूप से चलती है; ऑडियो कभी मशीन से बाहर नहीं जाता, और इन्फ़रेंस के समय कोई Python नहीं होता। मॉडल इन्फ़रेंस दो अदला-बदली योग्य बैकएंड के माध्यम से ऑप्ट-इन है, जिन्हें आप स्वतंत्र रूप से सक्षम कर सकते हैं — या इंटरफ़ेस के अपने ख़ुद के इम्प्लीमेंटेशन ला सकते हैं।
- वॉइस-एजेंट ऑर्केस्ट्रेशन —
VoicePipelineVAD, स्ट्रीमिंग STT, एक LLM, और TTS को barge-in, टर्न डिटेक्शन और tool-call लूप वाले फ़ुल-डुप्लेक्स एजेंट लूप में जोड़ता है। docs/pipeline.md और वॉइस एजेंट अवलोकन देखें। - शुद्ध C++ में स्पीकर डायराइज़ेशन —
DiarizationPipelineएक सेग्मेंटर और एक एम्बेडर को मिलाकर स्पीकर-लेबल वाले सेग्मेंट देता है, बिना अपनी किसी ML-रनटाइम निर्भरता के। - बाक़ी स्टैक को शक्ति देता है — speech-android Speech Core के ऊपर एक Kotlin SDK + JNI ब्रिज है, और Speech Studio Windows और Linux पर इसके LiteRT VoxCPM2 इंजन का उपयोग करता है। Apple प्लेटफ़ॉर्म पर समकक्ष लाइब्रेरी speech-swift है।
प्लेटफ़ॉर्म और बैकएंड
| बैकएंड | प्लेटफ़ॉर्म | हार्डवेयर एक्सेलेरेशन |
|---|---|---|
ONNX Runtime (SPEECH_CORE_WITH_ONNX) | Linux, macOS, Windows, Android | Android पर NNAPI, Qualcomm Linux पर QNN, वैकल्पिक NVIDIA CUDA / TensorRT (-DSPEECH_CORE_WITH_CUDA=ON) |
LiteRT (SPEECH_CORE_WITH_LITERT) | Linux x86_64, Windows x86_64, Android, macOS arm64 | अभी CPU |
चाहे एक बैकएंड सक्षम करें, दोनों, या कोई भी नहीं — ऑर्केस्ट्रेशन कोर बिना किसी ML रनटाइम के भी बिल्ड होता है।
समर्थित मॉडल
| मॉडल | कार्य | ONNX | LiteRT |
|---|---|---|---|
| Silero VAD v5 | वॉयस एक्टिविटी डिटेक्शन | ✓ | ✓ |
| Parakeet TDT v3 (0.6B) | स्पीच-टू-टेक्स्ट (114 भाषाएँ) | ✓ | ✓ |
| Nemotron Speech Streaming (0.6B) | स्ट्रीमिंग स्पीच-टू-टेक्स्ट (अंग्रेज़ी) | ✓ | ✓ |
| Nemotron-3.5 ASR Streaming Multilingual (0.6B) | स्ट्रीमिंग स्पीच-टू-टेक्स्ट (बहुभाषी, प्रॉम्प्ट-कंडीशन्ड) | ✓ | ✓ |
| Omnilingual ASR CTC (300M) | स्पीच-टू-टेक्स्ट (बहुभाषी) | — | ✓ |
| Pyannote Segmentation 3.0 | डायराइज़ेशन (सेग्मेंटेशन) | — | ✓ |
| WeSpeaker ResNet34-LM | स्पीकर एम्बेडिंग | — | ✓ |
| VoxCPM2 (2B) | टेक्स्ट-टू-स्पीच (48 kHz, वॉइस क्लोनिंग) | — | ✓ |
| Kokoro 82M | टेक्स्ट-टू-स्पीच | ✓ | — |
| DeepFilterNet3 | स्पीच एन्हांसमेंट | ✓ | — |
| PersonaPlex 7B | फ़ुल-डुप्लेक्स स्पीच-टू-स्पीच (CUDA) | ✓ | — |
क्विक स्टार्ट
कोर और LiteRT बैकएंड बिल्ड करें (रनटाइम लाइब्रेरी ai-edge-litert wheel से निकाली जाती है — कोई TensorFlow बिल्ड नहीं):
git clone https://github.com/soniqo/speech-core && cd speech-core
scripts/fetch_litert.sh build/litert
cmake -B build -DCMAKE_BUILD_TYPE=Release \
-DSPEECH_CORE_WITH_LITERT=ON -DLITERT_DIR=$PWD/build/litert
cmake --build build
फिर अपनी ज़रूरत के टार्गेट लिंक करें:
target_link_libraries(my_app PRIVATE speech_core) # orchestration only
target_link_libraries(my_app PRIVATE speech_core speech_core_models) # + ONNX models
target_link_libraries(my_app PRIVATE speech_core speech_core_models_litert) # + LiteRT models
ऑडियो बफ़र ट्रांसक्राइब करना बस कुछ पंक्तियों का काम है:
#include <speech_core/models/litert_parakeet_stt.h>
speech_core::LiteRTParakeetStt stt(
"parakeet-encoder.tflite", "parakeet-decoder-joint.tflite", "vocab.json");
auto r = stt.transcribe(audio, n_samples, 16000); // r.text / r.language / r.confidence
एक रेफ़रेंस Linux बिल्ड — छोटे C ABI वाली libspeech.so, एक ALSA डेमो CLI, और transcribe/synthesize/phonemize टूल — examples/linux पर उपलब्ध है। यह एम्बेडेड ARM64 (Yocto, Qualcomm SA8295P / SA8255P) और किसी भी Linux डेव मशीन को टार्गेट करता है। सेटअप के चरण Linux शुरुआत गाइड में हैं।
Android पर speech-android का उपयोग करें — एक Kotlin SDK जो Speech Core को JNI ब्रिज के पीछे पैकेज करता है (implementation("audio.soniqo:speech:0.0.9"))। macOS और iOS पर speech-swift का उपयोग करें, जो मॉडलों को CoreML, MLX, और Apple Neural Engine पर चलाता है।
दस्तावेज़ीकरण
- docs/ — रेपो के भीतर पूर्ण दस्तावेज़ीकरण
- docs/pipeline.md —
VoicePipelineस्टेट मशीन, AEC इंटीग्रेशन, और tool-call लूप - docs/models.md — पूर्ण मॉडल इन्वेंटरी
- huggingface.co/soniqo — कन्वर्ट किए गए मॉडल वेट्स (ONNX, LiteRT)
फीडबैक
github.com/soniqo/speech-core/issues पर एक issue खोलें, या Discord से जुड़ें।