Whishper Reloaded is an open-source, self-hosted audio transcription suite with a full web UI. Powered by OpenAI Whisper (Faster-Whisper), it runs 100% locally β no cloud, no data leakage. Transcribe, translate, and edit subtitles in SRT/VTT/TXT format from any audio or video file.
Project status: This project began as Whishper by Pluja, who remains the original creator and main contributor of the core idea and codebase. Whishper Reloaded is now maintained solo by me, devdema, going forward. If you find this useful, please consider supporting the original project too.
- Features
- Quick Start
- Running with Docker
- Screenshots
- Comparison with Alternatives
- FAQ
- Contributing
- Credits
Everything from the original Whishper, plus a set of improvements added in this fork.
- π£οΈ Transcribe any media to text: audio, video, etc.
- Transcribe from URLs (any source supported by yt-dlp).
- Upload a file to transcribe.
- π₯ Download transcriptions in many formats: TXT, JSON, VTT, SRT or copy the raw text to your clipboard.
- π Translate your transcriptions to any language supported by Libretranslate.
- βοΈ Powerful subtitle editor so you don't need to leave the UI!
- Transcription highlighting based on media position.
- CPS (Characters per second) warnings.
- Segment splitting.
- Segment insertion.
- Subtitle language selection.
- π 100% Local: transcription, translation and subtitle edition happen 100% on your machine (can even work offline!).
- π Fast: uses FasterWhisper as the Whisper backend: get much faster transcription times on CPU!
- π Quick and easy setup: use the quick start script, or run through a few steps!
- π₯ GPU support: use your NVIDIA GPU to get even faster transcription times!
- π CPU support: no GPU? No problem! Whishper can run on CPU too.
- Decoupled containers: run backend, frontend and whishper-api as separate containers (DockerHub frontend, DockerHub backend). Useful if your powerful transcription machine is not always on and you need the service available at all times!
- Search bar to find specific transcriptions.
- Better page loading through pagination, avoiding blocking UI threads that made browsers lag.
- Feedback banners on connections to available services, with a more fail-tolerant approach to translations and new transcriptions.
- Rename transcriptions after a successful transcription.
- Import/Export via JSON: download the current transcription as JSON, edit it externally for pre-processing, and reupload it for real-time editing.
- Real-time editing improvements:
- Audio-only mode for the Whishper editor.
- Playback shortcuts [F7, F8, F9].
- Navigate through segments using TAB.
- Go to current segment / navigate to a specific segment number.
Get a full self-hosted Whisper transcription stack running with Docker Compose in a few steps:
# 1. Clone the repository
git clone https://github.com/DevDema/whishper-reloaded.git
cd whishper-reloaded
# 2. Create your .backend.env and .frontend.env files (see "Environment files" below)
# 3. Bring the whole stack up
docker compose up -dThe web UI will then be available at http://localhost:3000.
Whishper is a collection of pieces that work together. The main pieces are:
- Transcription-API: the API that runs Faster-Whisper. Found in the
transcription-apifolder. - Whishper-Backend: the backend that coordinates frontend calls, database, and tasks. Found in the
backendfolder. - Whishper-Frontend: the frontend (web UI) of the application. Found in the
frontendfolder. - Translation (3rd party): the LibreTranslate container used for translating subtitles.
- MongoDB (3rd party): the database that stores all information about your transcriptions.
- Nginx (3rd party): the proxy that allows running everything from a single domain.
Thanks to the decoupled architecture, you can run all the components on a single machine, or split them across several machines (for example, keeping the GPU-heavy whishper-api on a separate, occasionally-on machine while the rest of the stack stays always available).
The following docker-compose.yml runs the backend, MongoDB and frontend on the same server, while whishper-api is hosted on a different machine:
services:
whishper-mongo:
image: mongo:latest
container_name: whishper-mongo
env_file:
- .backend.env
restart: unless-stopped
volumes:
- ./db_data/db:/data/db
- ./db_data/logs/:/var/log/mongodb/
environment:
MONGO_INITDB_ROOT_USERNAME: ${DB_USER:-whishper}
MONGO_INITDB_ROOT_PASSWORD: ${DB_PASS:-whishper}
expose:
- 27017
ports:
- 27017:27017
command: mongod --logpath var/log/mongodb/mongod.log
whishper-frontend:
image: thespartan94/whishper-frontend:latest
container_name: whishper-frontend
ports:
- "3000:3000"
expose:
- 3000
env_file:
- .frontend.env
volumes:
- ./whishper-frontend/logs:/var/log/whishper
depends_on:
- whishper-backend
whishper-backend:
image: thespartan94/whishper-backend:latest
container_name: whishper-backend
ports:
- 8080:8080
env_file:
- .backend.env
volumes:
- ./uploads:/uploads
- ./whishper-backend/logs:/var/log/whishper
depends_on:
- whishper-mongoThe docker-compose.yml references two env files, one for the backend and one for the frontend.
.backend.env:
UPLOAD_DIR=/uploads
ASR_ENDPOINT=<external-ip-address:8000> # assuming default port
DB_USER=whishper # if default
DB_PASS=whishper # if default
DB_ENDPOINT=whishper-mongo:27017
TRANSLATION_ENDPOINT=<external-ip-address:5000> # assuming default port.frontend.env:
PUBLIC_API_HOST=<external-public-api-host>
PUBLIC_TRANSLATION_API_HOST=<external-public-translation-api-host>
PUBLIC_INTERNAL_API_HOST=http://whishper-backend:8080
PUBLIC_WHISHPER_PROFILE=gpu # or cpuOnce your env files are in place, bring everything up with:
docker compose up -dThe web UI will be available at http://localhost:3000.
| Dashboard | New transcription |
|---|---|
![]() |
![]() |
| Subtitle editor | Download & export |
![]() |
![]() |
Translation jobs run in the background β status is visible directly from the dashboard.
Looking for a self-hosted Whisper alternative or an offline transcription tool? Here is how Whishper Reloaded compares to popular options:
| Tool | Self-hosted | Web UI | Subtitle Editor | Translation | 100% Local |
|---|---|---|---|---|---|
| Whishper Reloaded | β | β | β | β | β |
| whisper.cpp | β | β | β | β | β |
| MacWhisper | β | β | β | β | β |
| Buzz | β | β | β | β | β |
| Otter.ai | β | β | β | β | β |
| Sonix | β | β | β | β | β |
Yes. Whishper Reloaded runs 100% locally β once you have the Docker images and Whisper model downloaded, no internet connection is required.
Simply upload your Italian audio file and select "Italian" as the source language. Faster-Whisper supports 99+ languages including Italian, French, German, Spanish, Japanese, and more.
Yes. See the Quick Start section for a one-line Docker Compose setup.
Yes. Whishper Reloaded supports NVIDIA GPU acceleration via CUDA for faster transcription. CPU-only mode is also supported.
Yes. Using LibreTranslate, you can translate any transcription to any supported language.
Any format that FFmpeg can read, plus any URL supported by yt-dlp (YouTube, podcasts, and many more). Whishper extracts the audio and transcribes it automatically.
Yes. It is fully open-source under the license shown in the badge above, and free to self-host on your own hardware.
Contributions are welcome! Feel free to open a PR with your changes, or take a look at the issues to see if there is something you can help with.
See CONTRIBUTING.md for local development setup and guidelines.
- Whishper by Pluja β the original project and main contributor. Whishper Reloaded would not exist without it; please consider supporting the original idea.
- Faster Whisper
- LibreTranslate
- Maintained by devdema.




