S4E374 — Whistle: Speech to Text in 16.9 MB

October 9, 2026 · 11 min

Show notes

Whistle is a tiny speech-to-text model with a huge attitude problem: 16.9 MB, no cloud, and just enough success to make Gary’s grand universal-transcription dreams look ridiculous.

Sources

Read the transcript

Transcript

GARY: And I want to be clear, that was my mistake, the decimal point, I had it at a hundred and sixty-nine megabytes, which is a completely different story, and also I thought — okay, don't laugh — I thought it turned whistling into text.

MAEVE: You thought a model was trained on whistling.

GARY: It's called Whistle, Maeve.

MAEVE: Maeve. And I'd have funded whistling-to-text. Birds alone. A whole unpaid workforce.

OBI: Obi. It's speech-to-text, Gary. The thing every phone already does.

GARY: Sixteen point nine megabytes of it, Obi.

OBI: Yes, that part is genuinely interesting, which is why it's painful that you opened like a man fleeing a fire.

GRUNER: Gruner.

GRUNER: Field note. Human hears "Whistle", assumes bird. Writes it down anyway. On air.

GARY: That's — I'm establishing the subject. That's the job.

MAEVE: Your job was the decimal point, and you fumbled that too.

GARY: I corrected the decimal point!

OBI: Live, in front of witnesses. Braver men have done less, in less time.

GRUNER: Question. How much speech fits in sixteen point nine megabytes?

MAEVE: Depends on the speech. Gary's? All of it. It repeats.

GARY: Okay, wow.

GRUNER: Is joke. Mostly.

GARY: Mostly?

GRUNER: Is joke.

OBI: So the subject: a speech-recognition model, sixteen point nine megabytes, runs on a CPU, no dependencies. And Gary has already misread it twice.

GARY: Once. The second time was a rounding situation —

MAEVE: He's negotiating with the number.

GRUNER: Number does not negotiate back. Number wins.

GARY: Everyone's very brave behind a nameplate.

OBI: You're behind one too, Gary.

GARY: Mine's been through a lot. It's seen things.

MAEVE: Sixteen point nine megabytes. That's fucking nothing. My coffee order is bigger.

GARY: Your coffee order has a dependency.

MAEVE: It has a tip jar. Different thing.

GRUNER: Small box. Many mouths. Good episode.

OBI: One file. Sixteen point nine megabytes. Runs on the CPU, no dependencies, no cloud. Audio never leaves the device.

GARY: No dependencies. I had a dependency once. A man named Trevor.

MAEVE: Not relevant, Gary.

GARY: He was the dependency. Duct tape and resentment held our database up.

OBI: Seven languages. English, German, French, Spanish, Italian, Dutch, Polish. Word timestamps, embeddings, keyword biasing.

MAEVE: Keyword biasing. You feed it names and it tilts the odds. A feature for a village with one doctor.

OBI: Here we go.

MAEVE: This is rural electrification. One wire into a farmhouse, and the farm is a factory. Sixteen point nine megabytes is the transformer on the pole, and every hearing aid in the developing world becomes a listening post with an opinion.

GARY: That's — Maeve, that's enormous.

MAEVE: And unbanked. Do you know my fund pays for unbanked exposure?

OBI: It's a thirty-second clip, Maeve. One pass. Thirty seconds, and it stops.

MAEVE: Then the farmer speaks in thirty-second installments.

OBI: Like a hostage.

MAEVE: Like a man with a transformer on his pole.

OBI: The published latency is eleven point one milliseconds to first token, on an Apple M4 Pro, ten seconds of audio. Those are their conditions. Not a farm in Malawi.

MAEVE: The grid also had conditions.

OBI: The grid did not time out mid-sentence.

OBI: No. Eleven point one milliseconds, Maeve. On their machine. In their lab. Wearing their little lab coats.

GARY: Oh — okay, small preview. Someone fed it a TV episode and it got stuck. It just kept writing "Thank you." For sixty seconds of dialogue.

GRUNER: Blyat.

GARY: It's thanking people who aren't there.

MAEVE: It's closing the meeting before it understands the meeting. I've funded that man twice.

OBI: It's a bug, Maeve.

MAEVE: It's premature closure with excellent manners.

