Running speech models on-device: quantization, memory ceilings, and edge inference tradeoffs

There is a moment, usually during integration, when a mobile engineering team realizes they made their most consequential architectural decision by not making one. Speech models on-device are production reality now, not a research curiosity, and the teams that treat them as a "we'll figure it out later" problem pay for that deferral in the worst currency: a product that doesn't work where users actually need it.
What Quantization Actually Does to a Model
The core idea is straightforward. Instead of storing each model weight as a 32-bit floating point number, you represent it with fewer bits: 16, 8, sometimes 4. The model shrinks, loads faster, runs with less compute, and stops consuming memory like it owns the place.
What you're actually doing is trading numerical precision for efficiency. That sounds clean until you hit the friction.
At 8-bit quantization, most well-trained speech models hold up. The degradation is real but typically inaudible. Push to 4-bit and you're somewhere murkier. Clean audio in a quiet room? Fine. Accented speech, overlapping voices, a coffee shop at noon? That's where precision loss becomes audible. And those are exactly the conditions real people use real products in.
The Sensitivity Isn't Uniform
Attention layers and the front-end acoustic encoder are considerably more sensitive to aggressive quantization than the decoding stages further downstream. I've seen this catch teams off guard repeatedly, and the pattern is consistent: they've already quantized everything uniformly and are staring at accuracy numbers that don't make sense given the bit-width they targeted. The problem isn't the bit-width. It's that they treated the model as homogeneous when it isn't.
Uniform quantization leaves efficiency on the table in some places while quietly breaking things in others. Mixed-precision quantization, where you protect sensitive layers with higher bit-width and compress the rest more aggressively, recovers most of that lost accuracy without proportionally inflating memory cost. It requires profiling the model layer by layer. That work is genuinely tedious, and the implementation is more complex than a uniform pass. But one team I worked alongside got meaningfully better accuracy at the same footprint simply by doing that analysis before touching the inference pipeline. They hadn't changed the model. They'd changed what they were actually measuring.
The Memory Problem Is More Interesting Than It Looks
Available RAM on a mobile device is not the number printed on the spec sheet. The OS, background processes, and the application runtime have already taken their share before your model loads a single weight. The effective ceiling fluctuates based on device state, which makes it feel like a moving target because it is.
Speech models aren't static in their memory consumption, either. During inference, intermediate activations compete for the same pool as the model weights. KV caches in attention-based architectures add to that. The decoded output buffer adds more. A model that sits comfortably in memory at load can exceed its allocation mid-utterance, triggering termination or page eviction.
The failures that result are intermittent. They're hard to reproduce in a controlled environment. They show up in production under specific audio conditions that your benchmarks probably didn't cover, and by the time you're chasing them, you're already explaining to stakeholders why the demo worked and the release didn't.
The discipline that prevents this is almost mundane in its simplicity: measure peak memory during inference under realistic audio conditions, not just model load size. Long utterances, noisy inputs, edge-case vocabulary. If your benchmark only captures the model at rest, it's giving you a number that doesn't describe the thing you're actually shipping.
Latency, Streaming, and Why It's Not a Single Number
On-device inference eliminates network round-trip time. For voice assistants, real-time captioning, and accessibility tools, this isn't a marginal improvement; it changes the fundamental responsiveness profile of the product. But capturing that advantage requires the model to actually support streaming inference.
Most full-sequence encoder-decoder architectures process an entire audio segment before producing anything. Latency scales with utterance length. Streaming-capable architectures emit partial results as audio arrives, which closes the perceived latency gap considerably. The cost is real: more complex state management, higher sensitivity to interruption, and typically some accuracy penalty relative to full-context decoding. There's no free lunch in any direction here.
What I've seen teams get wrong is treating this as a sequential problem. Fit the model first, then add streaming, then fix accuracy. You reach a local optimum at each step, stop there, and convince yourself you've done well. Meanwhile, a team that modeled the full constraint surface from the start made better choices six decisions earlier. The tradeoff space among model size, quantization depth, streaming capability, accuracy, and peak memory is genuinely multidimensional. Working it one axis at a time is how you end up backed into a corner by your own technical debt, with limited options and a hard ship date approaching.
What the Edge Actually Demands
Privacy surfaces first in these conversations, and it deserves to. Audio that never leaves the device cannot be intercepted or logged. For healthcare, financial services, or any application where sensitive conversation is the product surface, that architectural property has concrete and defensible value.
But reliability is the argument that actually determines the decision. A cloud-dependent speech system fails when the user is in a tunnel, on a plane, in a rural area, or during a network disruption they didn't anticipate. On-device inference runs. The user doesn't think about infrastructure; they think about whether the thing works when they need it. On-device answers that question without conditions attached.
The engineering investment is real. Smaller models, quantization applied with precision rather than uniformly, streaming architectures built to handle interruption: these don't emerge from a single sprint or a late-stage optimization pass. They require deliberate design choices made early, and sustained measurement to validate them throughout. What you're comparing that investment to, though, is the alternative: a capable model that can't run where the user actually is. That's not a speech product. It's a speech product that works under favorable conditions, which is a considerably narrower and less useful thing to have built.

