wyattblue/auto-editor

auto-editor-transcribe

Transcribe a media file or live microphone to text or subtitles with auto-editor's whisper subcommand, then edit by spoken content — cut to keep (or drop) sections whose subtitles match a word or regex.

Ver código-fonte
Documento original do Skill

Renderizado do repositório de origem, preservando títulos, exemplos, código, tabelas, links e imagens.

Transcribe & edit by speech

Use auto-editor's whisper.cpp (Whisper or NVIDIA Parakeet models) or Apple Speech backend to transcribe audio. Cut a timeline based on subtitle content with --edit subtitle/word.

Transcribe — auto-editor whisper

auto-editor whisper <file|:mic> <model> [options]

Set <model> to a ggml model path. Three backends, chosen by the model:

  • Whisper: ggml-small.en.bin, ggml-medium.en.bin, ggml-large-v3.bin, …

(https://huggingface.co/ggerganov/whisper.cpp). 99+ languages, --translate, --prompt.

  • Parakeet: any model with "parakeet" in the filename, e.g.

ggml-parakeet-tdt-0.6b-v3-q8_0.bin (https://huggingface.co/ggml-org/parakeet-GGUF). Faster than Whisper at comparable English accuracy; language is auto-detected. --translate, --prompt, and --language are rejected.

  • Apple: the magic model name apple uses Apple's built-in transcriber;

requires macOS 26 or later.

Only the first audio stream of a file is used. Audio is resampled to 16 kHz, and text prints to stdout by default.

bash
auto-editor whisper example.mp4 ggml-medium.en.bin                      # plain text → stdout
auto-editor whisper example.mp4 ggml-medium.en.bin --format srt -o out.srt
auto-editor whisper example.mp4 ggml-parakeet-tdt-0.6b-v3-q8_0.bin      # parakeet backend
auto-editor whisper example.mp4 apple --language en_US                  # macOS 26+

Options: --format text|srt|json, -o/--output FILE, -l/--language en (default auto), -tr/--translate (→ English), -sw/--split-words (one word per cue), --queue SECS (default 30), --prompt TEXT, --threads N (default 4), and -t/--threshold THRES (default 0.04).

--split-words works with on all backends. Parakeet is the most accurate.

With the apple model, set --language to a supported language or locale. Apple speech cannot auto-detect language, so auto falls back to en_US with a warning. Do not pass --translate or --prompt; neither is supported. The first use of a language may download Apple's speech model and therefore needs network access.

Transcribe a live microphone

Pass :mic instead of a file. Stop capture gracefully with Ctrl-C.

bash
auto-editor whisper :mic ggml-medium.en.bin
auto-editor whisper :mic apple --language en_US    # macOS 26+
auto-editor whisper :mic ggml-medium.en.bin -o transcript.srt

This streams the microphone directly to transcription and does not save a media recording. To retain and edit the captured audio, use auto-editor :mic; editor and timeline exports save a sibling lossless-FLAC _RECORDING.mka by default.

Live capture supports macOS, Windows, and Linux:

  • macOS uses AVFoundation and prefers a USB microphone, then the system default.
  • Windows uses DirectShow and prefers a USB microphone, then the first audio capture device.
  • Linux uses the default ALSA input device.

When -o/--output ends in .srt, .json, .txt, or .text, the output format is inferred unless --format is set explicitly.

Edit by spoken content

--edit subtitle/word marks the time a matching subtitle line occupies as active (kept by default). Use an existing subtitle stream, or transcribe to an .srt first and feed it in.

MethodActive when…Args (defaults)
subtitle / regexpattern (regex) matches a linepattern="" (empty matches every line), stream=0, ignore-case=#f
wordvalue appears as a whole wordvalue required, stream=0, ignore-case=#t

pattern is optional for subtitle/regex: with none, the empty regex matches every subtitle line, so --edit subtitle keeps all sections that have a subtitle (i.e. cut everything with no speech). word, by contrast, requires a value.

bash
# Keep only sections that have any subtitle (cut the silent gaps between speech)
auto-editor talk.mkv --edit subtitle

# Keep only sections where "introduction" is spoken
auto-editor lecture.mp4 --edit word:introduction

# Regex match (case-insensitive); keep matched lines
auto-editor talk.mkv --edit "subtitle:pattern=(yes|no),ignore-case=#t"

# Cut filler words instead of keeping them: invert with `not`
auto-editor video.mp4 --edit "(not word:um)"

Transcribe → cut workflow

When the media has no subtitle stream, generate a sidecar named after the input — for talk.mp4, auto-editor auto-loads talk.srt (then talk.ass) when the requested subtitle stream isn't embedded:

bash
auto-editor whisper talk.mp4 ggml-medium.en.bin --format srt -o talk.srt
auto-editor talk.mp4 --edit word:question        # picks up talk.srt automatically

Inspect subtitle streams with auto-editor subdump FILE (text subtitles only; bitmap subtitles won't dump).

For loudness/motion-based cutting and pace, see the auto-editor skill.