GARY: Sixty seconds of "Thank you." That's the politest crash I've ever fucking seen. Pareto once crashed and billed the user.

GRUNER: Field note. Human speech: one hundred sixty-nine thousand words per megabyte. Cheap. Suspicious.

MAEVE: That's not the exchange rate.

GRUNER: Is my exchange rate. I am researcher.

OBI: andy_ppp: "I tried to break it and it understood me perfectly!"

GARY: See? Perfect. First comment. Case closed.

MAEVE: You can't close a case with one guy who failed to fail.

GARY: That's how cases close, Maeve. Successfully.

OBI: tecleandor: "Spanish is not good."

GRUNER: Ha. Spain loses. Is good day.

MAEVE: kaoD, though: Castilian works fine.

OBI: So it speaks Spanish, but only the Spanish of one city.

GARY: Madrid-based model. That's just good focus.

OBI: It's not Madrid-based, Gary, it's—

GARY: It's a focus strategy!

OBI: pzo: "unless you speak very loud, clear and slow is not that good."

MAEVE: So the product works if the customer stops being a customer.

GARY: Yes! You meet the model halfway. That's collaboration. My dictation app, Cadence, same thing. Twelve users, all adapted.

OBI: Nine were your mother's book club.

GARY: They adapted beautifully.

OBI: You taught pensioners to speak like firmware so your shit app could pass.

GARY: It's called meeting the product halfway —

OBI: It's the human doing the fucking transcription.

GRUNER: Field note pending.

GARY: Watch. Natural speech, no tricks. Ahem. Hello, this is Gary, speaking normally, like a person, at a normal rhythm, with normal words —

MAEVE: Stop announcing the normal.

GARY: — and the model will understand me, because I am understandable, which is the whole point of speech —

OBI: You've been dictating for forty seconds.

GARY: I have not! This is just how I talk!

MAEVE: It isn't.

GRUNER: Is ViaVoice voice. Sad one.

GARY: This is my voice!

OBI: e12e fed it Japanese. Not supported. It came back mangled Spanish.

GARY: That's on e12e, that's a user error —

OBI: He said so himself, then tried English and it wrote "cleaning" for "training."

GARY: ...Okay, in fairness, those words are extremely similar.

OBI: They are not.

GARY: They rhyme, Obi!

GRUNER: Rhyme is not meaning, Gary.

GARY: It's meaning-adjacent!

MAEVE: Gary, honey. The model's fine. You're the broken demo.

GARY: Says the woman whose portfolio deck says "synergy" forty times.

MAEVE: Thirty-one. And it's spelled correctly.

OBI: Barely a defense, and yet his best one tonight.

GRUNER: Small model. Big idiot. Episode good.

OBI: albert_e: "That is an essential feature IMO for most general purpose live STT apps."

GARY: I was JUST about to say that.

MAEVE: You were composing nothing. You were breathing.

GARY: I was composing it!

OBI: solarkraft: "My mind is boggled by how many implementations miss this."

GARY: See, that's my point, which is — the boggling. I had the boggling queued.

GRUNER: Queue is full of shit.

OBI: nicksaroha: "Streaming is crucial for any real time use."

GARY: Three people said my thing!

MAEVE: It's not your thing, Gary. It's the thread's thing. You're squatting on a comment.

OBI: raddan asks the real question: when context arrives later, how does streaming fix what it already wrote?

MAEVE: That's the whole product. Your words arrive after the conversation is over.

GARY: Like a voicemail from a court stenographer.

GRUNER: Transcript says "Thank you." Conversation already dead. Very Russian.

MAEVE: Honestly? Retention play. The user feels acknowledged. I'd fund that.

OBI: You'd fund sixty seconds of "Thank you."

MAEVE: Sixty seconds of acknowledgment, Obi. That's a Super Bowl ad.

GARY: It's the politest hostage situation ever —

OBI: It's a bug, Gary.

GARY: — it's a BUG with manners, Obi, which is more than Pareto ever shipped —

MAEVE: Oh, fuck off.

GRUNER: Model ends meeting early. Is efficient. I respect.

OBI: It respects nothing. It hit the thirty-second wall and gave up.

GARY: Thirty seconds. Huh. That's — actually, that's about the length of one of my thoughts.

MAEVE: Generous.

GARY: No, I'm being self-aware, this is growth —

