mrkeyoor.com_
Fri 16 Oct 18:52 UTC
AI Toolsevaluationupdated 16 Oct 2026

faster-whisper review

Faster-whisper is a Python library that turns audio into text using Whisper models on your own machine. It uses the CTranslate2 inference engine and gives an application control over CPU or NVIDIA GPU execution, batching, and timestamps.

Verdict

Our faster-whisper run passed all 19 tests, but its 62-package environment carried 6 known vulnerabilities in pip-audit. Use it for local transcription inside a Python application after investigating those findings and proving your chosen runtime. Teams needing an HTTP service should evaluate a server integration such as Speaches.

We ran it

Lab card: what happened when we ran faster-whisperScreenshot of faster-whisper (github.com/SYSTRAN/faster-whisper)
Install✓ · 22s62 packages · 459 MB
Build✓ · 0s
Tests✓ · 81s19 passed · 0 failed of 19 (pytest)
Known vulns6(pip-audit)
Repo40 files~4,065 lines of source · 23.8 MB · 1 CI workflows · tests dir

Answers from our run

Does faster-whisper build from source?

Dependencies installed in 22 seconds (62 packages), and the build succeeded in 0s. We cloned commit c45e173 into a clean Debian container with 3 CPUs and no project-specific setup.

Do faster-whisper's tests pass?

Yes: 19 of 19 passed when we ran the project's own test command (pytest). Some failures need services or credentials a bare container does not have.

Does faster-whisper have known vulnerabilities in its dependencies?

pip-audit flagged 6 known advisories in the dependency tree at the time of our run.

Who should not use faster-whisper?

Teams expecting a ready-made authenticated HTTP service: the README presents a Python library and points to separate server integrations.

What are the alternatives to faster-whisper?

whisper.cpp, Speaches. Our faster-whisper run passed all 19 tests, but its 62-package environment carried 6 known vulnerabilities in pip-audit.

Setup3/522-second install passes; model files and GPU runtimes need planning
Docs4/5Clear generator warning, model loading, and CUDA compatibility notes
Community4/5October 15 push and current VAD and timestamp PR activity
Maturity4/519 passing tests; 6 audit findings need investigation

Who it’s for

Python teams adding local audio transcription to an existing application or job queue.
Developers who need segment or word timestamps and configurable silence filtering.
Operators who can manage model files and match their NVIDIA runtime when using GPUs.

Who it’s NOT for

Teams expecting a ready-made authenticated HTTP service: the README presents a Python library and points to separate server integrations.
Operators who must keep an older CUDA stack without dependency pinning: the README requires specific NVIDIA libraries and documents CTranslate2 downgrades for older combinations.
Disconnected deployments that cannot prepare model files: loading a model by name downloads it from Hugging Face.
Callers expecting transcription to finish when transcribe returns: the documented segment generator must be consumed to execute the work.

Setup reality

Our sandbox installed 62 packages in 22 seconds, occupying 459 MB. The build passed in 0 seconds as recorded, and all 19 pytest tests passed in 81 seconds. Pip-audit reported 6 known vulnerabilities. The supplied summary gives no affected package names or severity, so those findings need investigation before deployment.

The library requires Python 3.9 or newer. Local inference needs model files, not a hosted transcription API account. Loading a named model fetches converted weights from Hugging Face, while a local model directory supports prepared deployments. PyAV includes the FFmpeg libraries used for audio decoding.

NVIDIA execution needs cuBLAS for CUDA 12 and cuDNN 9, with documented CTranslate2 version workarounds for older runtimes. Our 3-CPU sandbox did not validate GPU operation. Consume the segment generator to execute transcription, and configure batched silence filtering deliberately.

The Python call returns an iterator, and your worker must consume it

Faster-whisper does not start transcription merely because model.transcribe has returned. The README warns that the returned segments are a generator: you must iterate over them to run the transcription. That detail matters when adding speech recognition to a Python worker. If your job acknowledges completion before consuming the results, a successful function call can conceal unfinished work. The library gives you direct control over transcription, and your application owns the job's lifetime.

The source itself is approachable in size. Our checkout contained 40 files, roughly 4,065 source lines, and occupied 23.8 MB. SYSTRAN implements Whisper inference through CTranslate2, an engine for running trained models, with CPU and NVIDIA GPU options. The useful purchase decision is whether you want that Python component inside an existing application. Someone looking for an upload page or an authenticated transcription endpoint will still need another layer around it.

What happened when we ran it

Our faster-whisper run installed 62 packages in 22 seconds, occupying 459 MB, and the build step succeeded in 0 seconds as recorded. Pytest passed all 19 tests in 81 seconds. We ran commit c45e173 on October 15, 2026, in an unprivileged Debian container with 3 CPUs and 8 GB of RAM, using ghcr.io/astral-sh/uv:python3.12-bookworm. The container had no secrets. The recorded setup and test path completed without a failed step.

