Subtitles aren't "done once transcription is finished". Spoken subtitles need to becomfortably segmented, with correct proper nouns, and aligned with the visuals. Four steps.
Workflow
视频/音频 → ① 转写(带时间) → ② 口播式断句 → ③ AI 校对 → ④ 输出 SRT/ASS →(可选)烧录
① Transcription
- Extract 16k mono wav → ASR (any available backend: SenseVoice / whisper / Volc)
- Produce time-stamped word-level or sentence-level results
② Spoken-style sentence segmentation
Subtitle segmentation is different from punctuation; segment bybreath and semantics, not by written punctuation:
- One screen of subtitles ≤ one sentence readable at a glance (Chinese generally ≤15 characters/line, shorter for vertical screens)
- Break at natural pauses, don't split a phrase across two screens
- Filler words/colloquialisms can be kept (more authentic), or cleaned up per user preference
③ AI proofreading (most critical)
ASR first drafts always have errors; focus on correcting three types:
- Proper nouns: names of people, product names, English abbreviations (Qoder, HyperFrames, MCP…) — build a glossary and feed it in for consistency
- Homophones: highly frequent in Chinese ASR ("在/再", "的/得", "做/作")
- Punctuation and numbers: "百分之八十七" in speech → "87%" normalized as needed
If there is editing (space-video-edit), subtitlesmust be re-transcribed and re-proofread based on the edited video, and the original video's subtitles cannot be reused.
④ Output
subtitles.srt: generalsubtitles.ass: when styling is needed (font, outline, position, per-character karaoke), use- Naming corresponds to the finished video
Burning (optional)
# 软字幕(可关) —— 封装进容器
ffmpeg -i in.mp4 -i subtitles.srt -c copy -c:s mov_text out.mp4
# 硬字幕(烧进画面) —— 带样式
ffmpeg -i in.mp4 -vf "subtitles=subtitles.ass" -c:a copy out_hard.mp4
For vertical screens, mind the subtitle safe area (don't let platform UI block it); generally keep it above the bottom 1/5 of the frame.
Handoff
- Upstream:
space-video-edit'ssource_cut.mp4, or any finished video/audio - Downstream: finished video with subtitles →
space-video-coveror publish directly
Dependencies
ffmpeg, one ASR backend; burning ASS requires ffmpeg with libass.
Core principles
- Segment by breath, not by punctuation
- Build the glossary for proper nouns first: unify the glossary to avoid the same word being correct in half the episode and wrong in the other half
- Re-transcribe after editing: for edited videos, subtitles must be redone