Concept renderWeights alone set a floor: parameters times bytes per weight. Whisper tiny at 39M parameters is about 39 MB in int8, which exceeds the top of the 8-32 MB PSRAM class assumed here. Vosk lists about 300 MB of runtime memory for small models. Measure peak RAM on your board.
Offline speech recognition decides your chip, your memory and your battery. This guide turns the published model sizes into a memory floor you can compare with a chip class. It contains no Duobay price and no measured result from us. Anything the vendors did not publish is marked, and you measure it on your board.
If your product records speech, design it so people can see when audio is captured, for example with an indicator light, and get consent from the people recorded. Take legal questions to counsel.
What do the vendors publish about model size?
Whisper publishes parameter counts. The other three projects publish less. Each row below says what the source gives and what it leaves out.
| Project | What the source states | What is missing or limited | Source |
|---|---|---|---|
| Vosk small models | About 50 MB on disk and about 300 MB of memory at runtime. | Vendor statement of typical values. Measure on your hardware. | Vosk model page, as of October 31, 2026 |
| Moonshine | Family spans higher accuracy than Whisper Large V3 down to tiny models of about 1 MB. | The main page gives no parameter counts and no RAM figures. Read the model card for the exact model you pick. | Moonshine repository, as of October 31, 2026 |
| sherpa-onnx (k2) | Lists a streaming zipformer model for English named sherpa-onnx-streaming-zipformer-en-20M-2023-02-17. | The part of the page we checked gives model names. We did not read file sizes, RAM or speed figures there. Read the individual model cards. | k2/sherpa-onnx pretrained models page, as of October 31, 2026 |
How big are the weights?
Weight storage in MB is the parameter count in millions times the bytes per weight: 4 for fp32, 2 for fp16, 1 for int8 and 0.5 for int4. The parameter counts and the VRAM column come from the OpenAI Whisper README, as of October 31, 2026. The storage columns are our arithmetic from those counts. Example: base has 74M parameters, so int8 is 74 × 1 = 74 MB and fp16 is 74 × 2 = 148 MB.
| Whisper size | Parameters (M) | README VRAM | fp32 (MB) | fp16 (MB) | int8 (MB) | int4 (MB) |
|---|---|---|---|---|---|---|
| tiny | 39 | ~1 GB | 156 | 78 | 39 | 19.5 |
| base | 74 | ~1 GB | 296 | 148 | 74 | 37 |
| small | 244 | ~2 GB | 976 | 488 | 244 | 122 |
The VRAM column is the README's GPU figure. Do not read it as embedded RAM. These are weights only. They ignore file overhead and anything the runtime adds.
Which chip class can hold the weights?
The three chip classes below are planning ranges that are not datasheet values: a microcontroller with 1-2 MB of SRAM, a microcontroller with external PSRAM at 8-32 MB, and a Linux SoC with 256 MB to 4 GB of DRAM. They are assumptions for you to replace with the datasheet of the chip you choose. We did not read any chip datasheet for this article.
The comparison uses the largest figure in each class for the two small classes and the smallest figure for the SoC class. "Exceeds" means the weights alone are larger than that figure, so the model cannot fit. "Below" means only that the weights alone pass the first check. It does not mean the model fits.
| Whisper model and precision | Weights (MB) | vs 2 MB SRAM | vs 32 MB PSRAM | vs 256 MB DRAM |
|---|---|---|---|---|
| tiny, int8 | 39 | Exceeds | Exceeds | Below the bottom |
| tiny, int4 | 19.5 | Exceeds | Below the top | Below the bottom |
| base, int8 | 74 | Exceeds | Exceeds | Below the bottom |
| base, int4 | 37 | Exceeds | Exceeds | Below the bottom |
| small, int8 | 244 | Exceeds | Exceeds | Below the bottom |
| small, int4 | 122 | Exceeds | Exceeds | Below the bottom |
Two readings follow from the arithmetic. No Whisper size listed here fits in 2 MB of SRAM at any precision in the table. Only Whisper tiny at int4, at 19.5 MB, falls under the top of the PSRAM class, and it would not fit in the 8 MB end. Weights are only the first line of the budget, so the next section adds the rest.
How do you estimate peak RAM and compute?
Peak RAM is a sum, and this is a planning rule that we are stating as an assumption. Compute cost is a rough estimate from the parameter count.
P = W + A + B + R (MB)
W = parameters_in_millions × bytes_per_weight
ops_per_second ≈ 2 × parameters × F (rough estimate)
example, Whisper base at int8: W = 74 × 1 = 74 MB
example, 2 × parameters: 2 × 74,000,000 = 148,000,000 operations per stepUnits: W, A, B, R and P are in MB. F is model steps per second, and ops_per_second is in operations per second. The factor of 2 counts one multiply and one add per weight, and it ignores attention costs, memory traffic and any steps that do not touch every weight. Treat it as an order-of-magnitude estimate to compare models, and do not turn it into a speed or battery promise.
Inputs, and which are yours to replace
| Variable | Meaning | Status | What to do |
|---|---|---|---|
| W | Weight storage in MB | Computed | Parameters in millions times bytes per weight. Check the model card for the real file size, because a file can carry extra data. |
| A | Activation and state memory in MB | Vendor did not publish it for the models above | Vendor did not publish. Measure on your board. |
| B | Audio buffer in MB | Your assumption | Sample rate times bytes per sample times the seconds of audio you hold. Replace with your own design values. |
| R | Runtime overhead in MB | Your assumption | Inference library, tokenizer, operating system and your own application code. Replace after a measurement. |
| P | Peak RAM in MB | Computed from the four above | P = W + A + B + R. This is a planning rule that we state as an assumption. |
| F | Model steps processed per second | Your assumption | Frames or tokens per second, depending on the model. Take it from the model card or your own run. |
The sources give no activation memory, real-time factor, accuracy or energy figures for these models on small chips. The vendor did not publish them, so you measure them on your board.
What are the common budget traps?
These follow from the published figures above. They are engineering reasoning. None describes an incident at any company.
- Reading a VRAM column as embedded RAM. The Whisper README lists required VRAM per model size. That column describes the memory the authors list for running on a GPU. It says nothing about what a microcontroller or a Linux SoC needs, so do not copy it into a RAM budget.
- Counting weights and stopping there. The weights are the floor. The peak also includes activations, the audio buffer and the runtime. A model whose weights are close to your RAM size has no room left for the rest.
- Mixing up flash and RAM. Weights can sit in flash, but many runtimes copy them into RAM or map them through a cache. Ask the runtime documentation which one it does before you put the weights in the flash column only.
- Treating the Vosk figure as a guarantee. The 300 MB runtime figure is a typical value stated by the vendor. It already exceeds the bottom of the 256 MB DRAM class used in this article. Your model, language and settings can differ.
- Using a model name without a size. Moonshine spans models from higher accuracy than Whisper Large V3 down to about 1 MB. A budget that says "Moonshine" without the exact model is not a budget.
- Quantizing and assuming nothing else changes. Smaller weights lower the storage line. They can change accuracy and speed, and the sources above give no numbers for either. Re-run your accuracy test after every quantization change.
What should you measure on your own board?
Measure these on the real board with the real model before you commit to a chip. The pass line is set by you from the product requirement, and you record the basis for it.
| What to measure | How to instrument or collect it | Raw data to record |
|---|---|---|
| Peak RAM during a full utterance | Run the real model and runtime on the target board with your longest expected utterance. Read heap and stack high-water marks from the runtime, or sample process memory on a Linux board. | Model file size, runtime version, quantization, utterance length, peak RAM reading, and the RAM left over. |
| Flash or storage footprint | List the model file, tokenizer and runtime binary as stored on the device, including any space reserved for over-the-air updates. | File sizes, partition sizes, free space after the update slot is reserved. |
| Real-time factor | Time the transcription of a fixed set of recordings on the board, with the same clock and power settings as production. Divide processing time by audio length. | Audio length, wall-clock processing time, clock speed, thermal state at start and end. |
| Power during transcription | Put a current meter or power analyzer on the battery rail. Record idle, one utterance and a repeated-use session. | Voltage, current trace, duration of each state, transcribed audio seconds per run. |
| Accuracy on your speech | Record or collect speech from your target speakers and noise conditions with consent. Write the reference transcripts first, then score each model against them with the same scoring rule. | Recording conditions, speaker consent record, reference transcripts, model output, scoring script version. |
| Heat in the enclosure | Run a repeated-use session in the real housing and log chip and surface temperature. Watch for clock throttling. | Temperature trace, clock speed trace, ambient temperature, session length. |
Set the pass line yourself from the product requirement, and record why you chose it. Write it down before you run the test.
What should you decide before you pick a chip?
Take this list to your team and to any supplier who proposes a chip or a model.
- Which exact model, language and quantization does our firmware ship, and where is the model card that states its size?
- Do the weights live in flash and get copied to RAM, or does the runtime read them in place?
- What is the peak RAM at our longest utterance, measured on our board, and how much RAM is left?
- Does the model run streaming or on whole recordings, and which one matches our product?
- How much flash do we reserve for the model, the tokenizer and an update slot?
- Which languages and accents must work, and who supplies consented test speech for them?
- If the product records people, how does the user see and consent to recording, and does a visible indicator light stay on while audio is captured?
- What happens to battery life if the product transcribes all day instead of on demand?
- Which numbers in the budget are measured on our board, and which are still the vendor statements?
Questions about on-device speech recognition budgets
Can a microcontroller with 1 to 2 MB of SRAM run Whisper tiny?
Not on weights alone. Whisper tiny has 39M parameters (OpenAI Whisper README, as of October 31, 2026). That is 39 MB at int8 and 19.5 MB at int4, both well above 2 MB. Models of about 1 MB exist in the Moonshine family, but the vendor page gives no RAM figure, so you need to test the exact model.
Does the Whisper VRAM column tell me how much RAM my board needs?
No. The README lists VRAM per model size, for example about 1 GB for tiny and base. It is not an embedded RAM figure. Use the weights formula in this article as a floor and measure peak RAM on your board.
How much memory does Vosk need?
The Vosk model page says a small model is typically around 50 MB in size and needs about 300 MB of memory at runtime (Vosk models page, as of October 31, 2026). That is a vendor statement of typical values. Confirm it on your hardware.
Can Duobay tell me which ASR model fits my device?
We do not publish prices or measured speech results for third-party models. A Gate 0 Feasibility study covers the architecture choice for your product. Tell us about your device and we will explain how it works.
If you want an architecture choice and a costed bill of materials for your voice device, tell us about your device. You can also read about our audio and voice hardware development.
Sources
All pages accessed October 31, 2026. Model lists and pages change, so re-read them before you decide.
- OpenAI, Whisper README: https://github.com/openai/whisper (accessed 2026-10-31)
- Vosk, models: https://alphacephei.com/vosk/models (accessed 2026-10-31)
- Moonshine AI, repository: https://github.com/moonshine-ai/moonshine (accessed 2026-10-31)
- k2-fsa, sherpa-onnx pretrained models: https://k2-fsa.github.io/sherpa/onnx/pretrained_models/index.html (accessed 2026-10-31)
Planning a voice or audio device? Tell us what it needs to do. A Duobay engineer replies within 1 business day. Send a project brief →