Skip to content

faster-whisper

What it is

faster-whisper is a reimplementation of OpenAI's Whisper speech-to-text model using the CTranslate2 inference engine. It produces the same transcripts as Whisper while running roughly 4x faster and using significantly less memory, with support for 8-bit and float16 quantization on both CPU and GPU. It runs fully offline once a model is downloaded.

What problem it solves

Reference Whisper is accurate but slow and memory-hungry, which makes large transcription backlogs painful on home-lab hardware. faster-whisper makes local, private transcription practical: it transcribes audio quickly on a CPU or a modest GPU, with no cloud speech API and no audio ever leaving the machine.

Where it fits in the stack

Process & Understanding / Speech-to-text. It is the transcription engine that feeds downstream pipelines — turning voice notes, meeting recordings, or scanned-media audio into text for Paperless-ngx, Obsidian notes, or RAG indexes. It is the engine behind many self-hosted transcription front-ends.

Typical use cases

  • Batch-transcribing a backlog of recordings offline on a TrueNAS box or MacBook.
  • Adding searchable transcripts to archived audio/video before ingestion into Paperless-ngx.
  • Powering a local voice-to-text step in an n8n automation.
  • Generating subtitles/captions for a personal media library.

Strengths

  • Fast and lightweight: ~4x faster than reference Whisper with lower memory via CTranslate2.
  • Offline and private: no cloud dependency; audio stays local.
  • Quantization options: int8/float16 let large models run on commodity hardware.
  • Word-level timestamps & VAD: built-in voice-activity detection improves long-audio accuracy.

Limitations

  • Library, not an app: it is a Python package — you build or adopt a front-end around it.
  • Model accuracy ceiling: inherits Whisper's limits on heavy accents, overlapping speech, and rare languages.
  • GPU setup: GPU acceleration needs a compatible CUDA/cuDNN stack.

When to use it

  • When you need offline, fast, private transcription at volume on local hardware.
  • As the engine inside a self-hosted transcription or note-taking pipeline.
  • When reference Whisper is too slow or too memory-heavy for your machine.

When not to use it

  • When you want a turnkey GUI rather than a library to integrate.
  • For real-time, ultra-low-latency streaming at scale (specialized streaming ASR may fit better).
  • When the highest possible accuracy on difficult audio outweighs local/offline constraints.

Getting started

Installation

pip install faster-whisper

Basic Usage

from faster_whisper import WhisperModel

# Initialize model (downloads on first run)
model = WhisperModel("base", device="cpu", compute_type="int8")

# Transcribe audio file
segments, info = model.transcribe("audio.mp3", beam_size=5)

print(f"Detected language '{info.language}' with probability {info.language_probability:.2f}")

for segment in segments:
    print(f"[{segment.start:.2f}s -> {segment.end:.2f}s] {segment.text}")

CLI examples

1. Simple Transcription via Python one-liner

python3 -c "from faster_whisper import WhisperModel; m=WhisperModel('base'); s,_=m.transcribe('audio.mp3'); [print(seg.text) for seg in s]"

2. Using community CLI (whisper-ctranslate2)

# Install CLI tool
pip install whisper-ctranslate2

# Transcribe with the CLI
whisper-ctranslate2 audio.mp3 --model base --device cpu

API examples

1. Word-level Timestamps

from faster_whisper import WhisperModel

model = WhisperModel("small", device="cpu")
segments, _ = model.transcribe("audio.mp3", word_timestamps=True)

for segment in segments:
    for word in segment.words:
        print(f"[{word.start:.2f}s -> {word.end:.2f}s] {word.word}")

2. Voice Activity Detection (VAD) Filtering

from faster_whisper import WhisperModel

model = WhisperModel("medium", device="cpu")
# Enable VAD filter to skip non-speech parts
segments, _ = model.transcribe(
    "audio.mp3",
    vad_filter=True,
    vad_parameters=dict(min_silence_duration_ms=500)
)

for segment in segments:
    print(segment.text)

Licensing and cost

  • Open Source: Yes (MIT)
  • Cost: Free
  • Self-hostable: Yes (runs entirely locally)
  • Whisper — The reference model faster-whisper reimplements.
  • Paperless-ngx — Common downstream destination for transcripts.
  • Ollama — Pair with a local LLM to summarize transcripts offline.
  • n8n — Orchestrate transcription as an automation step.
  • MLX — Apple-silicon backend for accelerated local inference.
  • Docling — Local document parser for the text side of ingestion.
  • Audiobookshelf — Self-hosted audio library that benefits from transcripts.
  • Apache Tika — Content/text extraction companion in ingestion pipelines.
  • Ragas — Evaluating the quality of transcription-fed RAG pipelines.

Sources / references

Contribution Metadata

  • Last reviewed: 2026-06-24
  • Confidence: high