Skip to content
Transcribe & subtitle

WhisperX: word-accurate subtitles and speaker labels

A BSD-2-Clause Python tool that adds word timings and speaker labels (diarisation) to Whisper transcripts [2][1].

Does
Word-accurate timings and speaker labels for subtitles
Best for
Interviews, podcasts and multi-speaker talking-head videos
Cost
Free (BSD-2-Clause) [1]; speaker labels need a free Hugging Face token [2]
Runs
Locally, on NVIDIA GPU or CPU
Updated 2 Nov 2026

Whisper's own timestamps are per utterance and can be several seconds out [2]. WhisperX transcribes with faster-whisper, then realigns each word with a wav2vec2 model [2].

What it does

Licence
BSD-2-Clause [1]; diarisation model CC-BY-4.0 [3]
Input
Audio such as WAV or MP3, from the command line or Python [2]
Word timing
wav2vec2 forced alignment; default models for English, French, German, Spanish and Italian, others via Hugging Face [2]
Speed claim
'70x realtime with large-v2' with batched inference (the project's claim) [2]
Hardware
GPU: CUDA toolkit 12.8. CPU and Mac: --compute_type int8 --device cpu [2]
Speaker labels
Hugging Face read token, plus accepting the model's user agreement [2][3]

Integrations

InterfaceStatusDetail
MCP serverMCP · CommunityCommunity wrappers
Command lineCLI · Built inPython commands
API / libraryAPI · Built inPython API

Requirements and setup

  • Python; pip install whisperx or uvx whisperx [2].
  • GPU: install CUDA toolkit 12.8 first; skip it for CPU only [2].
  • Possibly ffmpeg and Rust, as for OpenAI Whisper [2].
  • Speaker labels: a Hugging Face account and read token, with the pyannote/speaker-diarization-community-1 terms accepted [2][3].

Licence, cost and privacy

  • Downloading the gated model shares your Hugging Face contact details, and pyannote may email you. It works offline once downloaded [3].
  • The hosted Replicate demos linked in the README run in the cloud, not on your machine [2].

Limitations

  • Words with no characters in the alignment dictionary, such as '2014.' or '£13.60', get no timing [2].
  • Overlapping speech is handled poorly; diarisation is 'far from perfect' [2].
  • Each language needs its own wav2vec2 model [2].
  • .ass output was removed in version 3 (on the to-do list) [2].
  • Default output files are not documented.
Quick start

Quick start

On a Mac, use the CPU line [2].

Copied from the documentation · source [2]
pip install whisperx
Copied from the documentation · source [2]
uvx whisperx
Copied from the documentation · source [2]
whisperx path/to/audio.wav
Copied from the documentation · macOS · source [2]
whisperx path/to/audio.wav --compute_type int8 --device cpu
Copied from the documentation · source [2]
whisperx path/to/audio.wav --model large-v2 --diarize --highlight_words True
Assembled from documented options, not printed in the docs · source [2]
whisperx path/to/audio.wav --model large-v2 --diarize --hf_token YOUR_HF_TOKEN

--highlight_words True shows word timings in the .srt file [2]. If you know how many people speak, add --min_speakers 2 --max_speakers 2 [2].

Uses for vloggers

  • Word-by-word captions for Shorts and Reels, where timing drift shows.
  • Speaker-labelled interview transcripts for editing or show notes.
  • The free, offline transcription option in VEED OpenEdit [5].

Workflows that use it

Some setupLocal AI subtitles

Turn vlog speech into SRT and VTT subtitle files on your own computer, with an app or the command line, then check every name.

Buzz transcriptionAuto Subs (tmoroney)whisper.cppFFmpeg / ffprobe

Alternatives

Transcribe & subtitlefaster-whisper

Faster Whisper-based transcription with CTranslate2

Free codeOn your computerDeveloperMIT licence
MCP · CommunityCLI · CommunityAPI · Built in
Transcribe & subtitlewhisper.cpp

Run efficient Whisper inference on local hardware

Free codeOn your computerDeveloperMIT licence
MCP · CommunityCLI · Built inAPI · Built in
Transcribe & subtitlepyannote.audio

Identify speakers and diarise multi-voice vlogs

Free codeOn your computer · CloudDeveloperMIT licence
MCP · CommunityCLI · Built inAPI · Built in
Transcribe & subtitleAuto Subs (tmoroney)

Generate speech subtitles inside Resolve, Premiere or After Effects workflows

Free codeOn your computerSome setupMIT licence
MCP · None foundCLI · Built inAPI · None found

Sources

  1. raw.githubusercontent.com/m-bain/whisperX/main/LICENSE fetched 2 Nov 2026
  2. raw.githubusercontent.com/m-bain/whisperX/main/README.md fetched 2 Nov 2026
  3. pyannote/speaker-diarization-community-1 · Hugging Face fetched 2 Nov 2026
  4. GitHub - jianfch/stable-ts: Transcription, forced alignment, and audio indexing with OpenAI's Whisper · GitHub fetched 2 Nov 2026
  5. raw.githubusercontent.com/veedstudio/open-edit/main/README.md fetched 2 Nov 2026