frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Show HN: Ghost Pepper – Local hold-to-talk speech-to-text for macOS

https://github.com/matthartman/ghost-pepper
139•MattHart88•3h ago
I built this because I wanted to see how far I could get with a voice-to-text app that used 100% local models so no data left my computer. I've been using a ton for coding and emails. Experimenting with using it as a voice interface for my other agents too. 100% open-source MIT license, would love feedback, PRs, and ideas on where to take it.

Comments

charlietran•2h ago
Thank you for sharing, I appreciate the emphasis on local speed and privacy. As a current user of Hex (https://github.com/kitlangton/Hex), which has similar goals, what are your thoughts on how they compare?
ipsum2•2h ago
Parakeet is significantly more accurate and faster than Whisper if it supports your language.
yeutterg•2h ago
Are you running Parakeet with VoiceInk[0]?

[0]: https://github.com/beingpax/VoiceInk

zackify•1h ago
i am, working great for a long time now
ipsum2•32m ago
I'm using https://github.com/senstella/parakeet-mlx library.
treetalker•2h ago
I have been using Parakeet with MacWhisper's hold-to-talk on a MacBook Neo and it's been awesome.
rahimnathwani•2h ago
Right, and if you're on MacOS you can use it for free with Hex: https://github.com/kitlangton/Hex
lloyd-christmas•33m ago
Or write your own custom one with the library that backs it: https://github.com/FluidInference/FluidAudio

I did that so that I could record my own inputs and finetune parakeet to make it accurate enough to skip post-processing.

obrajesse•1h ago
And indeed, Ghost Pepper supports parakeet v3
goodroot•2h ago
Nice one! For Linux folks, I developed https://github.com/goodroot/hyprwhspr.

On Linux, there's access to the latest Cohere Transcribe model and it works very, very well. Requires a GPU though. Larger local models generally shouldn't require a subordinate model for clean up.

Have you compared WhisperKit to faster-whisper or similar? You might be able to run turbov3 successfully and negate the need for cleanup.

Incidentally, waiting for Apple to blow this all up with native STT any day now. :)

hephaes7us•2h ago
Thanks for sharing! I was literally getting ready to build, essentially, this. Now it looks like I don't have to!

Have you ever considered using a foot-pedal for PTT?

Apple incidentally already has native STT, but for some reason they just don't use a decent model yet.

goodroot•2h ago
They do, and they even have that nice microphone F5 key for it, and an ideal OS level API making the input experience >perfect<.

Apparently they do have a better model, they just haven't exposed it in their own OS yet!

https://developer.apple.com/documentation/speech/bringing-ad...

Wonder what's the hold up...

For footpedal:

Yes, conceptually it’s just another evdev-trigger source, assuming the pedal exposes usable key/button events.

Otherwise we’d bridge it into the existing external control interface. Either way, hooks are there. :)

jiehong•1h ago
The only issue with Apple models is that they do not detect languages automatically, nor switch if you do between sentences.

Parakeet does both just fine.

chrisweekly•1h ago
sorry, PTT?
serf•1h ago
push-to-talk.
LuxBennu•2h ago
I've been running whisper large-v3 on an m2 max through a self-hosted endpoint and honestly the accuracy is good enough that i stopped bothering with cleanup models. The bigger annoyance for me was latency on longer chunks, like anything over 30 seconds starts feeling sluggish even with metal acceleration. Haven't tried whisperkit specifically but curious how it handles longer audio compared to the full model.
goodroot•1h ago
Ah yeah, longform is interesting.

Not sure how you're running it, via whichever "app thing", but...

On resource limited machines: "Continuous recording" mode outputs when silence is detected via a configurable threshold.

This outputs as you speak in more reasonable chunks; in aggregate "the same output" just chunked efficiently.

Maybe you can try hackin' that up?

LuxBennu•1h ago
Yeah that makes sense, chunking on silence would sidestep the latency issue pretty cleanly. I've been running it through a basic fastapi wrapper so it just takes whatever audio blob gets thrown at it, no chunking logic on the server side. Might be worth adding a vad pass before sending to whisper though, would cut down on processing dead air too.
VorpalWay•43m ago
How does it compare to the more well established https://github.com/cjpais/handy? Are there any stand out features (for either option)? What was the reason for writing your own rather than using or improving existing software?
goodroot•38m ago
Not sure I know what you mean by IR...

But in this case I built hyprwhspr for Linux (Arch at first).

The goal was (is) the absolute best performance, in both accuracy & speed.

Python, via CUDA, on a NVIDIA GPU, is where that exists.

For example:

The #1 model on the ASR (automatic speech recognition) hugging face board is Cohere Transcribe and it is not yet 2 weeks old.

The ecosystem choices allowed me to hook it up in a night.

Other hardware types also work great on Linux due to its adaptability.

