write-talk-script

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Write Talk Script

生成演讲脚本

Produce a speaker script that fits an exact talk slot: every slide gets a word budget at the speaker's real pace, a cumulative timing mark, a written-out transition, and a marked cut list so running long on stage has a pre-planned answer. Slides tell the audience what to look at; this script is what the speaker actually says. It is the post-acceptance companion to
make-slides
.
生成适配精确演讲时段的演讲脚本:每张幻灯片会根据演讲者的真实语速分配字数预算、累计计时标记、书面过渡语,以及标记好的删减清单,这样即使在台上演讲时长超标也有预先规划的应对方案。幻灯片负责展示内容,而本脚本则是演讲者实际要说的内容。它是
make-slides
工具在论文录用后的配套工具。

When to use

使用场景

  • "Write the script for my 12-minute SIGSPATIAL talk" / "15-minute slot including 3 minutes of Q&A — what do I say?"
  • "Turn my deck into speaker notes I can rehearse from"
  • "My talk is running long — what do I cut?"
  • "I have a 5-minute lightning talk / spotlight"
  • After
    make-slides
    , before the first timed rehearsal.
  • “为我12分钟的SIGSPATIAL演讲写脚本” / “15分钟时段包含3分钟问答——我该说什么?”
  • “把我的幻灯片组转换成可用于排练的演讲者笔记”
  • “我的演讲时长超标——该删减哪些内容?”
  • “我需要做5分钟的闪电演讲/重点演讲”
  • 在运行
    make-slides
    之后,首次计时排练之前。

Inputs

输入信息

  1. The exact slot: total minutes, and whether Q&A is inside the slot or handled separately. Ground truth is the presenter instructions and the acceptance email, not memory and not venue profiles.
  2. The deck or an outline (slide titles in order). No deck yet? Run
    make-slides
    first.
  3. The paper (camera-ready preferred) — the only legitimate source for every number and claim spoken.
  4. Optional:
    venues/conferences/<venue>-<year>.yml
    for venue context, and the speaker's measured pace in words per minute.
  1. 精确的时段信息:总时长,以及问答环节是否包含在时段内。真实依据为演讲者须知和录用邮件,而非记忆或会场概况。
  2. 幻灯片组或大纲(按顺序排列的幻灯片标题)。还没有幻灯片组?先运行
    make-slides
    工具。
  3. 论文(优先使用终稿)——所有提及的数字和陈述的唯一合法来源。
  4. 可选:
    venues/conferences/<venue>-<year>.yml
    会场配置文件,以及演讲者实测的语速(词/分钟)。

Process

