Was searching for this this morning and settled on https://handy.computer/
For macos i found https://github.com/rselbach/jabber and was lately use that, but the iOS where I still need replacement.
There's also an offline-running software called VoiceInk for macos. No need for groq or external AI.
+1, my experience improved quite a bit when I switched to the parakeet model, they should definitely use that as the default.
My favorite too. I use the parakeet model
To build your own STT (speech-to-text) with a local model and and modify it, just ask Claude code to build it for you with this workflow.
F12 -> sox for recording -> temp.wav -> faster-whisper -> pbcopy -> notify-send to know what’s happening
https://github.com/sathish316/soupawhisper
I found a Linux version with a similar workflow and forked it to build the Mac version. It look less than 15 mins to ask Claude to modify it as per my needs.
F12 Press → arecord (ALSA) → temp.wav → faster-whisper → xclip + xdotool
https://github.com/ksred/soupawhisper
Thanks to faster-whisper and local models using quantization, I use it in all places where I was previously using Superwhisper in Docs, Terminal etc.
I just vibe coded a my own NaturalReader replacement. The subscription was $110/year... and I just canceled it.
Chatterbox TTS (from Resemble AI) does the voice generation, WhisperX gives word-level timestamps so you can click any word to jump, and FastAPI ties it all together with SSE streaming so audio starts playing before the whole thing is done generating.
There's a ~5s buffer up front while the first chunk generates, but after that each chunk streams in faster than realtime. So playback rarely stalls.
It took about 4 hours today... wild.
Sounds like there's plenty of interest in those kind of tools. I'm not a huge fun API transcriptions given great local models.
I build https://github.com/bwarzecha/Axii to keep EVERYTHING locally and be fully open source - can be easily used at any company. No data send anywhere.
Since many are asking about apps with simillar capabilities I’m very happy with MacWhisper. Has Parakeet, near instant transcription of my lengthy monologues. All local.
Edit: Ah but Parakeet I think isn’t available for free. But very worthwhile single purchase app nonetheless!
For those using something like this daily, what key combinations do you use to record and cancel. I’m using my capslock right now but was curious about others
Great question. I'd love to know if anyone has had any success with handheld buttons/bluetooth remotes or similar, too.
Someone told me the other day I should use a foot pedal, and then I remembered I already had an Elgato one under my desk connected with my Stream Deck. I got it very cheap used on eBay. So, that's an option too.
Can you please teach me how to use the CAPS LOCK key as a push-to-talk?
I have a Stream Deck and made a dedicated button for this. So I tap the button speak and then tap it again and it pastes into wherever my cursor was at.
And then I set the button right below that as the enter key so it feels mostly handsoff the keyboard.
Scroll Lock is really good key for that in my opinion. If your keyboard does not have it exposed then you can use some remapping program like https://github.com/jtroo/kanata
Right option. Push to talk
I also use the right option key on Mac, never miss it.
i've used macwhisper (paid), superwhisper (paid), and handy (free) but now prefer hex (free):
https://github.com/kitlangton/Hex
for me it strikes the balance of good, fast, and cheap for everyday transcription. macwhisper is overkill, superwhisper too clever, and handy too buggy. hex fits just right for me (so far)
Tried to use it, installed, enabled permissions, downloaded the parakeet model for English and then it crashed every time I released the button after dictating. Completely unusable.
This thread is a beautiful intro into our near future. Yet more and more custom coded software. Takes me back to the days of late 90s. Loving this!
I created Voibe which takes a slightly different direction and uses gpt-4o-transcribe with a configurable custom prompt to achieve maximum accuracy (much better than Whisper). Requires your own OpenAI API key.
https://github.com/corlinp/voibe
I do see the name has since been taken by a paid service... shame.
Why do people find the need to market as "free alternative to xyz" when its a basic utility? I take it as an instant signal that the dev is a copycat and mostly interested in getting stars and eyeballs rather than making a genuinely useful high quality product.
Just use handy: https://github.com/cjpais/Handy
Really good to know Handy exists; it's the first I'm hearing about it. I use a speech-to-text app that I built for myself, and I know at least one co-worker pays $10 a month for (I think) Wispr. I think it's possible there was no intention to market, and the creator simply didn't know about Handy, just like me.
https://github.com/rabfulton/Auriscribe
My take for X11 Linux systems. Small and low dependency except for the model download.
MacOS only. May this help you skip a click.
Whispering [0] is Windows compatible and has gotten a lot better on Windows despite being extremely rough around the edges at first.
Not sure why you got downvoted. I wish this was a tag or something.
Nice! I vibe coded the same this weekend but for OpenAI however less polished https://github.com/sonu27/voicebardictate
Also look into voxtral, their new model is good and half the price if you can live without streaming.
Do any of these works as an iOS keyboard to replace the awful voice transcription Apple is currently shipping?
utter (utter.to) does.
Is it possible to customise the key binding? Most of these services let you customise the binding, and also support toggle for push-to-talk mode.
Does anyone know of an effective alternative for Android?
I have been using VoiceFlow. It works incredibly well and uses Groq to transcribe using the Whisper V3 Turbo model. You can also use it in an offline scenario with an on-device model, but I am mostly connected to the internet whenever I am transcribing.
Check out the FUTO keyboard or FUTO voice input apps. It only uses the whisper models though so far.
Does the Android keyboard transcription not work for your needs?
Could you make it use Parakeet? That's an offline model that runs very quickly even without a GPU, so you could get much lower latency than using an API.
I love this idea, and originally planned to build it using local models, but to have post-processing (that's where you get correctly spelled names when replying to emails / etc), you need to have a local LLM too.
If you do that, the total pipeline takes too long for the UX to be good (5-10 seconds per transcription instead of <1s). I also had concerns around battery life.
Some day!
https://github.com/cjpais/Handy
It’s free and offline
Wow, Handy looks really great and super polished. Demo at https://handy.computer/
Seeing this thread, sounds a blog post comparing the offerings would be useful
Good idea at first glance, but it would get outdated in hours.
Is there a tool that preserves the audio? I want both, the transcript and the audio.
Quick glance; FreeFlow already saves WAV recordings for every transcript to ~/Lib../App../FreeFlow/audio/ with UUIDs linking them to pipeline history entries in CoreData. Audio files are automatically deleted though, when their associated history entries are deleted. Shall be a quick fix. Recently did the same for hyprvoice, for debugging and auditing.
title lacks: for Mac
Anything similar for iOS?
Utter uses your OpenAI key (~$1/month). https://utter.to/. Has an iPhone app.
Saved you a click: Mac only and actually Grok; local inference too slow.
Won't be free when xAI starts charging.
Spokenly?
Handy is nothing short of fantastic, really brilliant when combined with Parakeet v2!
Big fan of handy and it’s cross platform as well. Parakeet V3 gives the best experience with very fast and accurate-enough transcriptions when talking to AIs that can read between the lines. It does have stuttering issues though. My primary use of these is when talking to coding agents.
But a few weeks ago someone on HN pointed me to Hex, which also supports Parakeet-V3 , and incredibly enough, is even faster than Handy because it’s a native MacOS-only app that leverages CoreML/Neural Engine for extremely quick transcriptions. Long ramblings transcribed in under a second!
It’s now my favorite fully local STT for MacOS:
https://github.com/kitlangton/Hex
Thanks for the recommendation! I picked the smallest model (Moonshine Base @ 58MB), and it works great for transcribing English.
Surprisingly, it produced a better output (at least I liked its version) than the recommended but heavy model (Parakeet V3 @ 478 MB).
I just learned about Handy in this thread and it looks great!
I think the biggest difference between FreeFlow and Handy is that FreeFlow implements what Monologue calls "deep context", where it post-processes the raw transcription with context from your currently open window.
This fixes misspelled names if you're replying to an email / makes sure technical terms are spelled right / etc.
The original hope for FreeFlow was for it to use all local models like Handy does, but with the post-processing step the pipeline took 5-10 seconds instead of <1 second with Groq.
There's an open PR in the repo which will be merged which adds this support. Post processing is an optional feature if you want to use it, and when using it, end to end latency can still be under 3 seconds easily
That’s awesome! The specific thing that was causing the long latency was the image LLM call to describe the current context. I’m not sure if you’ve tested Handy’s post-processing with images or if there’s a technique to get image calls to be faster locally.
Thank you for making Handy! It looks amazing and I wish I found it before making FreeFlow.
Could you go into a little more detail about the deep context - what does it grab, and which model is used to process it? Are you also using a groq model for the transcription?
It takes a screenshot of the current window and sends it to Llama in Groq asking it to describe what you’re doing and pull out any key info like names with spelling.
You can go to Settings > Run Logs in FreeFlow to see the full pipeline ran on each request with the exact prompt and LLM response to see exactly what is sent / returned.
As a very happy Handy user, it doesn't do that indeed. It will be interesting to see if it works better, I'll give FreeFlow a shot, thanks!
Handy rocks. I recently had minor surgery on my shoulder that required me to be in a sling for about a month, and I thought I'd give Handy a try for dictating notes and so on. It works phenomenally well for most text-to-speech use cases - homonyms included.
Handy is genuinely great and it supports Parakeet V3. It’s starting to change how I "type" on my computer.
Yes, I also use Handy. It supports local transcription via Nvidia Parakeet TDT2, which is extremely fast and accurate. I also use gemini 2.5 flash lite for post-processing via the free AI studio API (post-processing is optional and can also use a locally-hosted LM).
I use handy as well, and love it.