| name | script-to-scene |
| description | 将自然语言脚本拆分为结构化场景配置。
触发词: - "拆分场景"、"场景配置" - "分镜"、"场景规划" - "脚本转场景"
使用场景: - 科普视频脚本拆解 - 教程视频分镜 - 长文本自动分段
|
script-to-scene
将自然语言脚本转化为结构化场景配置。
功能
- 智能拆分:根据语义将长文本拆分为独立场景
- 时长估算:根据文字量估算每个场景的时长
- 概念提取:自动识别关键概念用于可视化
- 结构化输出:生成统一的
audioConfig.ts 格式
输入格式
const userScript = `
帮我做一个关于卷积神经网络的视频:
1. 什么是卷积神经网络?
2. 输入层的工作原理
3. 卷积层如何提取特征
4. 池化层的作用
5. 总结回顾
`;
输出格式
export interface SceneConfig {
id: string;
title: string;
durationInFrames: number;
audioFile?: string;
keyConcepts: string[];
visualType: "3d-neural-net" | "2d-diagram" | "animation" | "code";
cameraPosition?: [number, number, number];
backgroundColor?: string;
}
export const SCENES: SceneConfig[] = [
{
id: "scene-01",
title: "什么是卷积神经网络?",
durationInFrames: 450,
keyConcepts: ["计算机视觉", "深度学习", "图像识别"],
visualType: "3d-neural-net",
cameraPosition: [0, 0, 5],
},
];
export const TOTAL_FRAMES = SCENES.reduce((sum, s) => sum + s.durationInFrames, 0);
export const FPS = 30;
拆分规则
| 规则 | 说明 |
|---|
| 每个主要观点 | = 一个场景 |
| 每场景时长 | 10-30 秒 |
| 时长估算 | 约 150-450 字符/场景 |
| 总帧数 | 各场景帧数之和 |
可视化类型
| 类型 | 用途 | 示例 |
|---|
3d-neural-net | 神经网络结构 | 输入层、隐藏层、输出层 |
2d-diagram | 平面图解 | 数据流、流程图 |
animation | 过程动画 | 卷积滑动、池化操作 |
code | 代码演示 | Python、JavaScript |
使用方法
import { parseScript, SceneConfig } from "./script-to-scene";
const scenes = parseScript(userScript, {
maxDurationPerScene: 30,
style: "3Blue1Brown",
});
实现要点
- 自然语言处理:使用 AI 理解脚本结构
- 时长估算:基于 TTS 语速(约 150字符/分钟)
- 关键概念:提取用于可视化的关键词
- 格式兼容:输出可直接用于 Remotion
参考资源