Automatic Speech Recognition
NeMo
English
voxrt
speech-recognition
streaming
asr
fastconformer
nvidia
on-device
edge
arm
neon
Instructions to use VoxRT/streaming-medium-pc-vxrt with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- NeMo
How to use VoxRT/streaming-medium-pc-vxrt with NeMo:
import nemo.collections.asr as nemo_asr asr_model = nemo_asr.models.ASRModel.from_pretrained("VoxRT/streaming-medium-pc-vxrt") transcriptions = asr_model.transcribe(["file.wav"]) - Notebooks
- Google Colab
- Kaggle
| license: cc-by-4.0 | |
| language: | |
| - en | |
| library_name: voxrt | |
| pipeline_tag: automatic-speech-recognition | |
| tags: | |
| - speech-recognition | |
| - streaming | |
| - asr | |
| - fastconformer | |
| - nemo | |
| - nvidia | |
| - on-device | |
| - edge | |
| - arm | |
| - neon | |
| - voxrt | |
| base_model: | |
| - nvidia/stt_en_fastconformer_hybrid_medium_streaming_80ms_pc | |
| # NeMo FastConformer streaming-medium-pc on the VoxRT runtime | |
| The `stt_en_fastconformer_hybrid_medium_streaming_80ms_pc` model | |
| from NVIDIA NeMo, packaged as a **`.vxrt`** file for the VoxRT | |
| on-device inference runtime. Same weights, repackaged so the | |
| 80 ms cache-aware streaming ASR runs on Android or iOS in | |
| real-time β with punctuation and capitalisation output straight | |
| from the model, no post-processing layer required. | |
| **This is not our model.** The weights are NVIDIA's | |
| `nvidia/stt_en_fastconformer_hybrid_medium_streaming_80ms_pc` | |
| checkpoint, released under CC-BY-4.0. What we ship is the runtime | |
| that makes it fast on cheap ARM hardware plus the `.vxrt` | |
| container that the runtime consumes. | |
| ## Runtime performance | |
| Cumulative RTF on a single CPU core, `arm64` release builds, | |
| post-warmup. Live-mic figures are the production-realistic ones | |
| (scheduler jitter + capture overhead included): | |
| | Device | CPU | Decoder | Mode | RTF | | |
| |----------------------------|------------|---------|-------------|-----------:| | |
| | Xiaomi Redmi 9C (Android) | Cortex-A73 | RNN-T | file replay | **0.302** | | |
| | Xiaomi Redmi 9C (Android) | Cortex-A73 | RNN-T | live mic | **0.353** | | |
| | iPhone 13 Pro Max (iOS) | Apple A15 | RNN-T | live mic | **0.08β0.10** | | |
| For the same weights, RNN-T decoding costs ~50 ms of CPU per | |
| 1.12 s chunk on SD662; the CTC head is ~5 ms per chunk with a | |
| minor WER hit. The SDK exposes both decoders β pick per your | |
| battery / accuracy trade-off. | |
| Chunked streaming granularity is **80 ms** cache-aware | |
| look-ahead. Inherent end-to-end buffering is one chunk | |
| (β 1.12 s at chunk_size=112) before text emission begins. | |
| ## Model quality | |
| Empirically validated on LibriSpeech test-clean (500-utterance | |
| subset, matches the SDK repos' reported numbers): | |
| | Decoder | WER | Notes | | |
| |-----------------|-------:|--------------------------------------------------| | |
| | **RNN-T** β | **3.267 %** | Recommended default. Higher accuracy. | | |
| | CTC | 4.895 % | ~15 % cheaper per chunk; long-session friendly. | | |
| Model architecture, training data, and topline WER claims are | |
| NVIDIA's β see the upstream checkpoint at | |
| [huggingface.co/nvidia/stt_en_fastconformer_hybrid_medium_streaming_80ms_pc](https://huggingface.co/nvidia/stt_en_fastconformer_hybrid_medium_streaming_80ms_pc). | |
| ## Download & use | |
| The `.vxrt` file on this HF repo is byte-identical to the one at | |
| [github.com/VoxRT/voxrt-asr-models/releases](https://github.com/VoxRT/voxrt-asr-models/releases). | |
| Either source is fine. | |
| `.vxrt` files cannot be loaded with `transformers`, `nemo_toolkit`, | |
| or any standard HF library β they are a proprietary container | |
| the VoxRT runtime reads. Use one of our SDKs: | |
| - Android β [`voxrt-asr-android`](https://github.com/VoxRT/voxrt-asr-android) (JitPack) | |
| - iOS β [`voxrt-asr-ios`](https://github.com/VoxRT/voxrt-asr-ios) (Swift Package) | |
| - Linux aarch64 β available on request (contact `help@voxrt.com`) | |
| ## Kotlin example | |
| ```kotlin | |
| import com.voxrt.asr.VoxrtAsrNative | |
| import com.voxrt.asr.VoxrtAsrStreamingEngine | |
| val engine = VoxrtAsrStreamingEngine.fromAssetFd(modelFd) | |
| // Or explicitly pick CTC: | |
| // val engine = VoxrtAsrStreamingEngine.fromAssetFd(modelFd, VoxrtAsrNative.DECODE_CTC) | |
| val delta = engine.processPcm(pcmFloatArray) // text emitted this call | |
| val tail = engine.stop() // drain remaining text | |
| engine.close() | |
| ``` | |
| `engine.processPcm` / `stop` / `reset` / `close` are | |
| **synchronous and stateful** β the engine doesn't own a worker | |
| thread. Drive it from your own capture / IO thread; marshal text | |
| deltas back to UI via `runOnUiThread` / a Flow / your preferred | |
| concurrency. RNN-T (default) survives chunk boundaries via its | |
| LSTM state; CTC dedupes across chunks internally. | |
| ## Licensing | |
| - **Model weights** are derived from | |
| `nvidia/stt_en_fastconformer_hybrid_medium_streaming_80ms_pc`, | |
| Β© NVIDIA Corporation, CC-BY-4.0 licensed. | |
| - **Repackaging** into the `.vxrt` container preserves the CC-BY-4.0 | |
| obligations attached to the weights. Full notice lives at | |
| [github.com/VoxRT/voxrt-asr-models/blob/main/LICENSE](https://github.com/VoxRT/voxrt-asr-models/blob/main/LICENSE). | |
| - **The VoxRT runtime and `.vxrt` container format** are proprietary | |
| Elephant Enterprises LLC IP. Redistribution allowed as an | |
| unmodified part of the VoxRT SDKs above. | |
| Attribution required by CC-BY-4.0: | |
| > Speech recognition powered by NVIDIA NeMo FastConformer | |
| > (streaming, medium, 80 ms look-ahead, P&C), | |
| > Β© NVIDIA Corporation, licensed under CC-BY-4.0. | |
| Include this line in your product's UI, docs, or credits when you | |
| ship a product that runs this model. | |
| ## About VoxRT | |
| VoxRT is a from-scratch on-device inference runtime tuned for | |
| streaming audio on commodity ARM CPUs β no GPU, no NPU, no vendor | |
| accelerator required. Sister products on the same runtime: | |
| - Wake-word: **["Hey Assistant" model + custom-phrase tier](https://huggingface.co/VoxRT/wake-word-hey-assistant-vxrt)** | |
| - Voice activity detection: **[Silero VAD in `.vxrt`](https://huggingface.co/VoxRT/silero-vad-vxrt)** | |
| Commercial integration / custom-model packaging: `help@voxrt.com` | |
| Β· [voxrt.com](https://voxrt.com) | |