In short, the local stt peak is Linux/Wayland.

VorpalWay•32m ago
IR was a typo, meant "it" (fixed it). I blame the phone keyboard plus insufficient proof reading on my part.

If this needs nvidia CPU acceleration for good performance it is not useful to me, I have Intel graphics and handy works fine.

goodroot•26m ago
It works well with anything. :)

That said: If handy works, no need whatsoever to change.

konaraddi•2h ago
That’s awesome! Do you know how it compares to Handy? Handy is open source and local only too. It’s been around a while and what I’ve been using.

https://github.com/cjpais/handy

youniverse•2h ago
I love and have been using handy for a while too, what we need is this for mobile apps I don't think there's any free apps and native dictation is not always fully local and not as good.
swaptr•2h ago
Handy is awesome! I used it for quite a while before Claude Code added voice support. Solid software, very good linux and mac integration. Shoutout to Parakeet models as well, extremely fast and solid models for their relatively modest memory requirements.
stavros•1h ago
Handy is fantastic.
vunderba•1h ago
I’d also be interested to know what the impetus was for developing ghost-pepper, which looks relatively recent, given that Handy exists and has been pretty well received.

Extra bonus is that Handy lets add an automatic LLM post-processor. This is very handy for the Parakeet V3 model, which can sometimes have issues where it repeats words or makes recognition errors for example, duplicating the recognition of a single word a dozen dozen dozen dozen dozen dozen dozen dozen times.

rob•46m ago
Yep. Using Handy with Parakeet v3 + a custom coding-tailored prompt to post-process on my 2019 Intel Mac and it's been working great.

Once in a while it will only output a literal space instead of the actual translation, but if I go into the 'history' page the translation is there for me to copy and paste manually. Maybe some pasting bug.

olup•46m ago
I use handy all day long as a software engineer, and recommended it to all of my team members. I love it.
JohnPDickerson•27m ago
Handy is an awesome project, highly recommended - many of our engineers and PMs use it! CJ, Handy's creator, recently joined us as a Builder in Residence at Mozilla.ai. So for those interested in deploying a more raw/lightweight approach to local speech-to-text (or other multimodal) models, feel free to check out llamafile - which includes whisperfile, a single-file whisper.cpp + cosmopolitan framework-based executable. We're hoping to build some bridges between the two projects as well. https://github.com/mozilla-ai/llamafile
mathis•2h ago
If you don't feel like downloading a large model, you can also use `yap dictate`. Yap leverages the built-in models exposed though Speech.framework on macOS 26 (Tahoe).

Project repo: https://github.com/finnvoor/yap

