Live demo · in-browser ASR
TRY MY
ASR
Speak into your mic and watch the transcript appear in real time. The default here is my own fine-tune of Moonshine-tiny for accented English — tick the base model too to compare them live on your voice. Everything runs 100% in your browser (WebGPU, WASM fallback): no inference server, and your audio never leaves your device.
I fine-tuned Moonshine-tiny for non-native-accented English (LoRA on the L2-ARCTIC accent corpus + VCTK native speech). Word error rate below is on held-out speakers never seen in training — one per accent — so the numbers are honest, not memorized. Lower is better.
| Eval set (unseen speakers) | Base | My fine-tune |
|---|---|---|
| Non-native accented English (L2-ARCTIC) | 25.9% | 17.1% −34% |
| — Korean-accented | 12.7% | 6.1% |
| — Hindi-accented | 12.7% | 8.0% |
| — Mandarin-accented | 26.3% | 18.9% |
| — Vietnamese-accented | 44.4% | 29.1% |
| — Arabic-accented | 23.1% | 14.6% |
| — Spanish-accented | 37.6% | 27.1% |
| Native English (VCTK) | 6.1% | 4.3% −30% |
| LibriSpeech test-clean (long-form audiobooks) | 4.8% | 7.0% regression, out-of-domain |
Trained with LoRA on a university SLURM cluster. Four runs collapsed before I
traced it to a double-label-shift bug in the transformers 4.57 Moonshine loss
path (fixed with explicit decoder_input_ids). The long-form
regression is the honest trade-off of specializing on short accented utterances —
listed rather than hidden.
Your mic is segmented by Silero VAD (WASM, also fully local) — the model only sees speech, not silence.
Moonshine-tiny (27M params, built for low-latency on-device streaming) runs via transformers.js / ONNX Runtime Web — WebGPU when your browser has it, WASM otherwise.
Weights stream once from Hugging Face's CDN and cache in your browser. Nothing you say is uploaded, logged, or stored — there is no backend to send it to.
LoRA fine-tune on a SLURM cluster (L2-ARCTIC + VCTK) → eval on held-out accents → ONNX export + quantization → WebGPU inference in your tab. Weights live on Hugging Face (lucascho/moonshine-tiny-accent-ONNX); the portfolio ships zero model bytes.