Skip to content

Latest commit

 

History

402 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Whisper Transcriber Suite — transcribe audio and video on your own machine. No cloud, no account, no upload.

Whisper Transcriber Suite

Drag in an audio or video file. Get back a timed, formatted transcript — without it ever leaving your computer.

CI release downloads codecov License: BSD-3 Platform Stars

Download · Screenshots · Features · How it works · Privacy · Docs · FAQ · Build from source

English 简体中文 日本語 한국어 Deutsch Español Français Português فارسی


A desktop app that runs OpenAI's Whisper model locally — via faster-whisper — so transcription costs nothing per minute, works on a plane, and never uploads your recording to anyone. Drop a file in and it writes .srt, .vtt, .txt, .json, .docx, .pdf, .ass and more, right next to the original. It also downloads from any site yt-dlp supports, labels speakers, batches a queue of jobs, and can turn itself into a transcription page for the other devices on your network.

No account. No API key. No subscription. Your files stay on your disk.

  • 🔒 Runs on your machinefaster-whisper (CTranslate2) by default, plus whisper.cpp and NVIDIA Parakeet
  • 📝 14 output formatssrt vtt ass tsv txt json lrc md docx pdf, plus oTranscribe / ELAN / InqScribe / Express Scribe
  • 🎙️ Live transcription — a microphone or the system audio, transcribed as it happens → docs/LIVE.md
  • 🗣️ Speaker labels — offline diarisation, per-word timestamps, time-range clipping
  • 🎬 Downloads — any yt-dlp site, with optional transcribe-on-finish
  • 🧹 Adaptive denoise — measures the audio and only cleans it when that helps → docs/DENOISE.md
  • 🌐 Local-network mode — turn this machine into a transcription page for your other devices
  • 💸 Free and BSD-3 licensed — no per-minute cost, no subscription, no telemetry by default

Download

Grab the latest build from the releases page:

Asset Size Best for
WhisperTranscriberSuite-…-Setup-Standard.exe ~215 MB Most people. A normal installer: Start-menu shortcut, upgrades in place over an older version, files visible on disk.
WhisperTranscriberSuite-…-Portable.zip ~330 MB Unzip and run. No installation, no admin rights, happy on a USB stick.
WhisperTranscriberSuite-…-macOS-*.dmg ~400 MB macOS (x64 and arm64 builds are published separately).

