Skip to content

脚本生成

Pipeline

视频 + Whisper 字幕


  上下文组装(视频元数据 + 字幕摘要 + 风格偏好)


  LLM 生成(5 家 Provider 可选)


  脚本解析(分段 + 时间戳对齐)


  质量检查(一致性 / 长度 / 风格)


  输出(JSON + Markdown 双格式)

上下文组装

Director 阶段产出的 DirectorPlan 作为输入:

ts
interface DirectorPlan {
  segments: Array<{
    id: string;
    startTime: number;
    endTime: number;
    intent: 'hook' | 'body' | 'reveal' | 'transition' | 'cta';
    style: 'humor' | 'shock' | 'emotion' | 'professional' | 'documentary';
  }>;
  overallTone: string;
  targetDuration: number;
}

Prompt 模板

每种风格有独立模板,位置:src/core/services/providers/prompts.ts

模板变量:

  • {transcript} — 当前段 Whisper 转录
  • {previousSegment} — 上一段解说(保持连贯)
  • {style} — 风格
  • {duration} — 目标时长
  • {intent} — 段落意图

LLM 调用

5 家 Provider:

  • OpenAI(gpt-4o-mini)
  • Anthropic(claude-haiku)
  • Google(gemini-1.5-flash)
  • DeepSeek(deepseek-chat)
  • Qwen(qwen-plus)

脚本解析

ts
interface DraftScript {
  segments: ScriptSegment[];
  metadata: ScriptMetadata;
}

interface ScriptSegment {
  id: string;
  text: string;
  startTime: number;
  endTime: number;
  style: ScriptStyle;
  voiceHint?: string;
}

质量检查

检查规则
一致性段落衔接是否自然
长度每段时长 5-30 秒
风格风格匹配 prompt 指令
字数每分钟 150-300 字

风格与时长

风格平均长度句式
幽默8-15 秒短句 + 反转
震惊5-12 秒感叹 + 数字
感动12-25 秒描述 + 抒情
专业10-20 秒术语 + 解释
纪录片15-30 秒叙述 + 引用

批处理

可同时生成多段解说。失败段落可独立重试。

缓存与成本

  • 缓存位置:<config-dir>/script-cache/<video-hash>.json
  • 命中条件:同视频 + 同风格 + 同 Provider
  • 单次 LLM 调用成本:$0.05-0.20 / 5 分钟视频

输出

格式路径
JSON<project>/scripts/<id>.json
Markdown<project>/scripts/<id>.md
SRT<project>/scripts/<id>.srt(可选)

基于 MIT 协议开源