口播脚本时长控制 video-script-timer
给口播稿做时长测算与字数预算的本地工具。输入文本,按语速反推时长、按目标时长反推字数、按段切片、做时长体检。纯标准库实现,零第三方依赖,不联网。
何时使用
- 写短视频口播稿,要控制在 60-120 秒(抖音/视频号常见窗口)
- 拿到一段文案,问"读出来大概多久"
- 给定目标时长,问"还能再写多少字"或"超了要删多少字"
- 长稿要切成几段分别配音/分镜
- 体检:是否超时、是否偏短、单句是否太长
子命令
estimate — 估算时长
python3 scripts/video_script_timer.py estimate --text "口播文本" [--file 文件]
[--speed 1.3] [--cps 4.0] [--wps 2.5]
[--pause] [--pause-weak 0.3] [--pause-strong 0.6]
[--target 秒 | --min 秒 | --max 秒] [--json]
- 默认中文 4.0 字/秒、英文 2.5 词/秒(≈150 wpm)
--speed倍速作用于基准(如 1.3 → 中文 5.2 字/秒);--cps/--wps直接覆盖--pause启用标点停顿:逗号/顿号类 +0.3s、句号/问号类 +0.6s、省略号 +0.5s、破折号 +0.4s(可改)- 输出中文字数、英文词数、标点停顿、朗读时长、总时长(mm:ss)
- 带
--target/--min/--max时额外做时长对比
budget — 字数预算
python3 scripts/video_script_timer.py budget --target 120
python3 scripts/video_script_timer.py budget --text "稿" --max 60
--target 秒:反推纯中文可写字数 / 纯英文可写词数--text/--file+--max/--min:告知当前超/缺多少秒、需删/可加多少字
split — 按段切片
python3 scripts/video_script_timer.py split --text "稿" --seg 30 [语速参数]
- 按句切分并贪心装箱到每段 ≈目标秒(不打断句子),输出每段文本与时长
review — 时长体检
python3 scripts/video_script_timer.py review --text "稿" --max 120 [--min 5] [--json]
- 体检:超上限(风险,exit 1)、低于下限(提醒)、语速偏离常见区间(2-9 字/秒)、单句 >15s(节奏提醒)
- 命中 risk 时进程退出码为 1,便于流水线拦截
presets — 预设参考
python3 scripts/video_script_timer.py presets
- 输出语速与时长窗口预设(中文原速/偏快/1.3 倍速、英文常速/快速、各平台时长窗口)
语速模型
- 时长 = 中文字数 ÷ 中文语速 + 英文词数 ÷ 英文语速 + 标点停顿
- 中文按字、英文按空格/标点分隔的字母数字串为词,分别计速
- 倍速作用于基准语速:有效语速 = 基准 × 倍速
边界与说明
- 估算为通用参考值,实际因主播语速、停顿、情绪、背景音乐而异
- 不写稿、不改写文案,只做时长测算与字数预算
- 空文本合法(返回 0 时长);语速须为正数;
review必须有--max - 结果仅供参考,不构成任何制作或平台合规承诺