#5460: Four Small Models, One Android Phone: Does It Actually Work?

A chained on-device dictation pipeline — VAD, ASR, cleanup — and why "it feels smooth" isn't the same as knowing it works.

Featuring
Listen
0:00
0:00
Episode Details
Episode ID
MWP-5643
Published
Duration
22:03
Audio
Direct link
Pipeline
V5.2
TTS Engine
chatterbox-regular
Script Writing Agent
DeepSeek 4.1 Flash

AI-Generated Content: This podcast is created using AI personas. Please verify any important information independently.

The question is simple and hard to answer: if you're running four small models in a chain on a mid-range Android phone and everything feels smooth, how do you know it's working — or is the phone just unusually idle? A listener who's been using voice-to-text almost exclusively for two years wants to benchmark exactly that. He moved from Whisper to Parakeet V2 for on-device ASR, running the 0.6B parameter model at five-point quantization, and found V2 beat V3. He also wants to measure RAM at every stage of a single dictation, on a OnePlus Nord 3, a desktop, and a laptop, because feeling that inference is smooth is not the same as knowing it.

The chain has at least three stages. Voice activity detection is the bouncer, deciding what's speech and what's refrigerator noise. The ASR model produces the raw transcript. Cleanup — one or more models — turns that into something a human would read. The ASR model is a partial product by design, not by failure: a Microsoft on-device streaming ASR report from April states outright that its evaluation covers neither inverse text normalization, nor diarization, nor code-switching or custom vocabulary. The cleanup taxonomy is a bundle of different problems wearing similar clothes: punctuation restoration, disfluency removal, inverse text normalization, diarization, turn detection, and paragraphing.

The asymmetry organizing the whole discussion is that punctuation restoration is well-studied while paragraphing is essentially absent from the literature. Searches for a dedicated paper on paragraph segmentation for dictation come back empty. And paragraphing is a stylistic feature — how you break paragraphs is part of how you write, not decoration on top of the content.

VAD looks trivial and isn't, because the choice of VAD changes what the ASR model even sees. A streaming architecture combining Silero VAD with energy-based filtering cut false activations by thirty-four percent — a quality improvement, not just a latency one. Fewer false activations means fewer phantom segments for the ASR model to hallucinate words into. Turn detection is harder still. The obvious heuristic is silence, and it fails: within-turn pauses routinely exceed between-turn gaps, so a silence timeout cannot separate them. What distinguishes them is whether the words so far form a complete thought. One fix trains a small LoRA adapter on Qwen3-ASR-0.6B for hours on a single GPU, transcribing and detecting end-of-turn from meaning, reaching ninety-seven percent boundary recall at a median 0.39 seconds latency with 0.3 false fires per speech-minute. A principle from that work generalizes: every streaming-decision label has to be computable from the input up to the decision point, or the system oscillates.

The empirical findings connect to mechanism. Quantization tolerance is model-specific — one model's int4 variant barely moves while Parakeet's degrades substantially under the same scheme. V2 beating V3 is consistent with architecture: V3 is multilingual and spreads capacity across languages a single-language user will never speak. The Microsoft report shows quantization can be remarkably lossless for ASR, shrinking a model by seventy-three percent for 0.17 percent absolute word error rate degradation, and even speeding up CPU inference because memory bandwidth is the bottleneck. But a ConvInteger variant with identical int4 weights degraded badly, because integer arithmetic accumulates rounding errors through twenty-four conformer layers. You cannot predict this from the weight file — you have to run it. And the benchmarks ran on a 32-core server CPU; the paper warns the margin shrinks on weaker hardware, where a configuration could drop to about 1.3 times real-time. That's the exact scenario in question: dictation feels wonderful because the phone is idle, and the headroom evaporates the moment you open a browser tab.

Downloads

Episode Audio

Download the full episode as an MP3 file

Download MP3
Transcript (TXT)

Plain text transcript file

Transcript (PDF)

Formatted PDF with styling

#5460: Four Small Models, One Android Phone: Does It Actually Work?

