--- license: mit language: - hi - bn - te - ta - mr - gu - kn - ml - pa - or - as - ur - sa - ne - kok - mai - brx - doi - ks - mni - sat - sd - en tags: - audio - automatic-speech-recognition - speech-to-text - onnx - int8 - sherpa-onnx - indicconformer - ai4bharat - mobile-edge pipeline_tag: automatic-speech-recognition --- # 🎙️ BharatBhasha AI - Speech Recognition (STT) Models Production-grade, INT8-quantized acoustic models based on **AI4Bharat IndicConformer** for real-time offline speech transcription in 22 Indian scheduled languages + English. ## 📦 Model Artifacts & Architecture | Language | Model File | Vocabulary File | Size | Format | |---|---|---|---|---| | Telugu (`te`) | `indic_conformer_te.onnx` | `tokens.txt` | 188 MB | NeMo CTC INT8 ONNX | | Hindi (`hi`) | `indic_conformer_hi.onnx` | `tokens.txt` | 188 MB | NeMo CTC INT8 ONNX | | Tamil (`ta`) | `indic_conformer_ta.onnx` | `tokens.txt` | 188 MB | NeMo CTC INT8 ONNX | | Kannada (`kn`) | `indic_conformer_kn.onnx` | `tokens.txt` | 188 MB | NeMo CTC INT8 ONNX | | Bengali (`bn`) | `indic_conformer_bn.onnx` | `tokens.txt` | 188 MB | NeMo CTC INT8 ONNX | | Marathi (`mr`) | `indic_conformer_mr.onnx` | `tokens.txt` | 188 MB | NeMo CTC INT8 ONNX | | Gujarati (`gu`) | `indic_conformer_gu.onnx` | `tokens.txt` | 188 MB | NeMo CTC INT8 ONNX | | Malayalam (`ml`) | `indic_conformer_ml.onnx` | `tokens.txt` | 188 MB | NeMo CTC INT8 ONNX | | Punjabi (`pa`) | `indic_conformer_pa.onnx` | `tokens.txt` | 188 MB | NeMo CTC INT8 ONNX | | Odia (`or`) | `indic_conformer_or.onnx` | `tokens.txt` | 188 MB | NeMo CTC INT8 ONNX | | English (`en`) | `indic_conformer_en.onnx` | `tokens_en.txt` | 188 MB | NeMo CTC INT8 ONNX | | All other Indian Langs | `indic_conformer_.onnx` | `tokens.txt` | 188 MB | NeMo CTC INT8 ONNX | ## 📱 Mobile Android Deployment (Sherpa-ONNX) Add to `build.gradle.kts`: ```kotlin dependencies { implementation("com.k2fsa.sherpa.onnx:sherpa-onnx:1.10.30") } ``` Initialize offline recognizer: ```kotlin val config = OfflineRecognizerConfig( featConfig = FeatureConfig(sampleRate = 16000, featureDim = 80), modelConfig = OfflineModelConfig( nemoCtc = OfflineNemoEncDecCtcModelConfig(model = modelPath), tokens = tokensPath, numThreads = 2, debug = false ) ) val recognizer = OfflineRecognizer(config) ``` ## ⚡ Performance Highlights - **100% Offline**: Zero internet connection or Google speech services required. - **Native Script Output**: Emits authentic Unicode characters (Telugu script, Devanagari, Bengali, Tamil, etc.). - **Latency**: Real-Time Factor (RTF) < 0.25 on standard Android mobile processors.