executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
transcriptionUse faster-whisper transcription APIs for ASR, batched inference, timestamps, VAD, language detection, audio decoding, and CPU or CUDA runtime choices.
Independent GitHub snapshot · Automated classification · Original documentation governs
Use this sub-skill when the task is to transcribe, translate, segment, timestamp,
or inspect audio with the faster-whisper Python package. It covers the public
WhisperModel, BatchedInferencePipeline, decode_audio, and VAD/timestamp
surfaces. Use the root skill for installation, backend setup, and model
management decisions that are not specific to one transcription call.
WhisperModel, BatchedInferencePipeline, decode_audio,
VAD, word-level timestamps, hotwords, clip timestamps, language detection,
translation, compute_type, or CPU/CUDA transcription.onnxruntime, or mismatched batched defaults.--help; real
transcription may download or load a model.tiny, base, small, medium, large-v3,
turbo, or distil-large-v3.device="cpu", usually compute_type="int8" or "float32".device="cuda", usually compute_type="float16", "int8_float16",
or another CTranslate2-supported type when NVIDIA CUDA/cuDNN libraries are
available.device="auto" is convenient for exploratory code, but use an explicit
device in reproducible instructions or when troubleshooting.WhisperModel for ordinary transcription or wrap it in
BatchedInferencePipeline for chunked batched inference.transcribe(...) and always consume the returned segment generator with
list(segments) or a for loop. The actual transcription starts when the
generator is iterated.TranscriptionInfo (language, language_probability, duration,
duration_after_vad) and the segment fields (start, end, text,
optional words).Minimal API pattern:
from faster_whisper import WhisperModel
model = WhisperModel("tiny", device="cpu", compute_type="int8")
segments, info = model.transcribe("audio.mp3", beam_size=5, language="en")
segments = list(segments) # transcription runs here
print(info.language, info.language_probability)
for segment in segments:
print(f"[{segment.start:.2f} -> {segment.end:.2f}] {segment.text}")
word_timestamps=True when word-level timing is required; then inspect
segment.words and validate monotonic times.vad_filter=True on WhisperModel.transcribe only when silence removal is
desired; BatchedInferencePipeline.transcribe defaults to vad_filter=True.without_timestamps=False for timestamped output. WhisperModel defaults
to timestamped behavior; BatchedInferencePipeline defaults to
without_timestamps=True.language when known to avoid language-detection uncertainty; use
task="translate" only when English translation is desired.clip_timestamps for explicit audio windows: WhisperModel accepts a
comma-separated string such as "0,30,45,60"; batched transcription accepts a
list of dictionaries like [{"start": 0.0, "end": 30.0}].decode_audio(path, split_stereo=True), transcribe left and right arrays separately, and keep the
channel labels outside faster-whisper.This sub-skill does not cover heavy speed, memory, or WER benchmarking as a runtime workflow. Those scripts require large model downloads, benchmark data, GPU telemetry, or external datasets. Treat benchmark numbers as context, not as required behavior for normal transcription tasks.