theplasmak/faster-whisper
Overview
This skill provides local speech-to-text using faster-whisper, a CTranslate2 reimplementation of OpenAI Whisper. It delivers 4–6x faster CPU performance and up to ~20x realtime with GPU acceleration while keeping identical model accuracy. The skill supports standard and distilled models and can output word-level timestamps for subtitles and programmatic workflows.
How this skill works
The skill runs faster-whisper binaries and Python tooling to load Whisper-compatible models locally and transcribe audio files. It auto-detects GPU (CUDA) when available, applies quantization options (int8/float16) for efficiency, and can produce JSON, plain text, or timestamped word outputs. Command-line flags let you choose model, language, VAD, beam size, and output format for batch or single-file processing.
When to use it
- Transcribing meetings, interviews, podcasts, lectures, or video audio locally without sending data to a cloud service
- Batch-processing large audio collections where API costs or latency are a concern
- Generating subtitles or captions that require word-level timestamps
- Multilingual transcription with automatic language detection for 99+ languages
- Faster English-only runs using distilled .en models for maximum speed
Best practices
- Always enable GPU/CUDA when available — CPU runs are substantially slower; verify with nvidia-smi or the setup output
- Start with distil-large-v3 for an excellent speed/accuracy balance; use large-v3-turbo for highest accuracy when needed
- Specify --language when you already know the language to skip auto-detection and save time
- Use --word-timestamps for subtitle workflows and --json for programmatic pipelines
- If you hit OOM, switch to a smaller model or use --compute-type int8 to reduce memory
Example use cases
- Quickly transcribe a 10-minute meeting on a local GPU in under a minute for immediate notes
- Batch-convert a podcast library to JSON transcripts with word timestamps for search indexing
- Produce subtitles for a YouTube video by extracting audio with yt-dlp and running the transcribe script with --word-timestamps
- Run privacy-sensitive transcription offline for interviews or legal recordings without cloud upload
- Process multilingual conference recordings with automatic language detection and per-segment outputs
FAQ
Model weights download requires internet once; after that transcription runs fully offline.
Which model should I pick for speed vs accuracy?
Use distil-large-v3 for best balance; distil-medium.en or distil-small.en for English-only faster runs; large-v3-turbo for maximum accuracy.
Why is GPU recommended?
GPU (CUDA) yields ~20x realtime performance; CPU-only can be 10–30x slower depending on model and hardware.
How do I get word-level timestamps?
Enable the --word-timestamps flag when running the transcribe script to include per-word timing suitable for captions.