faster-whisper vs WhisperX vs whisper.cpp: choosing a Whisper runtime for NVIDIA GPUs
Eurokommerz, Vienna, since 2006: Private AI/ML · IT Managed Services · Enterprise Training · AI Hardware & Software
- faster-whisper runs Whisper on the CTranslate2 engine; in its own README benchmark on an 8 GB card it transcribed 13 minutes of audio in 63 seconds unbatched and in 17 seconds with a batch size of 8, against 2 minutes 23 seconds for OpenAI's reference code
- WhisperX adds word-level timestamps through wav2vec2 alignment and speaker labels through pyannote on top of faster-whisper; whisper.cpp is a C/C++ port that also runs on CUDA and was about as fast as unbatched faster-whisper in the same benchmark
- As of October 2026 faster-whisper's latest release is 1.2.1 of 31 October 2025, while CTranslate2 underneath is at 4.8.4 (25 October 2026), WhisperX at 3.8.6 (25 May 2026) and whisper.cpp at v1.9.5
- On RTX PRO Blackwell cards (sm_120) install CTranslate2 4.6.3 or later, the first release whose changelog lists CUDA 12.8 support; the changelog also disables INT8 for sm_120 from 4.6.2, so plan with float16
- You can order the workstation alone, the setup of faster-whisper, WhisperX and the speech models alone, or both together: the workstation delivered with everything installed and configured
Supplied by Eurokommerz: NVIDIA RTX PRO 4000 Blackwell Check price and availability →
Which Whisper runtime fits a GPU transcription service
For a transcription service on NVIDIA GPUs, faster-whisper is the usual engine: it runs OpenAI's Whisper models on CTranslate2, transcribes in batches and needs the least code. WhisperX builds on faster-whisper and adds exact word timestamps and speaker labels, which subtitles and interview transcripts need. whisper.cpp is a C/C++ port that suits CPUs and small devices and runs on CUDA too, at about the speed of unbatched faster-whisper in the side-by-side benchmark that faster-whisper publishes.
This comparison is for the engineer who picks the runtime before the service is built. It covers the state of each project as of October 2026, the speed figures the projects publish and what they measured, timestamps and speaker labels, the setup on RTX PRO Blackwell cards, and the point at which a different model family, NVIDIA's Parakeet, does the job faster. Model memory, live streams per GPU and NVIDIA's speech NIM are sized in our guide to Whisper GPU requirements; this page does not repeat them.
The runtimes and their state in October 2026
Seven projects come up when teams search for the fastest Whisper implementation. Three of them are the subject here; the others are the reference they are measured against or the alternative for a larger service.
| PROJECT | LICENCE | BASED ON | LATEST RELEASE |
|---|---|---|---|
| faster-whisper | MIT | CTranslate2 | 1.2.1, 31 Oct 2025 |
| WhisperX | BSD-2-Clause | faster-whisper, wav2vec2, pyannote | 3.8.6, 25 May 2026 |
| whisper.cpp | MIT | ggml, C/C++ | v1.9.5 (marked Latest) |
| openai-whisper | MIT | PyTorch | 20250625, 26 Jun 2025 |
| insanely-fast-whisper | MIT | Transformers | 0.0.15, 27 May 2024 |
| NeMo (Parakeet, Canary) | Apache 2.0 | PyTorch | 3.0.0, 7 Aug 2026 |
| vLLM | Apache 2.0 | PyTorch | 18 Oct 2026; actively developed |
PyPI pages of each package, GitHub pages of faster-whisper, WhisperX and whisper.cpp (whisper.cpp's releases page shows no year for v1.9.5), vLLM speech-to-text documentation of 19 October 2026; all read on 30 October 2026.
Two dates matter for planning. faster-whisper has had no release since 31 October 2025, but the engine it calls, CTranslate2, is active: version 4.8.4 appeared on PyPI on 25 October 2026. Its changelog lists a fix in the Whisper alignment path in 4.8.1 (3 July 2026) and new CPU and GPU implementations of operations for audio models in 4.8.4. A current installation therefore combines faster-whisper 1.2.1 with a current CTranslate2. insanely-fast-whisper, a command-line tool on Hugging Face Transformers, has had no release since May 2024, and its PyPI page calls it "purely community driven", which makes it a weak base for a company service. WhisperX on GitHub already carries 3.8.7rc1 in its project file, a release candidate, so production installs stay on 3.8.6.
Published speed figures and what they measure
None of the three READMEs gives a figure for RTX PRO Blackwell cards, and we found no independent measurement of all three runtimes on one GPU. The most complete comparison comes from faster-whisper's own README. It transcribed 13 minutes of audio with Whisper large-v2 at beam size 5 on an 8 GB GeForce RTX 3070 Ti with CUDA 12.4, using openai-whisper v20240930, whisper.cpp v1.7.2, Transformers 4.46.3 and faster-whisper 1.1.0.
| IMPLEMENTATION | SETTINGS | TIME | GPU MEMORY |
|---|---|---|---|
| openai-whisper | fp16 | 2 min 23 s | 4,708 MB |
| Transformers (SDPA) | fp16 | 1 min 52 s | 4,960 MB |
| whisper.cpp, Flash Attention | fp16 | 1 min 05 s | 4,127 MB |
| faster-whisper | fp16 | 1 min 03 s | 4,525 MB |
| faster-whisper, batch 8 | fp16 | 17 s | 6,090 MB |
| faster-whisper, batch 8 | int8 | 16 s | 4,500 MB |
faster-whisper README on GitHub, read on 30 October 2026; 13 minutes of audio, Whisper large-v2, beam size 5. Measurements by the faster-whisper project, not by us.
By our arithmetic, 780 seconds of audio in 63 seconds is about 12 times real time for unbatched faster-whisper, and 65 seconds gives about the same for whisper.cpp. Batching is what separates them: with a batch size of 8 faster-whisper reached about 46 times real time on the same card. For a single file transcribed in order, the two engines are close; for a queue of recordings on a server, faster-whisper's BatchedInferencePipeline, which its README calls "a drop-in replacement" for the normal transcribe call, makes the difference.
WhisperX states on its project page "batched inference for 70x realtime transcription using whisper large-v2" and "<8GB gpu memory for large-v2 with beam_size=5", without naming the GPU. insanely-fast-whisper published figures from an A100 80 GB: 150 minutes of audio took 1 minute 38 seconds with Whisper large-v3 in Transformers at batch 24 with Flash Attention 2, and 9 minutes 23 seconds with Whisper large-v2 in faster-whisper at beam size 1 without batching. By our arithmetic that is about 92 and 16 times real time. The comparison dates from 2024, uses two different model versions and pits a batched pipeline against an unbatched one, so it says more about batching than about the engines.
The speed of a runtime on your server therefore depends on the batch size, the beam size, the model (large-v3, turbo or a distilled model), the compute type, how much silence the voice activity filter removes, and the length of your files. A one-hour test on your own recordings gives the figure that matters.
Word timestamps, speaker labels and long recordings
Whisper itself returns timestamps per segment. WhisperX's README puts it plainly: the timestamps "are at the utterance-level, not per word, and can be inaccurate by several seconds". The three runtimes deal with this differently.
| FUNCTION | FASTER-WHISPER | WHISPERX | WHISPER.CPP |
|---|---|---|---|
| Word timestamps | word_ | wav2vec2 forced alignment | experimental, -ml 1 |
| Speaker labels | not in the README | pyannote community-1 | experimental tinydiarize |
| Voice activity filter | Silero VAD | VAD before batching | Silero VAD with --vad |
| Batched transcription | yes | yes | not in the README |
| Server mode | not in the README | not in the README | whisper-server |
READMEs of faster-whisper, WhisperX and whisper.cpp on GitHub, read on 30 October 2026.
WhisperX aligns each word with a separate phoneme model. Default alignment models exist for English, French, German, Spanish and Italian; other languages need a suitable wav2vec2 model from Hugging Face, which the README asks you to find and test yourself. Check their licences: for French, German, Spanish and Italian the defaults are torchaudio's VoxPopuli models, which torchaudio redistributes under CC BY-NC 4.0, a non-commercial licence, while the English default is under MIT. For a company service, pass an alignment model whose licence allows commercial use with --align_model, for example an Apache 2.0 wav2vec2 model for German from Hugging Face, and check its word timing on your own audio. Words with characters the alignment model does not know, such as numbers and currency, "cannot be aligned and therefore are not given a timing". Speaker labels come from pyannote's speaker-diarization-community-1 model, which needs a Hugging Face access token and accepted conditions once; the README adds that "diarization is far from perfect" and that overlapping speech is not handled well. Our guide to speaker diarisation on-premise covers that model in depth.
faster-whisper returns word timestamps when word_ is set and filters silence with the Silero model. Its README notes that the default filter is conservative and removes only silence longer than 2 seconds, and that the filter is on by default in batched mode. Filtering silence matters because Whisper's model card warns that its predictions "may include texts that are not actually spoken in the audio input", and WhisperX describes its VAD step as one that "reduces hallucination".
whisper.cpp marks both word timestamps and its speaker-turn detection as experimental. The speaker feature uses a special English small model and inserts a marker where the speaker changes; it does not label who speaks. Its strength lies elsewhere: a C/C++ program without Python, quantised models and the whisper-server example, which the README describes as an "HTTP transcription server with OAI-like API".
Installation on RTX PRO Blackwell cards and CUDA errors
Every RTX PRO Blackwell card is compute capability 12.0, sm_120 in compiler terms. NVIDIA's release notes for CUDA 12.8 state that it "adds compiler support" for the Blackwell architectures SM_100, SM_101 and SM_120, and give the minimum driver for CUDA 12.8 as 570.26 on Linux and 570.65 on Windows. Software built against older CUDA releases fails with the error described in our guide to "no kernel image is available" on sm_120.
For faster-whisper the component to check is CTranslate2. Its changelog ties Blackwell support to two releases: 4.6.2 of 5 December 2025 lists "Disable INT8 for sm120 - Blackwell GPUs", and 4.6.3 of 6 January 2026 adds "Support for CUDA 12.8" and makes cuDNN optional. No later entry up to 4.8.4 re-enables INT8 on sm_120. On an RTX PRO card, install CTranslate2 4.6.3 or later, use float16 or bfloat16, and treat the INT8 rows of any older benchmark as figures for other GPUs. ctranslate2.get_ returns the compute types the library supports on the installed card. The faster-whisper README also says that current CTranslate2 releases support only CUDA 12 and cuDNN 9.
WhisperX pins PyTorch 2.8 in the project file on its main branch and takes it from PyTorch's CUDA 12.8 wheel index, and its README asks for the CUDA 12.8 toolkit before installation. Its own requirement for CTranslate2 is only 4.5.0 or later, so on Blackwell pin 4.6.3 or later yourself. For whisper.cpp the README gives cmake -B build -DGGML_CUDA=1; build it against CUDA 12.8 or newer. The pywhispercpp bindings (1.5.1 of 22 August 2026) ship CPU-only wheels on PyPI, and GPU support means building from source. Apps built on these engines have the same issue in their own packaging, which is why Scriberr ships a separate Blackwell image, as our comparison of self-hosted transcription apps describes. noScribe, the desktop app in our guide to interview transcription with noScribe, runs on faster-whisper and asks for an NVIDIA driver from 570.65, the Windows minimum NVIDIA lists for CUDA 12.8.
You can order the workstation alone, the setup of faster-whisper, WhisperX and the speech models alone, or both together: the workstation delivered with everything installed and configured; write to us and we suggest the best solution for your tasks and budget.
When Parakeet or another engine is the better choice
When throughput across many hours of recordings is the target, a different model often helps more than a faster Whisper runtime. In the Open ASR Leaderboard paper (arXiv 2510.06961v3, December 2025), NVIDIA's Parakeet TDT 0.6B v3 transcribed about 3,333 seconds of audio per second of computing on one A100, against 145.5 for Whisper large-v3, about 23 times as fast by our arithmetic, with a German word error rate of 4.90 per cent against 4.97. Parakeet covers 25 European languages under CC BY 4.0 and runs in NVIDIA's NeMo toolkit (3.0.0, Apache 2.0) or in NVIDIA's speech NIM. Our comparison of German speech recognition models shows where the models differ on accents and dialects.
vLLM serves Whisper through an OpenAI-compatible /v1/audio/transcriptions endpoint, with a default upload limit of 25 MB that an environment variable raises. Its documentation of 19 October 2026 calls beam search "highly inefficient" for Whisper for now, so plan greedy decoding there. vLLM suits a company that already runs it for its language models and wants one API for both. Speaches wraps faster-whisper in an OpenAI-compatible speech server; its latest release on GitHub, v0.9.0-rc.3, is a release candidate, and our guide to local AI dictation shows dictation apps calling such a server. For live captions, where audio arrives in small chunks, our guide to on-premise live captions covers the streaming servers built on these engines.
Hardware for each stage of the project
Speech models are small next to language models: OpenAI gives about 10 GB of GPU memory for Whisper large and about 6 GB for turbo. The card is chosen by what else runs beside them and by how many jobs run at once. We size with our users-per-card rule: 90 per cent of the memory the driver reports, less 3 GiB per card.
| TIER | CARD AND MEMORY | WHAT RUNS | FOR WHOM | WHY |
|---|---|---|---|---|
| Development workstation | 1 × RTX PRO 4000 Blackwell, 24 GB | all three runtimes, Whisper large with alignment and pyannote, one batch at a time | one developer building the pipeline | 18.5 GiB usable, about 9.2 GiB left after Whisper large |
| Benchmark workstation | 1 × RTX PRO 6000 Workstation Edition, 96 GB | Whisper large-v3, turbo, Parakeet and a summary model loaded side by side, larger batches | a team comparing runtimes on its own audio | 83.0 GiB usable, about 55 GiB left after both Whisper models and gpt-oss-20b |
| Transcription server | L40S 48 GB, or RTX PRO 6000 Server Edition in MIG instances | the service behind NIM or vLLM, queues from several departments | a company-wide speech service | MIG isolates runtimes on one card; rack cooling for continuous queues |
usable memory by our rule 18.5 GiB (24 GB card) and 83.0 GiB (96 GB card); Whisper large about 10 GB and turbo about 6 GB (OpenAI's Whisper repository); gpt-oss-20b 12.8 GiB of weights (Hugging Face files page); MIG up to four instances on the RTX PRO 6000 (NVIDIA). Our estimate, not a measurement.
On the RTX PRO 4000, Whisper large at 9.3 GiB leaves about 9.2 GiB of the 18.5 GiB for batches, the alignment model and pyannote, by our estimate; enough to build and test the pipeline, tight for large batches next to other models. On the 96 GB RTX PRO 6000 Workstation Edition, Whisper large-v3 and turbo together take about 14.9 GiB, and with gpt-oss-20b for summaries 27.7 GiB, which leaves about 55 GiB for batch size and further models, by our estimate. If the summary model runs in vLLM, lower its --gpu-memory-utilization from the default of 0.92, because vLLM reserves that share of the card when it starts. The Workstation Edition is rated at 600 W; a second card fits the same workstation when two runtimes should run full queues at once.
For a shared service, the L40S with 48 GB has no MIG, so one card serves one runtime or one NIM. NVIDIA's NIM FAQ states that "Using NIM in production requires an NVIDIA AI Enterprise license", which we also supply, as our guide to free and licensed NVIDIA software explains; the open-source runtimes on this page need no such licence. On the RTX PRO 6000 Server Edition, MIG splits a card into up to four isolated instances, for example Whisper with WhisperX in one and Parakeet in another. The entry server on our AI servers page carries two such cards and draws about 1.8 kW at the wall by our estimate. How many recordings per hour any of these tiers handles depends on the factors listed above; no published RTFx exists for these runtimes on RTX PRO cards, so a test run on the delivered system gives the figure.
We build these workstations and servers to order; send us your hours of audio per week, the languages and whether you need word timing or speaker labels, and our team replies with a configuration.
A test plan before you choose
A short benchmark on your own recordings settles the choice in a day of work.
- Take one hour of typical audio: a meeting, a phone call and a recording with long pauses.
- Transcribe it with faster-whisper unbatched and with a batch size of 8 or 16, with WhisperX, and with whisper.cpp built for CUDA, all with the same model and float16.
- Record the time per hour of audio and the peak GPU memory from
nvidia-smi. - Compare word error rates against a transcript a person corrected, and check the pauses for invented text.
- Check word timing on numbers and names if the output feeds subtitles or a search index.
The result usually points one way. faster-whisper fits a service your own code calls; WhisperX fits subtitles, interview transcripts and anything that needs speaker labels; whisper.cpp fits CPUs, edge devices and a single binary without Python. Parakeet fits large volumes in the 25 languages it covers.
FAQ
Is faster-whisper or whisper.cpp faster on a GPU?
What is the difference between WhisperX and faster-whisper?
Does faster-whisper run on RTX PRO Blackwell GPUs?
How much GPU memory do faster-whisper and WhisperX need?
Parakeet or faster-whisper: which is faster?
Which GPU does a Whisper transcription server need?
Where can I buy a GPU workstation for Whisper, and what does it cost?
We supply workstations and servers for speech recognition alone, set up faster-whisper, WhisperX or whisper.cpp alone, or deliver both together. Describe your task in a few sentences and our team will help. We reply within one business day. The first call is free.
Talk to an expertWe reply within one business day