Open-source · Runs offline

Transcribe long recordings on your own computer.

A small tool that turns audio into text using OpenAI's Whisper model — running locally on your machine. No accounts, no API keys, no uploads. Free to use, free forever.

🔒

Private by design

Your audio never leaves your computer. There's no server involved.

🌐

Works offline

Once the model is downloaded, no internet needed. Ever.

Handles long files

Built for multi-hour recordings with live progress and streaming writes.

Get it running

Takes about 5 minutes end-to-end. You'll need Python 3.9+ and a few command-line steps. These instructions assume Windows — macOS and Linux users, use your platform's package manager for ffmpeg (brew install ffmpeg / apt install ffmpeg) and skip step 1.

  1. Install Python 3.9 or newer

    Grab it from python.org. On the first installer screen, check "Add python.exe to PATH" before clicking Install.

    Verify in a new terminal:

    python --version
  2. Install ffmpeg

    Needed to decode mp3, m4a, and other common formats.

    Windows

    winget install Gyan.FFmpeg

    macOS

    brew install ffmpeg

    Linux

    sudo apt install ffmpeg

    Close and reopen your terminal, then verify:

    ffmpeg -version
  3. Download the code

    Either clone with git:

    git clone https://github.com/dondadda416/transcribe.git
    cd transcribe

    or download the zip, unzip it, and open a terminal inside the folder.

  4. Install Python dependencies

    From inside the project folder:

    pip install -r requirements.txt

    This pulls down faster-whisper (a fast local Whisper implementation) and Flask. A few hundred MB total. Takes a couple of minutes.

  5. Run it

    Two options depending on what you prefer:

    Web app (recommended): drag-and-drop UI in your browser.

    python app.py

    Then open http://localhost:5000 and drop your audio file onto the page. On Windows you can also just double-click start.bat.

    Command line: for scripting or batch jobs.

    python transcribe.py recording.m4a --model small

    The transcript is written to recording.txt in the same folder.

Common questions

How long will it take to transcribe my file?

Depends on your machine and the model. On a typical laptop CPU with the small model, expect roughly 30–90 minutes per 2-hour recording. The web app shows live progress with an ETA. If you have an NVIDIA GPU, it can be 5–10x faster (pass --device cuda on the CLI).

Which formats does it handle?

Anything ffmpeg can decode — mp3, m4a, wav, flac, ogg, mp4, mov, webm, and many more.

How accurate is it?

Good enough for most uses. The small model handles conversational English well. For noisy audio, heavy accents, or non-English languages, try medium or large-v3 for meaningfully better accuracy at the cost of speed and RAM. Edit MODEL_SIZE at the top of app.py, or pass --model medium on the CLI.

Does it identify different speakers?

Not currently. The transcript is a single running text without speaker labels. If there's demand I'll add diarization — open an issue on GitHub.

Is my audio uploaded anywhere?

No. The web app runs entirely on your own computer — the server it starts is only reachable at localhost, which is your own machine. You can verify by disconnecting from the internet after installing; it'll still work.

Something isn't working. Where do I get help?

Open an issue on the GitHub repo with the exact error message and what platform you're on.