Depth through Recurrence: Towards Ultra-Efficient On-Device ASR
Organizations: Qualcomm AI Research † · McGill University
Abstract
Modern automatic speech recognition (ASR) systems have achieved remarkable accuracy by scaling model depth and capacity, but at the cost of increased memory, energy, and computational demands. On edge devices where ASR is often most needed, such as watches and glasses, deploying such large models is infeasible due to extremely constrained resources. This raises a fundamental question: can we achieve high representational power in deep ASR models without scaling up parameterization? In this work, we revisit the role of depth and identify layer wise representational dynamics, in which most layers learn functionally similar transformations. Motivated by this insight, we propose a block-recurrent ASR architecture that replaces parameterized depth with a small set of recurrent blocks, each consisting of weight-shared layers, thereby preserving effective depth while drastically reducing model size. Through representation-guided grouping and knowledge distillation, block-recurrent models retain the accuracy of large reference models while using an order of magnitude fewer parameters. Across Open ASR Leaderboard benchmarks, a model with only two shared blocks recovers 97.4% of the accuracy of large models on average. The compact backbone further enables efficient on-device personalization through lightweight MoE-LoRA adaptation, allowing user-specific models to match or surpass the accuracy of general-purpose ASR systems with significantly lower inference cost. By reusing weights across recurrent steps, the proposed architecture reduces memory-access overhead and inference energy consumption. Together, these results show that high quality ASR can be achieved without large parameterization, and that structured recurrence provides a principled path towards ultra-compressed, energy-efficient, and personalized speech recognition on the edge.
Figures & tables
| Configuration | Individual Datasets WER % | Overall WER % | ||||||||||
| Model | K | Params. (M) | AMI | Earn | Giga | LS-c | LS-o | SPGI | TED | VoxP | Avg. | |
| STT-480ms | – | 108.9 | 26.23 | 20.56 | 14.15 | 2.54 | 5.97 | 5.80 | 5.58 | 7.60 | 11.05 | – |
| Edge-STT | 2 | 14.2 | 22.43 | 18.76 | 18.42 | 5.98 | 14.29 | 6.36 | 8.83 | 12.10 | 13.40 | +2.35 |
| 4 | 26.8 | 18.16 | 15.24 | 15.60 | 4.29 | 10.55 | 4.72 | 7.34 | 9.89 | 10.72 | -0.33 | |
| 6 | 39.5 | 16.72 | 13.96 | 14.34 | 3.65 | 9.10 | 4.19 | 6.44 | 8.79 | 9.65 | -1.40 | |
| 8 | 52.1 | 14.93 | 13.17 | 13.36 | 3.25 | 8.08 | 3.76 | 6.10 | 8.38 | 8.88 | -2.17 | |
| GPU (Blackwell RTX Pro 6000) | CPU (fp32) | |||||
| Model | Scalar (fp16) | Dot (fp16) | Threadripper 7995WX | Apple M4 Pro | ||
| STT-480ms | – | |||||
| Edge-STT | 1 | |||||
| 2 | ||||||
| 4 | ||||||
| 6 | ||||||
Appendix figures & tables17 assets
Supplementary material from the paper’s appendix.
Appendix
| Model | Encoder | Encoder Params. | Decoder | Decoder Params. | Enc/Dec Param Ratio |
| STT-480ms | 17 FastConformer blocks | 108.9M | RNNT/CTC head | 5.9M | 18.5x |
| Parakeet-v2 | 24 Conformer blocks | 608.9M | TDT head | 8.9M | 68.4x |
| Canary-1B-Flash | 32 FastConformer blocks | 883.6M | 4 Transformer blocks | 72.6M | 12.1x |
| Granite-4.0-1B-Speech | 16 Conformer blocks | 440.2M | LLM decoder | 1.8B | 0.24x |
| Model | STT-480ms | Parakeet-TDT-0.6B-v2 |
| encoder layers | 17 | 24 |
| hidden dim. | 512 | 1024 |
| encoder type | FastConformer with casual chunked attention | Conformer |
| att_context_size | [70, 6] | – |
| decoder type | hybrid CTC/RNN-T | TDT |
| tokenizer | BPE | BPE |
| Model | Block count K | Grouping (start layer index, end layer index) |
| STT-480ms | 2 | [(1, 16), (17, 17)] |
| 4 | [(1, 13), (14, 15), (16, 16), (17, 17)] | |
| 6 | [(1, 11), (12, 12), (13, 13), (14, 15), (16, 16), (17, 17)] | |
| 8 | [(1, 8), (9, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17)] | |
| 10 | [(1, 4), (5, 7), (8, 9), (10, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (17, 17)] | |
| Parakeet-TDT-0.6B-v2 | 4 | [(1, 5), (6, 8), (9, 23), (24, 24)] |
| Dataset | Domain | Utterance Length | Samples for STT (train/val.) | Samples for Parakeet (train/val.) |
| LibriSpeech | Read speech | 0.8-30 s | 281242 / 5551 | 278978 / 5417 |
| Tedlium v3 | Talks / lectures | 0.5-15 s | 265274 / 500 | 249141 / 486 |
| VoxPopuli | Parliamentary speech | 0.5-30 s | 181050 / 1742 | 173958 / 1647 |
| AMI | Meetings | 0.5-30 s | 73141 / 9196 | 56627 / 7090 |
| Earnings22 | Financial calls | 1-30 s | 47564 / 2456 | 33906 / 1849 |
| GigaSpeech | Read + spontaneous | 0.5–20 s | 910140 / 5688 | 856002 / 4656 |
| Split | # of Speakers | Total duration (min) |
| train | 2507 | 70452 |
| dev | 279 | 8037 |
| test | 106 | 3986 |
| Hyperparameter | Value |
| batch size | 8 |
| learning rate (LR) | 5e-4/5e-5 |
| LR scheduler | constant |
| optimizer | AdamW |
| 0.9 | |
| 0.98 |
| Hyperparameter | Value |
| batch size | 8 |
| learning rate (LR) | 5e-4 |
| LR scheduler | constant |
| optimizer | AdamW |
| 0.9 | |
| 0.98 |
| Model | LS vs TED | LS vs VoxP | TED vs VoxP |
| STT-480ms | 0.9989 | 0.9977 | 0.9992 |
| Parakeet-v2 | 0.9969 | 0.9943 | 0.9945 |
| Model | Params (M) | Avg. WER |
| Moonshine-tiny | 30 | 12.54% |
| Moonshine-streaming-tiny | 30 | 12.03% |
| Edge-STT K=4 (ours) | 26.8 | 10.72% |
| Moonshine-base | 60 | 9.67% |
| Edge-STT K=6 (ours) | 39.5 | 9.65% |
| Whisper-large-v3-turbo | 800 | 7.80% |
| Model | Effective memory (MB) | AMI | Earn | Giga | LS-c | LS-o | SPGI | TED | VoxP | Avg. WER |
| STT Teacher | 217.8 | 26.23 | 20.56 | 14.15 | 2.54 | 5.97 | 5.80 | 5.58 | 7.60 | 11.05 |
| STT Teacher (W4) | 54.5 | 28.97 | 21.85 | 15.54 | 2.94 | 7.37 | 6.77 | 6.33 | 8.32 | 12.26 |
| Edge-STT K=4 | 53.6 | 18.16 | 15.24 | 15.60 | 4.29 | 10.55 | 4.72 | 7.34 | 9.89 | 10.72 |
| Parakeet Teacher | 1217.8 | 11.16 | 11.09 | 9.73 | 1.70 | 3.19 | 2.18 | 3.37 | 5.96 | 6.05 |
| Parakeet Teacher (W4) | 304.5 | 12.53 | 11.55 | 9.97 | 1.76 | 3.67 | 2.5 | 3.45 | 6.34 | 6.47 |
| Edge-Parakeet K=6 | 320.0 | 12.60 | 11.52 | 11.96 | 2.57 | 5.96 | 2.56 | 4.47 | 7.08 | 7.34 |
| Training Objective | LS-c | LS-o | Avg. WER |
| Decoder KL only | 4.65 | 11.65 | 8.15 |
| Task loss + decoder KL | 3.87 | 10.17 | 7.02 |
| Task loss + encoder KD + decoder KL (ours) | 3.84 | 9.79 | 6.81 |
| Model | Avg. WER (%) |
| LoRA baseline | 8.69 |
| MoE-LoRA (ours) | 8.03 |
| GPU Scalar | CPU (fp32) | ||
| Model | Blackwell RTX Pro 6000 | Threadripper 7995WX | |
| STT-480ms | – | ||
| Edge-STT | 1 | ||
| 2 | |||
| 4 | |||
| 6 |
| Model | Apple M4 Pro | |
| STT-480ms | – | |
| Edge-STT | 1 | |
| 2 | ||
| 4 | ||
| 6 | ||
| 8 |
Automatic Speech Recognition
Automatic speech recognition converts spoken language into text across speakers, languages, domains, and recording conditions.
See all 484 papers