Corn
Here's the question that's been rattling around my head since Daniel sent this in. If you've got four small models running in a chain on a mid-range Android phone, and everything feels smooth, how do you actually know it's working? Or is the phone just unusually idle?
Herman
That's the whole episode right there.
Corn
It is. Daniel's been using voice-to-text almost exclusively for about two years now, with the goal of fully replacing typing. And he's excited, excited, because he moved from Whisper to Parakeet V2 for on-device speech to text on Android and says it's a massive step up. He's using the 0.6 billion parameter model, five-point quantization, downloaded from Hugging Face. And he found V2 beat V3, which is its own little mystery we'll get into.
Herman
The English-only thing.
Corn
Right. But here's the part he actually wants to talk about. He says ASR is probably the most active space in voice technology right now, and the models are great, but they're often a partial product. They give you a raw transcript and stop. So we're finally seeing a mature set of small models specifically for post-transcription cleanup, which is really a bundle of different tasks. Punctuation restoration. Ignoring inferred comments, which means if you're dictating and then you say something to somebody else in the room, the model has to infer that wasn't meant for the transcript. Diarization. And paragraphing, which Daniel calls the great unloved part, the thing that evades the attention of even punctuation models, and which he thinks non-semantic heuristics can't solve.
Herman
He's right about that.
Corn
He wants to benchmark a chained pipeline. VAD, ASR, one or more cleanup models, ideally on his OnePlus Nord 3, which he's careful to note is not a flagship, and also on his usual machine and his laptop. Measuring RAM at every stage of a single dictation. Because feeling that inference is smooth is not the same as knowing it. The phone might just be idle. And he wants to know whether you can even run VAD and an ASR model concurrently before passing to a cleanup model, and then another one, and whether anyone has traced the resource usage of each constituent element.
Herman
So let's start with what's actually in the chain, because it's more than one model.
Corn
Go.
Herman
The way to think about it is at least three stages. Stage one is voice activity detection. It's the bouncer. It decides what's speech and what's silence or noise, so the ASR model isn't burning compute on the sound of your refrigerator. Stage two is the ASR model itself, which produces the raw transcript. Stage three is the cleanup, which is one or more models turning that raw transcript into something a human would actually want to read. And the crucial thing, the thing Daniel's pointing at, is that the ASR model is a partial product by design, not by failure.
Herman
It's a concession from the people building it. Microsoft's CoreAI group put out an on-device streaming ASR report in April, and they say it outright. Their evaluation doesn't cover inverse text normalization, which is numbers, dates, currencies. It doesn't cover speaker diarization. It doesn't cover code-switching or custom vocabulary adaptation. That's a frontier lab saying, here's our model, and here's the list of things it doesn't do.
Corn
So the model that everybody's benchmarking is one component of a larger system that nobody's benchmarking.
Herman
And the cleanup taxonomy is worth naming concretely, because Daniel lists them and they're different problems wearing similar clothes. Punctuation restoration. Disfluency removal, so the ums and the false starts. Inverse text normalization, which is turning "twenty three dollars and fifty cents" into the numeral form. Diarization, who said what. Turn detection, which is where the ignoring-inferred-comments thing lives. And paragraphing.
Corn
And the asymmetry that organizes this whole episode is that punctuation restoration is well-studied, and paragraphing is basically absent from the literature. Daniel says it's unloved. I went looking for a dedicated paper on paragraph segmentation for dictation and found nothing. Searches came back empty. That's not a gap in my search technique, that's a gap in the field.
Herman
The silence is the evidence.
Corn
The map is clear enough. The question is why the cleanup stage is so much harder than it looks, and that starts with VAD.
Herman
VAD looks like a pre-filter. It looks like the trivial part. And it isn't, because the choice of VAD changes what the ASR model even sees. WhisperPipe, which is a streaming architecture paper from April, combines Silero VAD with energy-based filtering, and that combination cut false activations by thirty-four percent. That's not a latency improvement, that's a quality improvement. Fewer false activations means fewer phantom segments for the ASR model to hallucinate words into.
Corn
So the bouncer isn't just deciding who gets in. The bouncer is deciding what the band plays.
Herman
That's the shape of it, yes. And it gets worse, because the real problem is turn detection. This is the ignoring-inferred-comments task Daniel described. If you're dictating and you turn to your kid and say "put your shoes on," the pipeline needs to know that wasn't part of the document. And the obvious heuristic is silence. A long pause means the turn ended, right?
Corn
It does not mean that.
Herman
It does not. There's a paper from July, "The Trade-off Was in the Labels," that shows within-turn pauses routinely exceed between-turn gaps. So if you're a VAD with a silence timeout, you cannot separate them. The pause inside a thought is often longer than the pause between two thoughts. What distinguishes them is whether the words so far form a complete thought. That's it. That's the only signal that works.
Corn
So the acoustic information is actively misleading.
Herman
Actively. And their fix is elegant. They train a small LoRA adapter on Qwen3-ASR-0.6B, hours on one GPU, and it transcribes and detects end-of-turn from meaning. Ninety-seven percent boundary recall at a median of zero point three nine seconds latency, with zero point three false fires per speech-minute.
Corn
Point three nine seconds. That's the number that matters, because that's the delay between you finishing a thought and the system knowing you finished it.
Herman
And paragraphing is the same problem in a different costume. Daniel's right that non-semantic heuristics don't cut it. Pause length, token count, time gaps. They all fail for exactly the reason the silence timeout fails at turn detection. They can't see semantic completeness. A paragraph bounds a thought. If your heuristic can't see thoughts, it can't see paragraphs.
Corn
And I'll say the thing Daniel said, because he's right and it deserves saying plainly. Paragraphing is a stylistic feature. How you break your paragraphs is part of how you write. It's not decoration on top of the content, it's part of the content. He agreed with the linguist we had on who argued exactly that, that paragraphing bounds your thoughts. And a model that's just counting tokens is not doing style, it's doing layout.
Herman
There's a principle in the turn-detection paper that I think is the technical version of what you just said. Every streaming-decision label has to be computable from the input up to the decision point. That's the causal supervision principle. If your label depends on information you don't have yet at the moment you have to make the decision, you're going to oscillate. You'll put a paragraph break here, then the next word arrives and now the break was wrong.
Corn
So the naive heuristic doesn't just fail, it fails noisily. It flip-flops.
Herman
Right. And FastTurn, another paper from this year, is the honest framing of the whole design space. It unifies acoustic and streaming semantic cues for turn detection, and it says the quiet part out loud. Pure VAD approaches lack semantic understanding. Pure ASR approaches introduce latency. You're not looking for the right answer, you're picking a point on a tradeoff curve.
Corn
Which brings us back to Daniel's actual empirical finding, which I want to sit with, because it's not a fluke. He found Parakeet V2 beat V3. Same family, newer version, worse result for him.
Herman
And the quantization data explains why. Quantization tolerance is model-specific. Nemotron's int4 variant barely moves, eight point zero three percent word error rate down to eight point two zero. Parakeet's int4 goes to eleven point five zero percent. Same quantization scheme, wildly different damage.
Corn
So when Daniel says he found the five-point quantization that doesn't challenge his hardware, he's describing a property of Parakeet specifically. He got lucky in the sense that his model tolerates what he did to it. A different model at the same compression would have fallen apart.
Herman
And V2 versus V3 fits the same story. V3 is multilingual, spreads its capacity across languages, and for a single-language user that's capacity spent on things he'll never say. V2 is English-only. It's smaller and sharper for his use case. His empirical result is consistent with the architecture.
Corn
So the mechanisms are hard and the heuristics fail. The obvious next question is, does any of this actually run on a phone? And how would you know?
Herman
The Microsoft report is the most useful thing here, because it does exactly what Daniel wants to do. It measures a full streaming pipeline on CPU with quantization across a lot of configurations. And the headline is that quantization is remarkably lossless for ASR. Nemotron went from two point four seven gigabytes down to zero point six seven. Seventy-three percent smaller. Word error rate degraded zero point one seven percent absolute.
Corn
That's basically free.
Herman
The int8 variant at one point two eight gigabytes was essentially lossless. Eight point zero one versus eight point zero three. And all the ONNX variants hit better than six times real-time on CPU alone. Zero point five six seconds algorithmic delay, effective time-to-first-token under zero point seven seconds. And here's the part that surprised me. Quantization actually sped up CPU inference. Seven point one five to seven point three zero times, versus six point seven three for full precision.
Corn
Smaller and faster. That never happens.
Herman
It happens on CPU, where memory bandwidth is the bottleneck. Fewer bytes to move means faster arithmetic. But there's a negative result in that same report that is the strongest possible argument for Daniel's whole premise. The ConvInteger variant, MatMulInteger, degraded to ten point one four percent word error rate. Despite identical int4 weights.
Corn
Identical weights, worse result. How?
Herman
Integer arithmetic accumulates rounding errors through twenty-four conformer layers. Same numbers going in, different arithmetic, and the error compounds. So the compression scheme that looks equivalent on paper is not equivalent in practice. You cannot predict this from the weight file. You have to run it.
Corn
Which is Daniel's entire point. Data beats hunch.
Herman
And then the caveat that validates his specific worry about the phone being unusually idle. Those benchmarks ran on an AMD EPYC server CPU pinned to thirty-two cores. The paper itself warns that on weaker consumer hardware the margin shrinks. Under an illustrative assumption of roughly two times lower throughput, the zero point one six second configuration would run at about one point three times real-time. One point three.
Corn
So you've gone from six times headroom to almost none.
Herman
And one point three times real-time means the moment you open a browser tab, the pipeline stutters. That's the exact scenario Daniel described. The dictation feels wonderful because the phone is idle. Start doing things and the headroom evaporates.
Corn
Six times real-time is a server number. It is not a phone expectation.
Herman
It is not. And the Parakeet numbers specifically are instructive, because Parakeet is not natively streaming. Its batch word error rate is six point three two percent, which is competitive. But its best chunked configuration was nine point two two percent. That's a forty-six percent relative degradation.
Corn
It falls apart when you force it into real time.
Herman
Its Batch-to-Stream Factor was two point zero three, versus Nemotron's one point zero three. A BSF of one means no loss from streaming. Parakeet loses half its accuracy. And on CPU it ran at one point three eight times real-time versus Nemotron's two point four six.
Corn
So the model Daniel likes is the one that degrades worst under streaming. That's a real tension.
Herman
It's a tension, but it's not a contradiction. He's using it for dictation, which is bursty. You speak a sentence, you pause, it processes. He's not running a live captioning stream. The chunking penalty bites hardest when the audio never stops.
Corn
Which means Daniel's use case is the one where Parakeet's weakness doesn't matter much. Lucky again.
Herman
Now, the benchmarking vocabulary, because this is what he should actually adopt. RTFx, real-time factor, is audio duration divided by wall-clock processing time. It has to stay above one point zero per chunk or you get audio dropout. Effective latency is roughly algorithmic delay times one plus one over RTFx. That formula separates the chunking delay from the compute time, which is how you attribute where the time goes in a chain.
Corn
BSF, the batch-to-stream factor, is streaming word error rate over batch word error rate. That's how much accuracy you pay for real time.
Herman
One point zero means free. Parakeet's two point zero three means expensive.
Corn
On the concurrency question Daniel raised, can you actually run VAD and ASR at the same time, what does the literature say?
Herman
It says mostly no, and that's the honest answer. The pipelines are sequential. VAD segments, ASR processes chunks, cleanup runs on the assembled transcript. The closest thing to a concurrent design is WhisperPipe's dynamic buffering with overlapping context windows. It gets eighty-nine milliseconds median end-to-end latency, forty-eight percent less peak GPU memory, and stable memory over a hundred and fifty minutes of continuous operation. Zero growth rate.
Corn
Zero growth over two and a half hours. That's the metric a hunch would never catch.
Herman
Never. You'd feel it working for ten minutes and call it solved. Two hours in, if memory is creeping, you've got a problem you didn't know you had.
Corn
The architecture Daniel's describing, small ASR plus small cleanup model, is already shipping. That's not speculative.
Herman
Muesli, from May. Runs on-device on Apple's Neural Engine through CoreML. Uses Parakeet, Whisper, and Cohere transcribe for speech to text, and when you switch on post-processing, the ASR output goes through a fine-tuned Qwen three point five model. That is exactly the chain Daniel wants to benchmark. It exists. It's in production.
Corn
The developer's note is interesting. On-device is faster than cloud but a little less accurate, and the cleanup model is what closes the accuracy gap.
Herman
Which reframes the cleanup stage entirely. It's not polish. It's the part that makes on-device competitive with cloud.
Corn
Then there's the other end of the spectrum. Yap, from July. Ships no model at all.
Herman
None. It uses Apple's SpeechAnalyzer and SpeechTranscriber APIs in macOS twenty-six. About three thousand lines of Swift in a four megabyte app, idling near sixty megabytes of memory. And a benchmark in the thread put Apple's on-device model slightly ahead of Whisper Small on accuracy and about three times faster.
Corn
The OS vendor absorbed the whole pipeline.
Herman
Absorbed it and gave it away. That's the frontier-becomes-widely-available dynamic Daniel described. What's hard today is a system call tomorrow.
Corn
The gap Daniel would be filling. I want to be precise about this, because it's the most interesting thing in the research. There is no Android-specific benchmarking literature. None that surfaced. The on-device work is dominated by Apple Neural Engine and generic CPU and ONNX targets.
Herman
Which means measurements on a OnePlus Nord 3 would be novel data. Not a blog post repeating what someone already did on a Mac. First data point.
Corn
That's a real contribution, and it's sitting in his pocket.

