BLOG · COMPARISON ·

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

IN BRIEF
  • 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.

PROJECTLICENCEBASED ONLATEST RELEASE
faster-whisperMITCTranslate21.2.1, 31 Oct 2025
WhisperXBSD-2-Clausefaster-whisper, wav2vec2, pyannote3.8.6, 25 May 2026
whisper.cppMITggml, C/C++v1.9.5 (marked Latest)
openai-whisperMITPyTorch20250625, 26 Jun 2025
insanely-fast-whisperMITTransformers0.0.15, 27 May 2024
NeMo (Parakeet, Canary)Apache 2.0PyTorch3.0.0, 7 Aug 2026
vLLMApache 2.0PyTorch18 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.

IMPLEMENTATIONSETTINGSTIMEGPU MEMORY
openai-whisperfp162 min 23 s4,708 MB
Transformers (SDPA)fp161 min 52 s4,960 MB
whisper.cpp, Flash Attentionfp161 min 05 s4,127 MB
faster-whisperfp161 min 03 s4,525 MB
faster-whisper, batch 8fp1617 s6,090 MB
faster-whisper, batch 8int816 s4,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.

FUNCTIONFASTER-WHISPERWHISPERXWHISPER.CPP
Word timestampsword_timestamps=Truewav2vec2 forced alignmentexperimental, -ml 1
Speaker labelsnot in the READMEpyannote community-1experimental tinydiarize
Voice activity filterSilero VADVAD before batchingSilero VAD with --vad
Batched transcriptionyesyesnot in the README
Server modenot in the READMEnot in the READMEwhisper-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_timestamps=True 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_supported_compute_types("cuda") 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.

TIERCARD AND MEMORYWHAT RUNSFOR WHOMWHY
Development workstation1 × RTX PRO 4000 Blackwell, 24 GBall three runtimes, Whisper large with alignment and pyannote, one batch at a timeone developer building the pipeline18.5 GiB usable, about 9.2 GiB left after Whisper large
Benchmark workstation1 × RTX PRO 6000 Workstation Edition, 96 GBWhisper large-v3, turbo, Parakeet and a summary model loaded side by side, larger batchesa team comparing runtimes on its own audio83.0 GiB usable, about 55 GiB left after both Whisper models and gpt-oss-20b
Transcription serverL40S 48 GB, or RTX PRO 6000 Server Edition in MIG instancesthe service behind NIM or vLLM, queues from several departmentsa company-wide speech serviceMIG 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.

  1. Take one hour of typical audio: a meeting, a phone call and a recording with long pauses.
  2. 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.
  3. Record the time per hour of audio and the peak GPU memory from nvidia-smi.
  4. Compare word error rates against a transcript a person corrected, and check the pauses for invented text.
  5. 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?
In faster-whisper's own README benchmark on an 8 GB card, the two were close for one file transcribed in order: 63 seconds against 65 seconds for 13 minutes of audio with Whisper large-v2. With a batch size of 8, faster-whisper took 17 seconds. For queues of recordings on a server, faster-whisper's batched mode is the faster choice.
What is the difference between WhisperX and faster-whisper?
WhisperX uses faster-whisper for the transcription and adds two steps: word-level timestamps through a wav2vec2 alignment model and speaker labels through pyannote. Plain faster-whisper returns word timestamps as an option, and its README describes no speaker labels.
Does faster-whisper run on RTX PRO Blackwell GPUs?
CTranslate2's changelog adds CUDA 12.8 support in 4.6.3, so install that release or later, with an NVIDIA driver from 570.26 on Linux, and confirm with a first test run that the card is used. CTranslate2 disables INT8 on sm_120 Blackwell GPUs, so use float16 or bfloat16 there.
How much GPU memory do faster-whisper and WhisperX need?
OpenAI gives about 10 GB for Whisper large and about 6 GB for turbo. faster-whisper's README shows 4,525 MB for large-v2 in float16 and 6,090 MB with a batch size of 8 on its test card; WhisperX states less than 8 GB for large-v2. Alignment and speaker models add to that.
Parakeet or faster-whisper: which is faster?
Parakeet TDT 0.6B v3 transcribed about 23 times as fast as Whisper large-v3 on the same A100 in the Open ASR Leaderboard paper, with a similar German word error rate. It covers 25 European languages; Whisper covers many more.
Which GPU does a Whisper transcription server need?
For development, one RTX PRO 4000 Blackwell with 24 GB runs all three runtimes. For benchmarks with several models loaded, one RTX PRO 6000 Workstation Edition with 96 GB. For a company-wide service, an L40S or RTX PRO 6000 Server Edition server behind NIM or vLLM.
Where can I buy a GPU workstation for Whisper, and what does it cost?
From us, across the EU on one EU contract and invoice: RTX PRO workstations and servers alone, the setup of faster-whisper or WhisperX alone, or both together. We quote the exact configuration in writing; the price depends on the card, memory, storage and the software set-up.

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 expert
Talk to an expert

We reply within one business day

By sending this form you agree that we process your details to answer your enquiry; see our privacy policy.

request@eurokommerz.at
Jordangasse 7, 1010 Vienna