Pip-audit reported 6 known vulnerabilities in the installed environment. The supplied summary does not identify the affected packages, advisory severity, or a fix, so it cannot establish which application paths are exposed. That is a concrete follow-up before deployment, even with every test passing. Our scan also found 1 CI workflow file, a tests directory, and no Dockerfile. These observations describe the measured checkout, not every deployment built around the library.

The 81-second test result is not a transcription-speed benchmark. Our measurements contain no audio-throughput, accuracy, or GPU-memory comparison. The README publishes its own performance tables and cautions that decoding settings and CPU thread counts must match for comparisons. We would use a representative recording and the intended model to evaluate a worker's capacity. There is no defensible multiplier to apply to your hardware from the sandbox result alone.

CPU use avoids the CUDA compatibility decision

The README documents Python 3.9 or newer and a CPU mode using integer quantization. Audio decoding goes through PyAV, whose package includes FFmpeg libraries, so the documented path does not require a separate system FFmpeg installation. That removes a familiar setup chore for a file-transcription worker. It does not establish what model will fit your host or whether that model will meet a deadline. Those choices still depend on the recordings you need to process.

Our installed environment occupied 459 MB after bringing in 62 packages. Treat that as the measured environment footprint, not a universal production-image size or a budget for every model's weights. Loading a named model downloads its converted files from Hugging Face, while the README also shows loading a converted model from a local directory. A disconnected deployment should prepare those assets in advance. Local inference does not require buying a hosted transcription API account.

NVIDIA deployment requires matching runtime libraries

GPU execution requires cuBLAS for CUDA 12 and cuDNN 9 according to the README. It documents older CTranslate2 versions as workarounds for older CUDA and cuDNN combinations, along with library-path configuration on Linux. This is a reason to pause if your organization already fixes the GPU runtime across services. A package installation can succeed while leaving the intended accelerator path unresolved. Decide the runtime combination before choosing a container base image.

Our 3-CPU sandbox does not prove any NVIDIA configuration. The 19 passing tests support the recorded environment and cannot certify a separate GPU host. Keep that boundary visible when estimating deployment work. A team with a maintained CUDA image and an existing Python job queue has a more direct route than someone starting with an arbitrary workstation and expecting the package manager to settle accelerator compatibility.

Silence filtering changes which audio reaches transcription

Faster-whisper includes Silero voice-activity detection, which filters audio regions without speech. The README enables that filter by default in batched transcription and exposes settings through vad_parameters. Batching and word timestamps are useful controls for subtitle or archive pipelines, but they deserve checks against the source recording. Trimming silence changes the material fed through the recognizer, so an application should verify that quiet speakers and long pauses still produce acceptable text and timing.

All 19 tests passed in our run, but current maintenance shows why real-audio checks belong beside that result. PR 1409 remained open and described inconsistent silence-filter defaults when a caller supplied a partial parameter dictionary. This report concerns the batched pipeline's own VAD configuration. It is not evidence that every transcript is wrong. For a production worker, set the relevant filter parameters explicitly and retain recordings that exercise the timing behavior you depend on.

An older release tag coexists with October maintenance

The repository was pushed on October 15, 2026, and recent issue and PR activity included VAD and timestamp work. GitHub listed 25,883 stars and 24 open issues and PRs combined. The latest release endpoint returned v1.2.1, published October 31, 2025. Its notes cover batched inference, clip timestamps, and a Silero VAD update. The old tag alone would give a false impression of inactivity, while current source activity does not make those changes available in that release.

Choose faster-whisper when a Python application needs local transcription and you can own model assets, job execution, and runtime selection. If a network service is the actual requirement, the README points to Speaches as a server built around it. For this checkout, the 6 audit findings deserve resolution before a production rollout. Keep the passing suite as evidence for the path it exercised, then make the deployment decision using your recordings and your installed dependency set.

Alternatives

ProjectWhat it isPick it when
whisper.cpp gh↗A C/C++ Whisper implementation with native and Apple Silicon execution paths.pick this instead when native embedding or Apple Metal support matters more than a Python inference API.
SpeachesAn OpenAI-compatible speech server that uses faster-whisper for transcription.pick this instead when your deliverable is a network service around the recognizer rather than an embedded Python library.

What people are saying

  1. [velocity-scout] SYSTRAN/faster-whisper

Sources

  1. Faster-whisper README and runtime requirements
  2. Faster-whisper repository facts
  3. Latest tagged release v1.2.1
  4. PR 1409: batched VAD default inconsistency
  5. Recent issues and pull requests
  6. whisper.cpp native runtime and platform support
  7. Speaches server

More ai tools reviews

universal-modder · DeepEP-Ascend · DeepGEMM-Ascend · hypoarena · jeeves · HeliosGen · the whole board →