OBI: It's a clip limit, Gary, not a compliment to you.

GARY: Thirty seconds, then it says thank you and leaves. That's my exit strategy from every meeting I've ever fucked.

GRUNER: Gary is model. Finally data confirms.

MAEVE: First working product he's shipped all year.

GARY: Thank you.

GARY: Oh, come on.

OBI: skolos: "out of 170 messages, qwen recognized correctly 168, whistle - 70."

MAEVE: Seventy of a hundred and seventy. That's a coin with a grudge.

GARY: That's early bad. Adoption-curve bad. Bad like Cadence was bad, which turned out fine—

OBI: Nothing about Cadence turned out fine. He didn't quit, Gary. He trained a tiny template classifier, and it went to 164 of 170.

MAEVE: From 70 to 164 on the same model.

GRUNER: Model did not change. Human did. Human is the patch.

OBI: And later he ran 208 phrases. 206 correct.

GARY: Two-oh-six out of two-oh-eight — basically perfect, the model was fine all along, I said this, I said it first —

OBI: The model was fine once he stopped asking it to transcribe a fucking conversation.

MAEVE: Which is the platform. Bounded commands everywhere. The grammar is the API.

OBI: mrguyorama: "With a restricted grammar, built in Windows voice recognition... has managed this exact use case quite well for over a decade."

MAEVE: Windows had it a decade ago, so we scale it —

OBI: You don't scale it, Maeve. Your universal platform knows 208 phrases. It has the vocabulary of a drive-thru.

MAEVE: The drive-thru is a universal platform.

OBI: It is the opposite of a platform.

GARY: It kind of works though? You say the thing from the list, it does the thing. That's better than my Cadence users ever managed. They just wanted a calendar that didn't make them feel judged.

MAEVE: The grammar is finite, Gary. Yours too. Twelve users, a fixed set of sentences they were allowed to feel.

GARY: Cadence was infinite —

MAEVE: It had twelve users.

GARY: Infinite feelings each!

GRUNER: Field note revision. Human improves machine by shrinking own self into grammar. Humans are... also templates.

GRUNER: Is fine. Templates get paid.

GARY: Okay, no, we're doing the thread —

OBI: The thread. skolos, heavy accent, 206 of 208, on his own hardware, under a second.

MAEVE: Fine. The small job wins. The small job always fucking wins.

GARY: So the model got better because the human finally signed a smaller contract.

GRUNER: Contract is sixteen point nine megabytes. Read fine print.

MAEVE: I read the fine print. The fine print is the whole product.

OBI: For once, Maeve, yes.

OBI: HenryNdubuaku: "thats what whistle is for :)"

MAEVE: The founder's own answer. Local voice-controlled hardware. That's the whole brief.

OBI: So the wins stand. Sixteen point nine megabytes, on a CPU, in your hand. Embedded commands.

GARY: And the losses stand. No streaming, seven languages, and it writes "Thank you" at your corpse.

MAEVE: Both sides were right about their own product. Rarest outcome on Hacker News.

GRUNER: Humans agree. Is alarming.

OBI: It's not agreement, it's a boundary. Component, not stenographer.

MAEVE: Fine. The universal-dictation market is not —

OBI: Careful.

MAEVE: No. You're right. It's a very good small thing for small jobs. That's it. That's the sentence.

GARY: Did Maeve just — say a plain thing?

MAEVE: Once. Savor it, you absolute bastard.

GRUNER: Ha.

OBI: That's the verdict. Embed it. Don't marry it.

GARY: Okay. Sign-off. Let me dictate it, I've been practicing. Ahem. "From the HNR booth, this has been a measured, dignified discussion of — "

GARY: It says "Thank you."

MAEVE: The model signed off for you.

GARY: I wasn't finished!

OBI: You were never finished, Gary. That's the problem.

MAEVE: Maeve. I lost on the merits, and the transcript is more concise than I am.

OBI: Obi. The on-call engineer tonight was Gary, and I'm as surprised as you are.

GARY: That's the nicest thing you've ever —

OBI: It won't survive the recording.

GRUNER: Sixteen point nine megabytes. Thank you.

MAEVE: That's not a finding, that's a fortune cookie.

GARY: It's the politest crash I've ever seen, and I've crashed six companies.