Workflow leaderboard / Research / Transcription
Batch-transcribe lectures into reviewable subtitles
批量转写讲座并生成可复核字幕
Convert a folder of lectures or field recordings into timestamped subtitles, with a human correction pass and traceable source files.
Variants
Free & local / 免费本地
~35 min setup
An NVIDIA GPU with 8 GB VRAM is helpful for medium or large models. CPU works for smaller models but is slower.
| Component | Role | Price | Link |
|---|---|---|---|
| faster-whisper 1.2.1 | local speech recognition with segment timestamps | Free / 免费MIT-licensed software; local compute and model downloads are separatechecked 2026-08-02 | https://github.com/SYSTRAN/faster-whisper/releases/tag/v1.2.1 |
| Subtitle Edit 5.1.0 | waveform-assisted subtitle correction and export | Free / 免费GPL-3.0 open-source desktop softwarechecked 2026-08-02 | https://github.com/SubtitleEdit/subtitleedit/releases/tag/v5.1.0 |
Save as transcribe_to_srt.py
import argparse
from faster_whisper import WhisperModel
def stamp(sec):
ms = round(sec * 1000); h, ms = divmod(ms, 3600000); m, ms = divmod(ms, 60000); s, ms = divmod(ms, 1000)
return f'{h:02}:{m:02}:{s:02},{ms:03}'
p = argparse.ArgumentParser(); p.add_argument('--input', required=True); p.add_argument('--output', required=True); p.add_argument('--model', default='medium')
a = p.parse_args(); model = WhisperModel(a.model, device='auto', compute_type='auto')
segments, _ = model.transcribe(a.input, vad_filter=True, beam_size=5)
with open(a.output, 'w', encoding='utf-8') as out:
for i, seg in enumerate(segments, 1): out.write(f'{i}\n{stamp(seg.start)} --> {stamp(seg.end)}\n{seg.text.strip()}\n\n')
Install and transcribe one recording
uv venv --python 3.12 .venv
. .venv/bin/activate
uv pip install 'faster-whisper==1.2.1'
mkdir -p transcripts
python transcribe_to_srt.py --input recordings/lecture01.m4a --output transcripts/lecture01.machine.srt --model medium
sha256sum recordings/lecture01.m4a transcripts/lecture01.machine.srt > transcripts/lecture01.SHA256SUMS
Review protocol
review_order:
- names_and_technical_terms
- numbers_units_and_negation
- segment_boundaries
- inaudible_markers
required_outputs:
- machine_draft_srt
- corrected_srt
- correction_log
rule: Never overwrite the machine draft.
Known pitfalls
- Speech recognition can change negation, numbers and specialist terms while remaining fluent.
- Automatic language detection can fail on short or code-switched clips.
- Subtitle review is manual and must not be represented as automatic validation.
- Confirm consent and retention rules before processing participant recordings.