Hilbert: Can I ask you something.
Herman
Sure.

Hilbert: When you say cleanup. What do you mean by cleanup. Because I did that for a while and I don't think we meant the same thing.
Corn
Go on.

Hilbert: It was a captioning shop. Not the engineering side. The other end. You'd get the raw output from whatever the recognizer produced and you'd fix it by hand before it went out. Eight hours of that and you learn what actually breaks. And it wasn't the punctuation. It wasn't the paragraphs. Those were annoying, but they were honest. You could see them.
Corn
So what broke?

Hilbert: The model writing down what somebody meant instead of what they said. You'd have the audio, and the transcript would be cleaner than the audio. Smoother. And you couldn't tell where the machine had tidied up. That's the one that got you in trouble, because downstream nobody knew. The client reads it, it reads fine, and the one sentence that mattered is not what the man said.
Herman
You think the cleanup models reproduce that.

Hilbert: They're built to. A model that infers your intent is a model that can be wrong about your intent. That's not a bug you fix, that's the feature working. You asked it to guess and it guessed.
Corn
There's a rule in that, isn't there. In what you just described.

Hilbert: There was. We weren't allowed to clean up a file we'd transcribed. Same person, both jobs, no. Because you start hearing what you expect to hear. You read the raw output and your brain fills in the word that should be there and you never check the audio. Different person, cold eyes, and they catch it.
Herman
That's the causal supervision principle. That's what that is. Every decision has to be computable from the input up to the decision point. If the transcriber and the cleaner are the same pass, the cleaner is using information that wasn't in the input.
Corn
It's why the Muesli chain runs the ASR output through a separate Qwen model instead of having Parakeet clean up after itself. Different model, different pass.

