Add warm whisper-server backend (no per-dictation model reload)
Each dictation previously spawned whisper-cli with -m, reloading the full 1.5-1.6GB model (+ ~10s Metal init) every single time. This adds a WhisperServer manager that keeps a whisper-server child process alive with the model preloaded, so each utterance is a fast local HTTP POST to /inference (~0.5s) instead of a multi-second cold start. - Bundles whisper-server alongside whisper-cli (bundle-whisper.sh). - Server (re)starts on launch and on model change; stops on terminate; picks a free loopback port; -nt (plain text) + -sns (fewer hallucinations). - transcribe() prefers the warm server and falls back to a per-call whisper-cli spawn if the server is unavailable. - Warm-up now starts BEFORE the blocking accessibility prompt so the model load overlaps with the user granting permissions. - Info.plist: NSAllowsLocalNetworking for the loopback HTTP call. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -26,6 +26,11 @@
|
||||
<string>13.0</string>
|
||||
<key>LSUIElement</key>
|
||||
<true/>
|
||||
<key>NSAppTransportSecurity</key>
|
||||
<dict>
|
||||
<key>NSAllowsLocalNetworking</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>NSAppleEventsUsageDescription</key>
|
||||
<string>WhisperDictate needs accessibility access to paste transcribed text.</string>
|
||||
<key>NSHighResolutionCapable</key>
|
||||
|
||||
Reference in New Issue
Block a user