{"kind":"post","path":"/blog/asrpro","post":{"metadata":{"title":"ASR Pro","summary":"A local-first Electron desktop transcription app with native Whisper, microphone capture, model management, transcript history, portable data, and startup controls.","publishedAt":"2026-05-16","projectDate":"2025-09-07","ascent":"#5D8CFF","github":"surajmandalcell/asrpro","links":[{"label":"Releases","href":"https://github.com/surajmandalcell/asrpro/releases","type":"repository"}],"tags":["ai","desktop","electron","whisper","react","typescript","appdev"],"weight":50},"slug":"asrpro","content":"\u003c!-- cover: /images/blog/asrpro/cover.png --\u003e\n\nASR Pro is a **local desktop transcription app**. It records speech, runs Whisper on the computer, and keeps models, transcripts, settings, and logs in app-owned storage.\n\n## Visual Proof\n\n\u003cdiv className=\"bp-evidence-grid\" data-preview-gallery=\"true\"\u003e\n\u003cimg src=\"/images/blog/asrpro/asrpro_home.jpg\" alt=\"ASR Pro home screen with recording workflow and stats\" /\u003e\n\u003cimg src=\"/images/blog/asrpro/asrpro_models_library.jpg\" alt=\"ASR Pro models library with Whisper model options\" /\u003e\n\u003cimg src=\"/images/blog/asrpro/asrpro_configuration.jpg\" alt=\"ASR Pro configuration screen with overlay and shortcut controls\" /\u003e\n\u003cimg src=\"/images/blog/asrpro/asrpro_sound.jpg\" alt=\"ASR Pro sound settings screen with microphone controls\" /\u003e\n\u003cimg src=\"/images/blog/asrpro/asrpro_history.jpg\" alt=\"ASR Pro history screen with transcript archive\" /\u003e\n\u003cimg src=\"/images/blog/asrpro/asrpro_about.jpg\" alt=\"ASR Pro about screen with app identity and data folder\" /\u003e\n\u003c/div\u003e\n\n## Desktop Product\n\n| Area | Work | Why it matters |\n|---|---|---|\n| Electron shell | Tray, global shortcut, waveform overlay, and secure preload API. | Keeps recording close without exposing Node to the page. |\n| Native Whisper | Uses `@kutalia/whisper-node-addon` and whisper.cpp models. | Runs transcription without a hosted speech API. |\n| Model library | Downloads, verifies, selects, and removes five model options. | Lets users choose speed, language, accuracy, and disk use. |\n| Local history | Stores transcript text and source audio when available. | Keeps private work on the computer. |\n| Portable data | Uses app-owned folders and repairs moved startup targets. | Supports portable Windows and Linux installs. |\n\n## Native Engine Flow\n\n1. The React renderer records microphone audio.\n2. Web Audio converts it to mono 16 kHz WAV.\n3. A context-isolated preload API sends the audio to Electron.\n4. Electron runs the native Whisper addon.\n5. The result returns to the renderer and local history.\n\nThe selected model downloads only when it is first needed. A checksum check runs before the model is used.\n\n## Model And Data Design\n\n| Model | Use |\n|---|---|\n| `whisper-tiny-en` | Fast English dictation. |\n| `whisper-base-en` | Default English model. |\n| `whisper-base` | Small multilingual model. |\n| `whisper-small-en` | Higher English accuracy. |\n| `whisper-large-v3-turbo` | Highest-accuracy bundled option. |\n\nWindows and Linux packaged builds use a sibling `asrpro-data/` folder. Installed macOS builds use the standard app support folder.\n\n## Run From Source\n\nDevelopment needs Node.js 20.19 or 22.12 or later.\n\n```bash\ngit clone https://github.com/surajmandalcell/asrpro.git\ncd asrpro\nnpm install\nnpm run electron:dev\n```\n\nIf the native engine cannot load, reinstall dependencies for the current OS and CPU. If a moved app starts from an old path, turn startup launch off and on again."}}