{"id":23571656,"url":"https://github.com/dbpprt/whispr","last_synced_at":"2025-05-05T14:41:47.492Z","repository":{"id":269522174,"uuid":"905933736","full_name":"dbpprt/whispr","owner":"dbpprt","description":"🎙️ Privacy-focused menubar app for local voice-to-text transcription on macOS, powered by Whisper.cpp - no cloud required","archived":false,"fork":false,"pushed_at":"2025-03-24T10:00:00.000Z","size":1510,"stargazers_count":17,"open_issues_count":12,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-30T21:51:12.586Z","etag":null,"topics":["ai","macos","rust","transcription","whisper"],"latest_commit_sha":null,"homepage":"https://github.com/dbpprt/whispr","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dbpprt.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-19T20:07:30.000Z","updated_at":"2025-03-30T01:27:17.000Z","dependencies_parsed_at":null,"dependency_job_id":"07f4324c-a8d0-4fa7-9571-b8b8ec9d1c16","html_url":"https://github.com/dbpprt/whispr","commit_stats":{"total_commits":16,"total_committers":2,"mean_commits":8.0,"dds":0.25,"last_synced_commit":"559d0fd5e14e5a4ef1ea75e4ae59d562c76a91b5"},"previous_names":["dbpprt/whispr"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbpprt%2Fwhispr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbpprt%2Fwhispr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbpprt%2Fwhispr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dbpprt%2Fwhispr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dbpprt","download_url":"https://codeload.github.com/dbpprt/whispr/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252516120,"owners_count":21760725,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","macos","rust","transcription","whisper"],"created_at":"2024-12-26T20:18:57.937Z","updated_at":"2025-05-05T14:41:47.485Z","avatar_url":"https://github.com/dbpprt.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"src/icon.png\" alt=\"Whispr Logo\" width=\"128\" height=\"128\"\u003e\n  \u003ch1\u003eWhispr\u003c/h1\u003e\n  \u003cp\u003e\u003cem\u003eYour voice, your keyboard, no cloud required 🎙️\u003c/em\u003e\u003c/p\u003e\n\u003c/div\u003e\n\nWhispr is a macOS menubar application written in Rust for local voice-to-text transcription using [Whisper.cpp](https://github.com/ggerganov/whisper.cpp).\n\n**Note:** Apple Silicon is required to run Whispr.\n\n## Features\n\n- Push-to-talk (right ⌘ Command key by default)\n- Local processing\n- Real-time transcription\n- Menubar integration\n- Configurable input and models\n- Remove silence to prevent hallucination\n- Custom vocabulary/dictionary based on config (to improve transcription quality with 'uncommon' words)\n\n## Usage\n\n1. The app requires a [Whisper.cpp](https://github.com/ggerganov/whisper.cpp) compatible model to be downloaded and placed in `~/.whispr/model.bin`\n   - I highly recommend Whisper Large V3 Turbo\n   - Download link: [ggml-large-v3-turbo.bin](https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-large-v3-turbo.bin)\n   - ```bash\n     mkdir -p ~/.whispr \u0026\u0026 wget https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-large-v3-turbo.bin -O ~/.whispr/model.bin\n     ```\n2. Launch Whispr\n3. Hold right ⌘ Command\n4. Speak\n5. Release to insert text\n6. Right click Whispr menubar to configure\n   \u003cdiv align=\"center\"\u003e\n     \u003cimg src=\"docs/assets/menubar.png\" alt=\"Whispr Menubar Configuration\" width=\"300\"\u003e\n   \u003c/div\u003e\n\n## Known Issues\n\n- Startup experience is pretty rough, downloading the model and granting permissions.\n- Silence removal is not tweaked yet and it is static, ideally it should be dynamic.\n- Sometimes when right-clicking the menu bar icon, the menu doesn't open but flickers.\n- Manually downloading the model is painful.\n- The overlay lags when Whisper runs.\n\n## ⚙️ Configuration\n\nWhispr is highly configurable through its settings:\n\n- **Audio Settings**\n  - Choose input device\n  - Silence removal\n  - Recording options\n\n- **Model Options**\n  - Multiple Whisper models available\n  - Language selection\n  - Translation capabilities\n\n- **Developer Features**\n  - Save recordings for debugging\n  - Enable Whisper logging\n  - Detailed configuration options\n\n## Getting Started\n\n1. Download release\n2. Launch Whispr\n3. Configure settings (optional)\n4. Hold right ⌘ Command to speak\n5. Right click Whispr menubar to configure\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"docs/assets/menubar.png\" alt=\"Whispr Menubar Configuration\" width=\"300\"\u003e\n\u003c/div\u003e\n\n## Advanced usage\n\nThe advanced configuration for Whispr is located in `~/.whispr/settings.json`. Below is an example of the parameters you can configure:\n\n```json\n{\n  \"audio\": {\n    \"device_name\": \"MacBook Pro Microphone\",\n    \"remove_silence\": true,\n    \"silence_threshold\": 0.9,\n    \"min_silence_duration\": 250,\n    \"recordings_dir\": \".whispr\"\n  },\n  \"developer\": {\n    \"save_recordings\": true,\n    \"whisper_logging\": false\n  },\n  \"whisper\": {\n    \"model_name\": \"base.en\",\n    \"language\": \"auto\",\n    \"translate\": false,\n    \"dictionary\": [\"USail\", \"CustomWord\"]\n  },\n  \"start_at_login\": false,\n  \"keyboard_shortcut\": \"right_command_key\",\n  \"model\": {\n    \"display_name\": \"Whisper Large v3 Turbo\",\n    \"url\": \"https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-large-v3-turbo.bin\",\n    \"filename\": \"ggml-large-v3-turbo.bin\"\n  }\n}\n```\n\n## Roadmap\n\n- [ ] Model Management: Automated model downloads\n- [ ] Headless experience \u0026 redesign status icon\n  - The overlay is actually not needed at all, add a headless mode, use menubar icon coloring as recording indicator.\n- [ ] Meeting mode with diarization and system audio recording\n  - Memo: https://github.com/Mnpn/Azayaka/blob/main/Azayaka/Recording.swift, https://github.com/insidegui/AudioCap/blob/main/AudioCap/ProcessTap/CoreAudioUtils.swift\n- [ ] Application context awareness\n  - We can use a small local model, feed it a OCR'ed version of the current active window, the cursor position and much more in a customizable prompt template to postprocess the transcription, allowing more expressive interaction.\n  - [ ] MLX-powered LLM post-processing\n  - [ ] Apple Vision API integration\n- [ ] Add Windows support\n- [ ] Replacements\n- [ ] GitHub Actions for Builds and Releases\n- [ ] Automate builds/releases using GitHub Actions.\n- [ ] Brew formulae\n\n## Contributing\n\nOpen source project - contributions welcome.\n\n## License\n\nMIT License\n\n---\n\n\u003cdiv align=\"center\"\u003e\n  \u003cp\u003eMade with ❤️ in Germany together with Claude\u003c/p\u003e\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdbpprt%2Fwhispr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdbpprt%2Fwhispr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdbpprt%2Fwhispr/lists"}