hyperhello•2h ago
Feature request or beg: let me play a speech video and transcribe it for me.
MattHart88•1h ago
I like this idea and it should work -- whatever microphone you have on should be able to hear the speaker. LMK if not (e.g., are you wearing headphones? if so, the mic can't hear the speaker)
aristech•1h ago
Great job. How about the supported languages? System languages gets recognised?
MattHart88•1h ago
Thanks! We currently have 2 multi-lingual options available: - Whisper small (multilingual) (~466 MB, supports many languages) - Parakeet v3 (25 languages) (~1.4 GB, supports 25 languages via FluidAudio)
guzik•1h ago
Sadly the app doesn't work. There is no popup asking for microphone permission.

EDIT: I see there is an open issue for that on github

ttul•1h ago
And many people are mailing in Codex and Claude Code generated PRs - myself included. Fingers crossed, I suppose.
MattHart88•58m ago
Thanks to everyone who submitted PRs! The fix is merged, new version is up.
parhamn•1h ago
I see a lot of whisper stuff out there. Are these the same old OpenAI whispers or have they been updated heavily?

I've been using parakeet v3 which is fantastic (and tiny). Confused why we're still seeing whisper out there, there's been a lot of development.

zackify•1h ago
same, even have kokoro for speech back to text for home assistant and parakeet on mac os through voice ink.

Also vibe coded a way to use parakeet from the same parakeet piper server on my grapheneos phone https://zach.codes/p/vibe-coding-a-wispr-clone-in-20-minutes

daemonologist•1h ago
Whisper is still old reliable - I find that it's less prone to hallucinations than newer models, easier to run (on AMD GPU, via whisper.cpp), and only ~2x slower than parakeet. I even bothered to "port" Parakeet to Nemo-less pytorch to run it on my GPU, and still went back to Whisper after a couple of days.
goodroot•1h ago
Whisper is very good in many languages.

It's also in many flavours, from tiny to turbo, and so can fit many system profiles.

That's what makes it unique and hard to replace.

gegtik•1h ago
how does this compare to macos built in siri TTS, in quality and in privacy?
realityfactchex•1h ago
Exactly my question. I double-tap the control button and macOS does native, local TTS dictation pretty well. (Similar to Keyboard > Enable Dictation setting on iOS.)

The macOS built-in TTS (dictation) seems better than all the 3rd party, local apps I tried in the past that people raved about. I have tried several.

Is this better somehow?

If the 3rd party apps did streaming with typing in place and corrections within a reasonable window when they understand things better given more context, that would be cool. Theoretically, a custom model or UX could be "better" than what comes free built into macOS (more accurate or customizable).

But when I contacted the developer of my favorite one they said that would be pretty hard to implement due to having to go back and make corrections in the active field, etc.

I assume streaming STT in these utilities for Mac will get better at some point, but I haven't seen it yet (been waiting). It seems these tools generally are not streaming, e.g. they want you to finish speaking first before showing you anything. Which doesn't work for me when I'm dictating. I want to see what I've been saying lately, to jog my memory about what I've just said and help guide the next thing I'm about to say. I certainly don't want to split my attention by manually toggling the control (whether PTT or not) periodically to indicate "ok, you can render what I just said now".

I guess "hold-to-talk" tools are for delivering discrete, fully formed messages, not for longer, running dictation.

AFAICT, TFA is focused on hold-to-talk as the differentiator, over double-tap to begin speaking and double-tap to end speaking?

Supercompressor•1h ago
I've been looking for the opposite - wanting to dump text and it be read to me, coherently. Anyone have good recommendations?
realityfactchex•1h ago
Sure, Chatterbox TTS Server is rather high quality: https://github.com/devnen/Chatterbox-TTS-Server

You could hook it up to some workflow over the local API depending on how you want to dump the text, but the web UI is good too.

The Show HN by the author was at: https://news.ycombinator.com/item?id=44145564

Supercompressor•52m ago
Appreciated - thank you.
ericmcer•1h ago
I see quite a few of these, the killer feature to me will be one that fine tunes the model based on your own voice.

E.G. if your name is `Donold` (pronounced like Donald) there is not a transcription model in existence that will transcribe your name correctly. That means forget inputting your name or email ever, it will never output it correctly.

Combine that with any subtleties of speech you have, or industry jargon you frequently use and you will have a much more useful tool.

We have a ton of options for "predict the most common word that matches this audio data" but I haven't found any "predict MY most common word" setups.

MattHart88•1h ago
I've found the "corrections" feature works well for most of the jargon and misspelling use cases. Can you give it a try and let me know edge cases?
sorenjan•1h ago
Whisper supports a prompt, you can put your "Donold" there.

https://developers.openai.com/cookbook/examples/whisper_prom...

bonkler59•27m ago
My experience is that Aqua voice does a good job of this with custom dictionary and replacements.
__mharrison__•1h ago
Cool, I've been doing a lot of "coding" (and other typing tasks) recently by tapping a button on my Stream Deck. It starts recording me until I tap it again. At which point, it transcribes the recording and plops it into the paste buffer.

The button next to it pastes when I press it. If I press it again, it hits the enter command.

You can get a lot done with two buttons.

purplehat_•1h ago
Hi Matt, there's lots of speech-to-text programs out there with varying levels of quality. 100% local is admirable but it's always a tradeoff and users have to decide for themselves what's worth it.

Would you consider making available a video showing someone using the app?

semiquaver•1h ago
Slop
douglaswlance•1h ago
does it input the text as soon as it hears it? or does it wait until the end?
romeroej•1h ago
always mac. when windows? why can you just make things multios
primaprashant•1h ago
Speech-to-text has become integral part of my dev flow especially for dictating detailed prompts to LLMs and coding agents.

I have collected the best open-source voice typing tools categorized by platform in this awesome-style GitHub repo. Hope you all find this useful!

https://github.com/primaprashant/awesome-voice-typing

rcarmo•1h ago
Not sure why I should use this instead of the baked-in OS dictation features (which I use almost daily--just double-tap the world key, and you're there). What's the advantage?
qq66•59m ago
I haven't used this one but WisprFlow is vastly better than the built-in functionality on MacOS. Apple is way behind even startups, even for fundamental AI functionality like transcribing speech
ibero•56m ago
WisprFlow has a lot of good recommendations behind it but the fact they used Delve for SOC2 compliance gives me major pause.
janalsncm•26m ago
The fact that a company could suck up all of your data and then use Delve for their SOC2 is a great reason to use local models.
jonwinstanley•54m ago
I use the baked in Apple transcription and haven't had any issues. But what I do is usually pretty simple.

What makes the others vastly better?

MattDamonSpace•30m ago
I’ve rarely had macOS TTS produce a sentence I didn’t have to edit

Whisper models I barely bother checking anymore

atlgator•49m ago
This thread is a support group for people who have each independently built the same macOS speech-to-text app.
brcmthrowaway•46m ago
Oh to be 20-something and do a bunch of free work for your portfolio again
tito•39m ago
This is great. I'm typing this message now using Ghost Pepper. What benefits have you seen from the OCR screen sharing step?
janalsncm•31m ago
I think the jab at the bottom of the readme is referring to whispr flow?

https://wisprflow.ai/new-funding

Show HN: Ghost Pepper – Local hold-to-talk speech-to-text for macOS

https://github.com/matthartman/ghost-pepper
147•MattHart88•3h ago•68 comments

Show HN: GovAuctions lets you browse government auctions at once

https://www.govauctions.app/
164•player_piano•6h ago•55 comments

Show HN: Hippo, biologically inspired memory for AI agents

https://github.com/kitfunso/hippo-memory
15•kitfunso•1h ago•6 comments

Show HN: Tusk for macOS and Gnome

https://shapemachine.xyz/tusk/
27•factorialboy•2d ago•8 comments

Show HN: TTF-DOOM – A raycaster running inside TrueType font hinting

https://github.com/4RH1T3CT0R7/ttf-doom
12•4RH1T3CT0R•3h ago•2 comments

Show HN: Anos – a hand-written ~100KiB microkernel for x86-64 and RISC-V

https://github.com/roscopeco/anos
7•noone_youknow•2d ago•0 comments

Show HN: Docking – extensible Linux dock in Python

https://docking.cc
15•edumucelli•2d ago•5 comments

Show HN: MemberLane – Paid Communities on Telegram, Discord, and WhatsApp

https://www.memberlane.app
2•grene98•41m ago•0 comments

Show HN: CacheZero – Karpathy's LLM wiki idea as one NPM install

3•swarajbachu•1h ago•0 comments

Show HN: I built a tiny LLM to demystify how language models work

https://github.com/arman-bd/guppylm
830•armanified•22h ago•126 comments

Show HN: Real-time AI (audio/video in, voice out) on an M3 Pro with Gemma E2B

https://github.com/fikrikarim/parlor
258•karimf•1d ago•29 comments

Show HN: I built a site that turns your Steam gaming hours into a RL skill tree

https://alternatelife.xyz/
5•naorz•1h ago•0 comments

Show HN: Meta-agent: self-improving agent harnesses from live traces

https://github.com/canvas-org/meta-agent
3•essamsleiman•3h ago•0 comments

Show HN: Weird Clocks

https://clocks.specr.net
16•vunderba•7h ago•8 comments

Show HN: Gemma Gem – AI model embedded in a browser – no API keys, no cloud

https://github.com/kessler/gemma-gem
141•ikessler•22h ago•20 comments

Show HN: Splice CAD – Wiring and cable assembly CAD with an agentic assist

https://splice-cad.com/
3•djsdjs•3h ago•0 comments

Show HN: Kept for the children and machines that come after

https://www.latentdiaries.com/
2•ainthusiast•3h ago•1 comments

Show HN: I made a YouTube search form with advanced filters

https://playlists.at/youtube/search/
301•nevernothing•22h ago•194 comments

Show HN: Modo – I built an open-source alternative to Kiro, Cursor, and Windsurf

https://github.com/mohshomis/modo
92•mohshomis•22h ago•18 comments

Show HN: ReverseCam – See yourself as others see you

https://www.reversecam.com
7•ilamparithi•7h ago•1 comments

Show HN: I just built a MCP Server that connects Claude to all your wearables

https://pacetraining.co/
14•anton_salcher•13h ago•12 comments

Show HN: A game where you build a GPU

https://jaso1024.com/mvidia/
944•Jaso1024•2d ago•181 comments

Show HN: Vajra, a background coding agent with graph-based workflows

https://github.com/zamana-inc/vajra
2•shloked•5h ago•0 comments

Show HN: Compare Codex and Claude Code reviews side by side

https://twitter.com/plannotator/status/2041264274228781520
4•ramoz•1h ago•0 comments

Show HN: OsintRadar – Curated directory for osint tools

https://osintradar.com/
81•lexalizer•1d ago•9 comments

Show HN: We unionized Maxwell's Demon– A paper on labor rights in thermodynamics

https://zenodo.org/records/19442828
3•Serena_Zayn•1h ago•0 comments

Show HN: I replaced Google Analytics with my own tool – no cookies, <1KB script

https://datakool.com/
11•VictorChanet•11h ago•8 comments

Show HN: M. C. Escher spiral in WebGL inspired by 3Blue1Brown

https://static.laszlokorte.de/escher/
172•laszlokorte•2d ago•28 comments

Show HN: Tiny TUI for disk usage exploration

https://github.com/dhbradshaw/syz
4•dhbradshaw•7h ago•5 comments

Show HN: MCP 2000 – Browser-based drum machine with AI-generated sounds

https://www.mcp2000.com/
3•harmoni-pet•7h ago•0 comments