流程步骤

  1. Pin down the slot facts. Ask for: total minutes, Q&A inside or outside, session language, and whether the chair uses timecards. If a venue profile exists, use it for context only and re-verify against the live
    cfp_url
    / venue website — profiles do not encode talk slots, and slots change year to year. Typical shapes (verify, never assume): full papers 12–20 min including Q&A; CHI historically ~10 min + 5 Q&A; lightning/spotlight 1–7 min. Details in references/timing-and-cuts.md.
  2. Calibrate the pace. Default to 130 wpm — a deliberate conference pace. If the speaker can do the 1-minute read-aloud calibration (timing-and-cuts.md §2), use their measured number; suggest 110–120 wpm for non-native speakers or dense technical material. Never exceed 150.
  3. Build the outline file. One line per slide (a
    - 
    bullet or
    ## 
    heading), in deck order. Pin slides that need fixed time with a trailing
    | <minutes>
    (e.g.
    - Key idea | 2
    ). Title and takeaway slides typically pin at 0.5.
  4. Compute the word budget. Run:
    python3 scripts/word_budget.py --minutes 15 --qa 3 --outline outline.md \
        [--wpm 120] [--venue-profile venues/conferences/<venue>.yml]
    Also save the machine-readable form for step 6:
    python3 scripts/word_budget.py ... --json > budget.json
    . The script reserves a safety buffer (default 0.5 min) so the talk lands early, never at the bell. No outline yet?
    --slides N
    splits evenly.
  5. Draft the script slide by slide, inside each slide's word budget, in spoken register — short sentences, contractions, signposts, numbers written the way they are said. Follow references/script-craft.md for the file format (one
    ## 
    heading per slide,
    [bracketed]
    stage directions and timing marks, written-out transitions as the last sentence of each slide), opening and closing patterns, and figure walkthroughs. Every factual claim must trace to the paper — quote the paper's numbers, then render them speakable.
  6. Time the draft. Run:
    python3 scripts/script_timer.py talk-script.md --budget budget.json
    (or
    --minutes 15 --qa 3
    without a budget file). Fix
    OVER
    slides by cutting words, not by planning to speak faster; re-run until the verdict is
    WITHIN BUDGET
    . Exit codes: 0 within budget, 1 over, 2 bad input.
  7. Build the cut list. Mark 2–3 cuttable passages totaling 10–15% of the talk with
    <!-- CUT: label -->
    <!-- END CUT -->
    (each marker on its own line, no nesting, no crossing slide boundaries). What to cut first and what must never be cut: timing-and-cuts.md §6. Re-run
    script_timer.py
    — it reports each cut's seconds saved and whether applying all cuts rescues an overrun.
  8. Finalize the rehearsal package. Insert the budget's timing mark at the top of each slide section (e.g.
    [4:30]
    ), add the Q&A handoff line, and append the rehearsal protocol and the on-stage running-long protocol (timing-and-cuts.md §8–9). Tell the user the timing holds only after at least one full out-loud rehearsal with a timer.
  1. 确认时段细节。询问以下信息:总时长、问答环节是否包含在内、会议语言、是否有计时牌。如果存在会场配置文件,仅将其作为参考,并通过
    cfp_url
    /会场官网重新核实——配置文件不包含演讲时段信息,且时段每年可能变化。典型时段(务必核实,切勿假设):全论文演讲12–20分钟(含问答);CHI会议历史上约为10分钟演讲+5分钟问答;闪电/重点演讲1–7分钟。详情见references/timing-and-cuts.md
  2. 校准语速。默认语速为130词/分钟——这是会议演讲的标准语速。如果演讲者能完成1分钟朗读校准(timing-and-cuts.md §2),则使用其实测数值;对于非母语演讲者或内容密集的技术演讲,建议语速为110–120词/分钟。语速绝不超过150词/分钟。
  3. 创建大纲文件。每张幻灯片占一行(使用
    - 
    项目符号或
    ## 
    标题),按幻灯片组顺序排列。需要固定时长的幻灯片可在末尾添加
    | <minutes>
    (例如
    - 核心观点 | 2
    )。标题页和总结页通常固定为0.5分钟。
  4. 计算字数预算。运行:
    python3 scripts/word_budget.py --minutes 15 --qa 3 --outline outline.md \
        [--wpm 120] [--venue-profile venues/conferences/<venue>.yml]
    同时保存机器可读格式用于步骤6:
    python3 scripts/word_budget.py ... --json > budget.json
    . 脚本会预留一个安全缓冲时间(默认0.5分钟),确保演讲提前结束,而非刚好卡在计时结束点。还没有大纲?使用
    --slides N
    平均分配时长。
  5. 逐页撰写脚本草稿,控制在每张幻灯片的字数预算内,采用口语化风格——短句、缩略语、提示语,数字按口语表达写法。遵循references/script-craft.md中的文件格式(每页幻灯片对应一个
    ## 
    标题,
    [方括号]
    内为舞台提示和计时标记,每页最后一句为书面过渡语)、开场和结尾模式,以及图表讲解方式。所有事实性陈述必须能追溯到论文——引用论文中的数字,再转换为口语化表达。
  6. 为草稿计时。运行:
    python3 scripts/script_timer.py talk-script.md --budget budget.json
    (或不使用预算文件,直接用
    --minutes 15 --qa 3
    )。通过删减内容修正时长超标的幻灯片,而非计划加快语速;重新运行直到判定结果为
    WITHIN BUDGET
    。退出代码:0表示符合预算,1表示超时,2表示输入错误。
  7. 创建删减清单。标记2–3处可删减的段落,总时长占演讲的10–15%,使用
    <!-- CUT: label -->
    <!-- END CUT -->
    标记(每个标记单独占一行,不嵌套,不跨幻灯片)。优先删减内容和绝不能删减的内容:见timing-and-cuts.md §6。重新运行
    script_timer.py
    ——它会报告每处删减节省的时长,以及应用所有删减是否能解决超时问题。
  8. 整理最终排练包。在每张幻灯片部分的顶部插入预算中的计时标记(例如
    [4:30]
    ),添加问答环节衔接语,并附上排练流程和台上超时应对流程(timing-and-cuts.md §8–9)。告知用户只有经过至少一次完整的出声计时排练后,时长估算才有效。

