I don't think get it unless I'm missing something - how is this different from just using the built in Mac OS dictation feature?
At first I thought it was going to be a CLI/package to interface with that API which sounded interesting, but I already use a hotkey to dictate text on my Mac via the OS.
I don't think you're missing something - Apple's built in dictation is pretty good. The biggest issue is that it still executes parts of it online via Apple's servers and even has a disclosure that it "sends information like your voice input, contacts, and location to Apple."
This project uses the on-device SpeechAnalyzer API directly and makes zero network calls, and since it's open source you can verify that nothing leaves your Mac. It also keeps a local searchable history. Finally, I also added press-to-stop with a preview so you can cancel a bad take before it inserts, instead of typing live (very useful in terminal).
What type of package were you hoping it was?
Ahh that makes sense, I was under the impression that OS dictation used exclusively on device models for dictation now but you're right - they do still send this data for transcription.
That definitely changes my take and I'm interested in trying this!
My initial assumption was that this was something I could invoke via CLI or within scripts to transcribe audio from files or user input using on-device models, which is something I would presently probably use Whisper for.
That would be a super trivial fork actually! You basically just need this file https://github.com/FrigadeHQ/yap/blob/main/Sources/Services/... and then wrap a cli around it :)
Does the new SpeechAnalyzer API not call Apple Servers? I remember when I was building on the last version, it you wanted real time transcription you needed at least to upload it to Apple Servers for processing.
I think it once did! Now it doesn't - ways to easily verify this:
1) install the dmg in the GH repo
2) turn off wifi
3) use it offline
That doesn’t prove it doesn’t send data if it has the possibility. It could use the offline model only as a fallback.
yeah, this is a possibility and also they could store it and send it after we appear online.
I was having the same question, now it makes sense.