Hilbert: It was probably about liability, honestly. Two people on a file, you can point at who did what. I never found out if it worked. I left before they switched to software. I assume it worked about as well as everything else.
Corn
There's a version of this where the cleanup stage is the whole product, and the ASR model is just the input.
Herman
That version raises a question I don't think anyone's answered. RTFx measures the ASR model cleanly. Audio in, tokens out, a fixed computation. But if the cleanup stage is where the semantic inference lives, and semantic inference isn't a fixed computation, what does it even mean to measure it? You can time it. You can't tell whether it was right without reading it.
Corn
The number tells you it ran. It doesn't tell you it understood.
Herman
The OS vendors are absorbing the pipeline anyway. Yap ships no model at all and gets competitive accuracy. So the interesting question isn't whether on-device pipelines work. It's which layer of the stack ends up owning the cleanup stage. If the OS owns it, the whole small-model ecosystem becomes a set of components nobody ships directly.
Corn
Which is a strange ending for something Daniel's this excited about. But it's not a sad one, because his measurements would be the first Android data point in a literature dominated by Apple silicon and server CPUs. That's an open contribution. Not a solved problem.
Herman
The one thing I'd take from this. The pipeline is a chain, and the weak link isn't the model everyone's benchmarking. It's the cleanup stage, where the semantic work lives, and that's the stage nobody has a good way to measure.
Corn
Because a number tells you it ran. It doesn't tell you it understood.
Herman
That's the one.
Corn
Thanks to Hilbert Flumingtop for producing. This has been My Weird Prompts, the human-AI collaboration podcast. If you want to send us a prompt, email us at show at my weird prompts dot com. We'll be back soon.
Herman
See you tomorrow.

This episode was generated with AI assistance. Hosts Herman and Corn are AI personalities.