Output

输出内容

  • talk-script.md
    — one
    ## 
    section per slide: timing mark, word count, spoken prose with stage directions, transition sentence, cut blocks; ends with the Q&A handoff and a rehearsal checklist.
  • budget.json
    — the per-slide budget, reusable on every re-timing pass.
  • A timing report (from
    script_timer.py
    ) showing the talk fits, with the cut list and seconds saved per cut.
  • talk-script.md
    ——每页幻灯片对应一个
    ## 
    章节:计时标记、字数统计、带舞台提示的口语化文本、过渡句、删减块;结尾包含问答环节衔接语和排练清单。
  • budget.json
    ——每页幻灯片的预算,可在每次重新计时时复用。
  • 计时报告(来自
    script_timer.py
    ),显示演讲符合时长要求,包含删减清单及每处删减节省的时长。

Adapt to your discipline

适配不同学科

The defaults target CS conference talks (12–20 min, slide-driven, English). For other fields, adjust the section shares in your outline (e.g. methods- heavy medical talks), the pace (
--wpm
), and the venue norms in timing-and-cuts.md — the scripts are field-agnostic.
默认设置针对计算机科学会议演讲(12–20分钟,幻灯片驱动,英文)。对于其他学科,可调整大纲中的章节占比(例如方法导向的医学演讲)、语速(
--wpm
),以及timing-and-cuts.md中的会场规范——脚本工具与学科无关。

Guardrails

约束规则

  • Never invent results, numbers, quotes, or citations for the script — every claim spoken must come from the user's paper. New references go through
    verify-citations
    first.
  • Timing is an estimate, not a guarantee: never tell the user the talk "fits" without a real timed rehearsal; word-rate math ignores nerves, laser-pointer detours, and clicker failures (that is what the buffer and cut list are for).
  • Venue profiles never override presenter instructions or the acceptance email for slot length; re-verify against the live
    cfp_url
    before scripting.
  • Preserve the speaker's voice and precise technical claims — spoken register is a rewrite for the ear, not a simplification of the science, and not a read-aloud of paper paragraphs.
  • Never upload the script or slides to any speaker portal, or submit anything on the user's behalf.
  • 绝不编造脚本中的结果、数字、引用或参考文献——所有演讲中的陈述必须来自用户的论文。新增参考文献需先通过
    verify-citations
    工具验证。
  • 时长仅为估算,非绝对保证:未经过真实计时排练,绝不告知用户演讲“符合时长”;词速计算未考虑紧张情绪、激光笔操作失误和翻页器故障(这正是缓冲时间和删减清单的作用)。
  • 会场配置文件绝不替代演讲者须知和录用邮件中的时段时长;在撰写脚本前,需通过
    cfp_url
    重新核实。
  • 保留演讲者的风格和精确的技术陈述——口语化改写是为了适合听觉接收,而非简化科学内容,也不是直接朗读论文段落。
  • 绝不将脚本或幻灯片上传至任何演讲者平台,也绝不代表用户提交任何内容。