Local Whisper Studio
Offline speech-to-text with waveform editing and subtitle export—no API calls, no monthly bills.
What is this?
Local Whisper Studio is a desktop-first transcription and subtitle editor that brings OpenAI's Whisper directly to your machine. Drag in audio or video files, get instant transcripts with automatic speaker diarization, sync edits to the waveform in real-time, and export to SRT, VTT, or TXT formats. Everything runs offline—no API costs, no internet dependency, no vendor lock-in.
Features
- Offline Transcription – Powered by OpenAI Whisper; runs entirely on your hardware
- Speaker Diarization – Automatically identify and label different speakers
- Waveform Editor – Sync transcript edits to audio timeline with visual feedback
- Multi-format Export – SRT, VTT, and plain text subtitle formats
- Video & Audio Support – Handle MP4, MOV, MP3, WAV, and more
- Zero API Costs – No recurring bills or cloud dependencies
- Web UI & CLI – Choose your workflow: browser interface or command-line scripting
Quick Start
Installation
Requires Python 3.9+
# Clone the repository
git clone <repo-url>
cd local-whisper-studio
# Install dependencies
pip install -e .
# Download Whisper model (first run only)
whisper-studio download-model base
Usage
Web Interface:
whisper-studio serve
# Opens http://localhost:5000 in your browser
CLI:
# Transcribe an audio file
whisper-studio transcribe audio.mp3 --output transcript.srt --format srt
# With diarization
whisper-studio transcribe video.mp4 --diarize --output subtitled.srt
Python API:
from whisper_studio import TranscriptionEngine
engine = TranscriptionEngine(model="base")
result = engine.transcribe("audio.mp3")
for segment in result.segments:
print(f"{segment.speaker}: {segment.text}")
Tech Stack
- Whisper – Speech recognition model (OpenAI)
- Pyannote – Speaker diarization
- FastAPI – Web server
- Vanilla JS + Wavesurfer.js – Waveform editor UI
- FFmpeg – Audio/video processing
License
MIT
Release files for local-whisper-studio 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| local_whisper_studio-0.1.0.tar.gz | 13.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| local_whisper_studio-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 28.2 kB
Release files / local_whisper_studio-0.1.0.tar.gz
| Download URL | local_whisper_studio-0.1.0.tar.gz |
|---|---|
| Size | 13.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f639e4866ac482a361813a7565e2b6b57b1555854c1456c2196302e026da50c9
|
|
BLAKE2b-256 checksum How to use checksums |
03426ab559ddd54cb6a06b06587ae5ce4efc7b64c7ff34dbbbb38b111d13e06f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.25
|
Release files / local_whisper_studio-0.1.0-py3-none-any.whl
| Download URL | local_whisper_studio-0.1.0-py3-none-any.whl |
|---|---|
| Size | 14.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
06bfee55043bc016072632eb72b8ec6f00a6479034dec289bd4fccfe23df9a5b
|
|
BLAKE2b-256 checksum How to use checksums |
0a2f71b5f67bd60e0cf3420ff9914c5e7394db28af31efb70fe5c71f0494c179
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.25
|