English speech recognition ran entirely on a low-cost chip
On two recorded-English tests, O’ido’s word error rates were 3.70% and 8.23%, within 0.12 percentage points of the higher-precision model.
Edited by Boris Djordjevic · Paperfoot
O’ido, a speech-recognition engine, ran English recognition without a fixed command list entirely on an ESP32-S3 microcontroller, with tests on LibriSpeech, a collection of recorded English. The chip had no specialized hardware for running neural networks. The system used a model with 13 million learned settings, storing its numbers at reduced precision.
Word error rates, a measure of transcription mistakes, were 3.70% on LibriSpeech test-clean and 8.23% on test-other. Both were within 0.12 percentage points of full precision. On a physical board, the software took 1.97 times the audio’s duration to run on one processor core. A four-second command yielded a transcript about 8.7 seconds after it ended. The board’s transcripts matched those from an emulator designed to reproduce the chip’s instructions exactly.
Why it matters
Physical-board tests demonstrated speech recognition beyond preset commands on this low-cost hardware without a neural accelerator. The authors released the code and models.
Caveats
The system was not yet fast enough for real-time transcription; its two-core version produced incorrect results on the physical chip and was disabled. The paper is a preprint, not yet peer-reviewed.
From the paper
- Limitation
On one core the recognizer runs at about twice real time (1.97 \times ): the text of a 4 s command appears about 8.7 s after it ends in utterance mode (including the 0.8 s end-of-speech wait) and about 5 s after it in streaming mode.
Quoted word for word from the full text on arXiv.
In this paper
open-vocabulary English speech recognition
- Methods
- O'ido (this paper)MultiNet7 (baseline)Whisper tiny.en (baseline)Moonshine tiny (baseline)Vosk small (baseline)Whisper tiny (baseline)Conformer-CTC SmallConformer-Transducer Small
- Datasets
- LibriSpeech (evaluated)AMI (evaluated)People's Speech (evaluated)Common Voice (evaluated)VoxPopuli (evaluated)Earnings-22 (evaluated)MLS (training)FLEURS (evaluated)VCTK (training)OpenSLR (training)
Results
- O'ido, word error rate (WER), on LibriSpeech, on-device arithmetic: 3.70%/8.23%; O'ido, word error rate (WER), on LibriSpeech, with an on-chip 1.3M-parameter language model: 3.33%/7.15%; O'ido, word error rate (WER), on LibriSpeech, a transducer head: 2.99%/6.67%; O'ido, size, int4 variant fits in: 8.3 MB
On LibriSpeech test-clean/test-other the on-device arithmetic reaches 3.70%/8.23% word error rate (WER), within 0.12 points of full precision, and 3.33%/7.15% with an on-chip 1.3M-parameter language model; a transducer head gives 2.99%/6.67% and an int4 variant fits in 8.3 MB.
Abstract
- O'ido, duration of the audio, on one core: 1.97x
Measured on a physical board, the firmware runs at 1.97x the duration of the audio on one core, with transcripts identical to an instruction-exact emulator: accurate, but not yet real time (a 4 s command is transcribed about 8.7 s after it ends).
Abstract
- O'ido, WER, on LibriSpeech, streaming variant: 4.86%/11.03%
A streaming variant shows partial text while the speaker talks and delivers the final text 4.1-11.1 s after clips of 3.6-10.6 s (7.2-22.4 s in utterance mode) at 4.86%/11.03% WER; a Spanish model makes 34-60% fewer errors than multilingual Whisper tiny.
Abstract
- O'ido, accuracy, on LibriSpeech, after quantization-aware fine-tuning, greedy: 4.61%/9.98%
Plain int4 post-training quantization degraded accuracy substantially (to 14.1%/22.0% on the full test sets); after quantization-aware fine-tuning, the int4 model reaches 4.61%/9.98% greedy.
7.1 Accuracy and quantization
- O'ido, accuracy, on LibriSpeech, with the language model, C{=}32: 4.86%/11.03%; O'ido, accuracy, on LibriSpeech, C{=}16: 6.14%/13.23%
Chunking costs accuracy, because the encoder cannot see what follows the chunk: with the language model, C{=}32 reaches 4.86%/11.03% on LibriSpeech test-clean/test-other against 3.33%/7.15% in utterance mode, and C{=}16 is worse still (6.14%/13.23%).
7.3 Streaming
- O'ido, real-time factor, With one core, 27 clips of 3.6–10.6 s: 1.97 × real time; O'ido, real-time factor, With one core, int4 model: 1.76; O'ido, real-time factor, With one core, transducer: 1.89
With one core, the int8 CTC model with the language model runs at 1.97 × real time on 27 clips of 3.6–10.6 s (1.91–2.02), the int4 model at 1.76, the transducer at 1.89 and the Spanish model at 2.06.
7.5 Speed and memory on the board
What it shows
- On LibriSpeech test-clean/test-other, O'ido's on-device arithmetic reaches 3.70%/8.23% word error rate, within 0.12 points of full precision.
On LibriSpeech test-clean/test-other the on-device arithmetic reaches 3.70%/8.23% word error rate (WER), within 0.12 points of full precision, and 3.33%/7.15% with an on-chip 1.3M-parameter language model; a transducer head gives 2.99%/6.67% and an int4 variant fits in 8.3 MB.
Abstract
- On one core of a physical board, the recognizer executes at approximately twice real time.
On one core the recognizer runs at about twice real time (1.97 × ): the text of a 4 s command appears about 8.7 s after it ends in utterance mode (including the 0.8 s end-of-speech wait) and about 5 s after it in streaming mode.
8.2 Limitations
- Streaming roughly halves user-perceived waiting time relative to utterance mode while incurring an accuracy degradation.
Streaming costs accuracy and, at this speed, buys a factor of two in latency, not more.
8.2 Limitations
- Bandwidth-aware tiling increases executed instructions by 2.9% while cutting weight streaming by 2.4x.
The bandwidth-aware tiling deliberately increases instructions, by 2.9%, to cut weight traffic 2.4 ×.
7.5 Speed and memory on the board
Quoted word for word from the full text on arXiv.
The paper
O'ido: Open-Vocabulary Speech Recognition on a $5 Microcontroller without a Neural Accelerator
arXiv, Oct 9, 2026, Open access, CC BY, Preprint, not peer-reviewed
doi.org/10.48550/arxiv.2610.13447
arXiv:2610.13447v1 in cs.SD, also cs.CL, eess.AS
Comments: 11 pages. Code, models and raw board measurements: https://github.com/lokutor-ai/oido
Cite as BibTeX
@misc{sanchez2026oido,
title = {O\'ido: Open-Vocabulary Speech Recognition on a $5 Microcontroller without a Neural Accelerator},
author = {S'anchez, Daniel Varela and Ju'arez, Guillermo Mart'in-Coello},
year = {2026},
eprint = {2610.13447},
archivePrefix = {arXiv},
primaryClass = {cs.SD},
doi = {10.48550/arxiv.2610.13447},
url = {https://arxiv.org/abs/2610.13447}
}