the showdown · real outputs · zero cherry-picking

Other tools transcribe.
FunButton rewrites.

Same messy spoken input. Five scenarios. The left column is what Whisper hears — what most apps paste. The right column is what FunButton sends to your cursor.

Captured live from Groq Whisper Large v3 Turbo + Llama 3.3 70B with the exact prompts in the app source. Re-run yourself: scripts/capture_showdown.sh

scene 01Mail.app · Email mode

The rambling email follow-up

Real meeting context, real fillers, real "um you know".

What Whisper heard (raw transcript)
Hi I'm Russell I wanted to like you know follow up about the deal we discussed last week and uh I think we should probably move forward but I'm not sure about the pricing maybe we could do something like 30k instead of 25 since uh you know the scope. Grew a bit. Let me know what you think.
What FunButton pasted
I wanted to follow up on the deal we discussed last week. I think we should probably move forward, but I have some concerns about the pricing. Given that the scope has grown a bit, I was thinking that 30k might be a more suitable price point than the original 25k. Let me know what you think.
what we actually said into the mic →

Hi um Russell I wanted to like you know follow up about the deal we discussed last week and uh I think we should probably move forward but I'm not sure about the pricing maybe we could do something like 30K instead of 25 since uh you know the scope grew a bit. Let me know what you think.

scene 02Slack · Slack mode

The Slack message you change mid-sentence

Said one thing, immediately changed your mind. The raw transcript is wrong. The cleanup is right.

What Whisper heard (raw transcript)
Hey can you ship that PR by EOD wait actually no make it tomorrow morning since the build is broken in CI right now.
What FunButton pasted
so just ship that pr tomorrow morning, the build's broken in ci right now anyway 👍
what we actually said into the mic →

Hey can you ship that PR by EOD wait actually no make it tomorrow morning since the build is broken in CI right now

scene 03Cursor · Code mode

The arrow function with spoken symbols

"open paren camelCase user data comma options close paren fat arrow…" Try this in Whisper alone.

What Whisper heard (raw transcript)
Open paren camel case user data comma options close paren fat arrow object dot keys open paren user data close paren dot filter open paren camel case k fat arrow not k dot starts with open paren quote underscore quote close paren close paren.
What FunButton pasted
(userData, options) => Object.keys(userData).filter(k => !k.startsWith('_'))
what we actually said into the mic →

open paren camelCase user data comma options close paren fat arrow object dot keys open paren user data close paren dot filter open paren camelCase k fat arrow not k dot starts with open paren quote underscore quote close paren close paren

scene 04VS Code · Code mode

The function signature with types

Speak the function. Get the syntax. Plus types.

What Whisper heard (raw transcript)
function snake case fetch user profile takes user id of type number returns promise of user
What FunButton pasted
fetchUserProfile(userId: number): Promise<User>
what we actually said into the mic →

function snake_case fetch user profile takes user id of type number returns promise of user

scene 05Notes · Auto mode

The "actually no scratch that" pivot

The wedge in one sample. Nobody else solves this.

What Whisper heard (raw transcript)
Let me draft a quick response to that customer about um the refund situation actually no scratch that I'll handle it tomorrow morning when I have my notes in front of me.
What FunButton pasted
I'll handle the refund situation tomorrow morning when I have my notes in front of me.
what we actually said into the mic →

Let me draft a quick response to that customer about um the refund situation actually no scratch that I'll handle it tomorrow morning when I have my notes in front of me

Stop typing. Start talking.

Your voice, your machine, your cursor. Local-first, dev-grade, no API key required (with Ollama).