# ASR Pro

> A local-first Electron desktop transcription app with native Whisper, microphone capture, model management, transcript history, portable data, and startup controls.

- URL: https://mandalsuraj.com/blog/asrpro
- Author: Suraj Mandal (https://mandalsuraj.com)
- Published: 2026-05-16
- Project date: 2025-09-07
- Tags: ai, desktop, electron, whisper, react, typescript, appdev
- Source: https://github.com/surajmandalcell/asrpro
- Releases: https://github.com/surajmandalcell/asrpro/releases

![ASR Pro cover](https://mandalsuraj.com/images/blog/asrpro/cover.png)

ASR 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.

## Visual Proof

![ASR Pro home screen with recording workflow and stats](https://mandalsuraj.com/images/blog/asrpro/asrpro_home.jpg)

![ASR Pro models library with Whisper model options](https://mandalsuraj.com/images/blog/asrpro/asrpro_models_library.jpg)

![ASR Pro configuration screen with overlay and shortcut controls](https://mandalsuraj.com/images/blog/asrpro/asrpro_configuration.jpg)

![ASR Pro sound settings screen with microphone controls](https://mandalsuraj.com/images/blog/asrpro/asrpro_sound.jpg)

![ASR Pro history screen with transcript archive](https://mandalsuraj.com/images/blog/asrpro/asrpro_history.jpg)

![ASR Pro about screen with app identity and data folder](https://mandalsuraj.com/images/blog/asrpro/asrpro_about.jpg)

## Desktop Product

| Area | Work | Why it matters |
|---|---|---|
| Electron shell | Tray, global shortcut, waveform overlay, and secure preload API. | Keeps recording close without exposing Node to the page. |
| Native Whisper | Uses `@kutalia/whisper-node-addon` and whisper.cpp models. | Runs transcription without a hosted speech API. |
| Model library | Downloads, verifies, selects, and removes five model options. | Lets users choose speed, language, accuracy, and disk use. |
| Local history | Stores transcript text and source audio when available. | Keeps private work on the computer. |
| Portable data | Uses app-owned folders and repairs moved startup targets. | Supports portable Windows and Linux installs. |

## Native Engine Flow

1. The React renderer records microphone audio.
2. Web Audio converts it to mono 16 kHz WAV.
3. A context-isolated preload API sends the audio to Electron.
4. Electron runs the native Whisper addon.
5. The result returns to the renderer and local history.

The selected model downloads only when it is first needed. A checksum check runs before the model is used.

## Model And Data Design

| Model | Use |
|---|---|
| `whisper-tiny-en` | Fast English dictation. |
| `whisper-base-en` | Default English model. |
| `whisper-base` | Small multilingual model. |
| `whisper-small-en` | Higher English accuracy. |
| `whisper-large-v3-turbo` | Highest-accuracy bundled option. |

Windows and Linux packaged builds use a sibling `asrpro-data/` folder. Installed macOS builds use the standard app support folder.

## Run From Source

Development needs Node.js 20.19 or 22.12 or later.

```bash
git clone https://github.com/surajmandalcell/asrpro.git
cd asrpro
npm install
npm run electron:dev
```

If 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.