Downloads by version (each badge counts only that version's own release — older versions stay published and their counts are never reset):

v1.8.0 v1.7.0 v1.6.0 v1.5.0

Everything needed is inside — a bundled Python, ffmpeg, ffprobe and yt-dlp. The only thing fetched later is the speech model itself (~1–3 GB, once, on first launch); after that the app is fully offline.

Step-by-step walkthrough, including what to click past on Windows SmartScreen: docs/INSTALL.md.

What it looks like

The Transcribe tab: a drop target, engine and language pickers, speaker-label and word-timestamp options

Drop a file, pick your options, press Transcribe. That is the whole workflow.

The other four tabs

Transcription Queue — batch jobs with live progress; pause, resume, cancel, re-run or remove any row.

Transcription Queue tab

Download Videos — any yt-dlp site: pick a format, clip a time range, pull subtitles, optionally transcribe as soon as the download finishes.

Download Videos tab

Video Tiling — play one live stream as a full-screen N×N video wall, optionally across several monitors.

Video Tiling tab

Web / LAN access — one button turns this machine into a transcription page for the phones and PCs on your network.

Web / LAN access tab

Features

Five tabs, one window: Transcribe, Transcription Queue, Download Videos, Video Tiling, Web/LAN access, Convert transcript
Local transcription Whisper large-v3 by default, plus large-v3-turbo and distil-large-v3.5. Backends: faster_whisper (default), whisper.cpp, NVIDIA Parakeet.
Many output formats srt vtt ass tsv txt json lrc md docx pdf — written next to your input file.
Convert transcript Re-emit an existing transcript into the formats above, or into oTranscribe / ELAN / InqScribe / Express Scribe. Reads .ass / .ssa too.
Live transcription Transcribe a microphone — or whatever this machine is playing — as it happens. Chunks are cut at natural pauses so words are never split in half.
Speaker diarisation Optional "Identify speakers", plus per-word timestamps and time-range clipping.
Adaptive denoise Measures each recording first and only cleans it when the measurement says that helps; verifies its own output and reverts if it removed speech.
Last-Result card File sizes, one-click Open file / Open folder, and an in-app viewer with split-pane click-to-seek playback.
Batch queue Live status for every pending and running job, with Pause / Resume / Cancel / Re-run / Remove always one click away.
Downloads Anything yt-dlp handles, plus Supreme Master TV episode links. Downloads resume rather than restart.
Video wall Tile one live stream as an N×N grid across one or many monitors.
Local network mode A stdlib-only web server so other devices can transcribe through this machine — optional password, off until you start it.
Post-processing Automatic chapters and hallucination detection, both toggleable.

Keyboard: Ctrl+O browse · Ctrl+Enter transcribe · Esc cancel · Ctrl+Q exit.

How it works

Drop a file, the Tk GUI queues it, a worker subprocess holds the model in memory and runs faster-whisper, and the transcript lands in your folder

The Tk GUI runs in the main process. Each transcription job runs in a long-lived subprocess worker that keeps the Whisper model in memory and talks back over newline-delimited JSON on stdin/stdout; yt-dlp gets its own subprocess per download. A per-worker UUID token and a 5-second heartbeat keep that routing robust against PID recycling and let the GUI detect a wedged worker instead of hanging with it.

Deeper: docs/ARCHITECTURE.md (prose) · docs/architecture.svg (full diagram) · docs/DECISIONS.md (why things are the way they are).

Offline by default

Every default backend runs on your machine. Nothing is uploaded, no account exists, and the app works with the network unplugged once the model is downloaded.

Important

Two opt-in backends break that guarantee, and both are off unless you go into Advanced → Backend and choose them. Use them only for content you are willing to send to a third party.

  • cloud_stt — Google Gemini API, authenticated with a free API key you paste. Quickest to set up. → docs/CLOUD_STT.md
  • google_cloud_stt — full Google Cloud Speech-to-Text, authenticated with a service-account JSON file. 60 free minutes/month, speaker labels, a cheaper batch mode. → docs/CLOUD_STT_GOOGLE.md

The optional update check is likewise notify-only: it asks GitHub whether a newer release exists, at most once a day, and never downloads or installs anything by itself. Turn it off with update_check_enabled.

First run — choosing where the model lives

On first launch the app asks where to store the Whisper model files. The default is a private per-user cache that is always writable — %LOCALAPPDATA%\WhisperTranscriberSuite\Cache\models — never the Program Files install directory. Pick anywhere you like instead: an external drive, a network share.

The choice is saved to %LOCALAPPDATA%\WhisperTranscriberSuite\config.json under hub_folder, and the dialog never appears again. To start over:

WhisperTranscriberSuite.exe --safe-mode

That moves the user config aside and re-fires the first-run dialog with the defaults.

Configuration keys

User settings live at %LOCALAPPDATA%\WhisperTranscriberSuite\config.json.

Key What it controls
hub_folder Where Whisper model files are stored (set by the first-run dialog)
model_path Per-model override; derived from hub_folder + model.name when unset
whisper_model large-v3 (default), large-v3-turbo, distil-large-v3.5
transcribe_backend faster_whisper (default), whisper_cpp, parakeet, cloud_stt, google_cloud_stt
auto_chapters_enabled, hallucination_detect_enabled Post-process toggles
update_check_enabled Opt-in GitHub update check (on by default; notify-only)
last_update_check ISO date of the last check (once-per-day throttle)

Full reference: docs/CONFIG.md.

Updating to a newer version

No uninstall needed. The Standard installer uses a stable application ID, so you just download the newer …-Setup-Standard.exe and run it — it upgrades over the existing install and keeps your shortcut and settings. The Portable build is self-contained: replace the old folder with the new one.

Help → Check for updates… runs the check on demand and also tells you when you are already current. The quiet daily check stays silent unless something newer exists, and fails silently when offline.

Share it on your local network

Rather than installing the app on every machine, let people on a trusted network transcribe through this one. The Web / LAN access tab does it with one button, an optional port, a "Share on local network" checkbox and an optional access password.

For headless or scripted use there is an equivalent command line (same stdlib-only HTTP engine):

python gui.py serve          REM loopback only (no firewall prompt)
python gui.py serve --lan    REM share on the LAN (allow the firewall prompt)

It has no accounts and no encryption — anyone who can reach the address (and knows the password, if you set one) can use it. Trusted networks only. Routes, the upload cap and the --token option: docs/SERVER.md.

Build from source

git clone https://github.com/Milomilo777/whisper-transcriber-suite.git
cd whisper-transcriber-suite
pip install -r requirements.txt
python gui.py

Updating a source checkout later: platform\windows\update.bat on Windows, platform/linux/update.sh on Linux — both pull the latest source and refresh the dependencies (platform/windows/README.md).

docs/BUILD.md covers the build pipelines — which two are actually shipped and which are kept alive but unpublished — and docs/RELEASE_PROCESS.md has the ship sequence.

Regenerate the images in this README with python tools/make_graphics.py (they are drawn by that script, not pasted in from a design tool).

Project status

Actively maintained. The quality bar enforced on every commit:

  • pyright on app/ and core/ — 0 errors, 0 warnings, 0 informations.
  • The hermetic unit + integration suite (pytest tests/ --ignore=tests/smoke) runs on every push, on Windows and Ubuntu — see docs/TESTING.md. Coverage is reported by the badge above.

docs/CHANGELOG.md has what shipped recently; superseded freeze and stability audits are archived under docs/history/.

Documentation

Doc Audience
INSTALL.md End-user install + troubleshooting
SERVER.md Local-network / web server mode (gui.py serve)
BUILD.md Build the deliverables yourself
ARCHITECTURE.md Process model, threading, protocols
CONFIG.md Every config key with defaults
CLOUD_STT.md Optional Gemini-API backend (paste a key)
CLOUD_STT_GOOGLE.md Optional Google Cloud STT backend (service account, batch mode)
LIVE.md The Live tab: microphone / system-audio transcription
DENOISE.md The adaptive denoise pre-process
RELEASE_PROCESS.md How to ship a new version
CHANGELOG.md Version history
DECISIONS.md Non-obvious design choices and why
ROADMAP.md · roadmap/ What is being considered next

Coding agents: start at PROJECT_INDEX.md — a generated, tool-neutral repo map built for fast, low-token onboarding.

Frequently asked questions

Is Whisper Transcriber Suite free? Yes. It's BSD-3-Clause licensed, with no subscription, no per-minute cost and no telemetry by default. The Whisper model itself downloads once (~1–3 GB) on first launch; after that the app runs fully offline.

Does it upload my audio or video anywhere? No, not by default. Every default backend — faster-whisper, whisper.cpp, NVIDIA Parakeet — runs locally on your machine. Two backends are opt-in only (cloud_stt via the Gemini API, and google_cloud_stt), and both stay off until you turn them on yourself in Advanced → Backend.

What platforms does it run on? Windows, macOS and Linux. Published downloads are a Windows installer, a Windows portable ZIP, and a macOS DMG; Linux runs from source (docs/BUILD.md).

What transcript formats can it produce? srt vtt ass tsv txt json lrc md docx pdf, plus oTranscribe, ELAN, InqScribe and Express Scribe.

Can it label who is speaking? Yes — optional speaker diarisation ("Identify speakers"), with per-word timestamps and time-range clipping.

Can it transcribe a live microphone or system audio? Yes, from the Live tab. See docs/LIVE.md.

Can it download and transcribe online videos, e.g. from YouTube? Yes, any site yt-dlp supports, with an optional transcribe-on-finish step.

Can it summarize a transcript, pull out action items, or answer questions about it? Yes, via the optional AI Tools tab in the transcript viewer — summarize, action items, ask-a-question, and a per-segment translate pass that writes a bilingual .srt. It's off by default; turn it on in Advanced → AI Layer, using either the bundled local model or your own OpenAI-compatible endpoint (OpenAI, Ollama, LM Studio, OpenRouter).

How is this different from calling the Whisper API directly? It runs the model locally via faster-whisper by default, so there's no per-minute API cost and no audio leaves your machine — unless you explicitly opt into one of the two cloud backends above.

Can several people on the same network use it without installing it on every machine? Yes — Web / LAN access mode turns this machine into a transcription page the other devices on the network can use. See docs/SERVER.md.

Contributing

Issues, pull requests and Discussions are all welcome. CONTRIBUTING.md has the dev setup, the quality bar and the PR conventions; if you are new here, the good first issue label is the place to start.

This project follows the Contributor Covenant. Security reports go through SECURITY.md.

Author and license

Written by translation-robothttps://github.com/translation-robot.

This project's own source is licensed under the BSD 3-Clause License — see LICENSE. The bundled binaries (ffmpeg, ffprobe, yt-dlp), the bundled Python runtime and packages, and the Whisper model itself keep their own upstream licenses; THIRD_PARTY_NOTICES.md summarises them and says what to include when redistributing.


Keywords — offline speech to text · local Whisper GUI · audio to text · video to text · subtitle generator · SRT VTT generator · transcription software · speaker diarization · faster-whisper desktop app · yt-dlp downloader · private on-device transcription · Windows · macOS · Linux

About

Free, offline Whisper transcription for Windows, macOS and Linux. Turn audio and video into SRT, VTT, DOCX, PDF and more, with speaker labels and YouTube downloads. No cloud, no account, nothing leaves your machine.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages