Guide · Open source
How to use faster-whisper: install, transcribe audio and tips
Updated · written with AI from the project's own documentation and checked against our catalogue data
faster-whisper is an open-source Python library that transcribes speech in audio files to text using OpenAI's Whisper models, reimplemented on the CTranslate2 inference engine. It is aimed at developers who want to add speech-to-text to an application, or anyone who wants to run Whisper locally on an NVIDIA GPU or a CPU. After this guide you will be able to install it, load a model, transcribe an audio file, and turn on word-level timestamps and voice activity filtering.
Quick start
- 1Check Python version. Confirm you have Python 3.9 or greater installed.
- 2Install the package. Run pip install faster-whisper to install the library from PyPI.
- 3Set up GPU libraries if needed. For GPU use, install NVIDIA cuBLAS for CUDA 12 and cuDNN 9, following the README's options.
- 4Load a model. Create a WhisperModel with a model size, device and compute type such as cuda with float16, or cpu with int8.
- 5Transcribe your audio. Call model.transcribe on an audio file and iterate over the returned segments to print their times and text.
- 6Add options as needed. Enable word_timestamps for word-level timing or vad_filter to remove long silences.
What faster-whisper is and who it is for
faster-whisper reimplements Whisper using CTranslate2, which the project describes as a fast inference engine for Transformer models. The README says it is up to 4 times faster than openai/whisper for the same accuracy while using less memory, and that 8-bit quantization can improve efficiency on both CPU and GPU.
It is a code library, not an app. The README shows only Python usage, so there is no graphical interface to click through.
- Good fit: Python developers adding speech-to-text to an application
- Good fit: batch transcription where lower time or memory use matters
- Good fit: running Whisper locally on an NVIDIA GPU or a CPU
- Not a fit: people who want a ready-made transcription app with a graphical interface
Check the requirements before you install
You need Python 3.9 or greater. FFmpeg does not have to be installed separately, because audio is decoded with the PyAV library, which bundles the FFmpeg libraries.
GPU use needs NVIDIA cuBLAS for CUDA 12 and cuDNN 9. The README notes that the latest ctranslate2 versions support only CUDA 12 and cuDNN 9. Older setups need pinned ctranslate2 versions, which the README lists for CUDA 11 with cuDNN 8 and for CUDA 12 with cuDNN 8.
- Python 3.9 or greater
- NVIDIA cuBLAS for CUDA 12 and cuDNN 9 (only for GPU use)
- CPU-only use does not need the NVIDIA libraries
Install faster-whisper with pip
The module is published on PyPI, so you can install it with pip. The README also lists installs from the master branch or a specific commit, which are alternatives to the PyPI release.
pip install faster-whisperTranscribe an audio file with WhisperModel
Create a WhisperModel with a model size, a device and a compute type, then call transcribe on your audio file. The README example uses large-v3 on the GPU with FP16 precision. For INT8 on the GPU or on the CPU, the README shows alternative device and compute_type settings in comments.
transcribe returns a generator called segments along with an info object. The transcription only runs when you iterate over segments. To run it all at once, convert segments to a list.
- device="cuda" with compute_type="float16" for GPU at FP16
- device="cuda" with compute_type="int8_float16" for GPU at INT8
- device="cpu" with compute_type="int8" for CPU at INT8
from faster_whisper import WhisperModel
model_size = "large-v3"
# Run on GPU with FP16
model = WhisperModel(model_size, device="cuda", compute_type="float16")
# or run on GPU with INT8
# model = WhisperModel(model_size, device="cuda", compute_type="int8_float16")
# or run on CPU with INT8
# model = WhisperModel(model_size, device="cpu", compute_type="int8")
segments, info = model.transcribe("audio.mp3", beam_size=5)
print("Detected language '%s' with probability %f" % (info.language, info.language_probability))
for segment in segments:
print("[%.2fs -> %.2fs] %s" % (segment.start, segment.end, segment.text))Get word-level timestamps and filter silence
Pass word_timestamps=True to transcribe to get a start and end time for each word inside each segment. To drop parts of the audio without speech, the library integrates the Silero VAD model through the vad_filter option. The README says the default only removes silence longer than 2 seconds, and that VAD parameters and their defaults are in the source code.
- word_timestamps=True adds timing for each word
- vad_filter=True removes silence longer than 2 seconds by default
segments, _ = model.transcribe("audio.mp3", word_timestamps=True)
for segment in segments:
for word in segment.words:
print("[%.2fs -> %.2fs] %s" % (word.start, word.end, word.word))Speed up large batches with batched transcription
For many files or long recordings, BatchedInferencePipeline wraps a WhisperModel. Its transcribe method is a drop-in replacement for WhisperModel.transcribe and takes a batch_size argument. The README example uses the turbo model on CUDA with FP16. The README benchmarks show that batching raises memory use, so check your VRAM or RAM when you raise batch_size.
from faster_whisper import WhisperModel, BatchedInferencePipeline
model = WhisperModel("turbo", device="cuda", compute_type="float16")
batched_model = BatchedInferencePipeline(model=model)
segments, info = batched_model.transcribe("audio.mp3", batch_size=16)
for segment in segments:
print("[%.2fs -> %.2fs] %s" % (segment.start, segment.end, segment.text))Use distil-whisper models
The README says Distil-Whisper checkpoints are compatible with faster-whisper. It points to distil-large-v3 as designed to work with the faster-whisper transcription algorithm. The example sets language to en and condition_on_previous_text to False.
from faster_whisper import WhisperModel
model_size = "distil-large-v3"
model = WhisperModel(model_size, device="cuda", compute_type="float16")
segments, info = model.transcribe("audio.mp3", beam_size=5, language="en", condition_on_previous_text=False)
for segment in segments:
print("[%.2fs -> %.2fs] %s" % (segment.start, segment.end, segment.text))What people use it for
- Adding speech-to-text to a Python application
- Transcribing large batches of audio files with BatchedInferencePipeline
- Creating word-level timestamps for captions or search over transcripts
- Running Whisper locally on a CPU or an NVIDIA GPU
Frequently asked questions
Is faster-whisper free to use?
faster-whisper is released under the MIT licence, as listed in the project metadata. The source does not describe any paid tier.
What are the requirements for faster-whisper?
You need Python 3.9 or greater. GPU use also needs NVIDIA cuBLAS for CUDA 12 and cuDNN 9. FFmpeg does not need to be installed separately because PyAV bundles it.
How do I install faster-whisper?
Run pip install faster-whisper. The README says the module can be installed from PyPI with this command.
Is faster-whisper faster than openai/whisper?
The README says it is up to 4 times faster than openai/whisper for the same accuracy while using less memory. It also says 8-bit quantization can improve speed further.
Why does my GPU setup fail with faster-whisper?
The README says the latest ctranslate2 supports only CUDA 12 and cuDNN 9. Older CUDA or cuDNN setups need a pinned ctranslate2 version, such as 4.4.0 for CUDA 12 with cuDNN 8, or 3.24.0 for CUDA 11 with cuDNN 8.
What are alternatives to faster-whisper?
The README lists openai/whisper, whisper.cpp, WhisperX and distil-whisper as comparable projects. The README benchmarks also include transformers and whisper.cpp implementations.
New agent skills, repos and AI tools — every week
The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.
Our verdict
faster-whisper suits Python developers and batch users who want Whisper running faster or with less memory on a GPU or CPU. If you want a graphical transcription app, or you run Python 3.8 or older, pick a different tool.
Install options & downloads