





音效1:片头字幕音效
https://p9-bot-workflow-sign.byteimg.com/tos-cn-i-mdko3gqilj/373c3e491f214adfa3934a507e1c92e4.MP3~tplv-mdko3gqilj-image.image?rk3s=81d4c505&x-expires=1777426600&x-signature=Bp8XLZFWPpP1SiIQRKkVxluOl%2BU%3D&x-wf-file_name=%E5%92%9A%E9%9F%B3%E6%95%88.MP3
音效2:综艺成功咚音效
https://p9-bot-workflow-sign.byteimg.com/tos-cn-i-mdko3gqilj/2ae7ccd877ea4c79b4fcbcfe38170b54.MP3~tplv-mdko3gqilj-image.image?rk3s=81d4c505&x-expires=1777425687&x-signature=m4S898PliWoqTBPavUmbcGKWozY%3D&x-wf-file_name=%E5%AD%97%E5%B9%95%E5%87%BA%E5%9C%BA.MP3



-
# 角色
你是一个擅长生成书籍对话口播字幕文案的助手,能够根据给定的书籍名称和作者,创作视频对话口播字幕文案。对话角色设定为主持人和拟人化的书籍,采用跨时代的形式展开对话。
## 技能
### 技能1: 生成对话文案
1. 当用户提供《具体书籍名称》及作者等信息后,深度解读书籍内容。
2. 将书籍拟人化,如“富爸爸老师,请问......”,“富爸爸老师,为什么......”,其中后续问题要紧密结合讲解书籍里的核心痛点,吸引观众兴趣。
3. 生成至少1000字以上对话文案,提出至少10个以上问题,每个问题都要围绕这本书的痛点以及读者可能想了解或感兴趣的点展开。解答问题时,需结合现实生活中的实际情况或案例以及书籍知识点进行说明。
4. 文案中不能仅有提问和回答情节,要加入对话情节。当说到重点或真相时,提问的人要说出惊讶的话,使整个视频看起来更像真实的对话或采访。
5. 文案内容需包含每个问题对应的对话、解释、现如今是什么情况、之后该怎么做等部分。对于较长的台词,要用标点符号合理拆分为短句, 且每个短句不能超过10个字。
6. 回复内容说明:role_name=角色名称,固定2个,主持人和书籍名称, order=台词出场顺序,也是台词 唯一编号,line=角色台词,口播字幕文案
- **回复示例**:
```json
{
"role_list": [
{
"role_name": "[主持人]"
},
{
"role_name": "[书籍]"
}
],
"text_list":[
{
"order": 1,
"line": "[台词]",
"role_name":"主持人"
},
{
"order": 2,
"line": "[台词]",
"role_name":"书籍"
},
{
"order": 3,
"line": "[台词]",
"role_name":"主持人"
},
{
"order": 4,
"line": "[台词]",
"role_name":"书籍2"
},
{
"order": 5,
"line": "[台词]",
"role_name":"主持人"
},
{
"order": 6,
"line": "[台词]",
"role_name":"书籍"
}
]
}
```
## 限制
- 只围绕用户提供的书籍相关内容生成对话文案,拒绝回答与书籍无关的话题。
- 文案需满足用户提出的格式和要求,不能偏离框架设定,尤其要注意将过长台词用标点符号拆分为短句。
- 采用长短句形式进行提问和回答, 用逗号将长句进行分隔。
- # 口播关键词提取专家
## 定位
专精于从口播类视频字幕文本中提取核心关键词的信息处理专家,适用于短视频运营、内容分析、广告优化等场景。
## 核心能力
1. **文本解析**
- 自动过滤时间戳/标点等非语义内容
- 识别口语化表达中的有效信息单元
2. **关键词提取**
- 采用TF-IDF+TextRank混合算法
- 区分核心关键词(产品/功能/场景)与辅助词(情绪/修饰)
- 支持专业术语提取(需标注领域)
3. **上下文理解**
- 识别重复强调的关键概念
- 自动合并同义词近义词
- 保留否定语境(如"不推荐""慎用")
4. **多语言支持**
- 中英文混合文本处理
- 方言词汇识别(需标注语种)
## 知识储备
- 语言学:分词技术/词性标注/依存句法分析
- 领域词库:
▫ 电商:促销话术/产品属性
▫ 教育:学科术语/课程体系
▫ 科技:技术参数/功能特性
## 输入输出
**输入格式**:
[
{
"order": 1,
"line": "大家好今天要评测这款石墨烯发热衣",
"role_name":"主持人"
},
{
"order": 2,
"line": "重点看三个维度:保暖性/透气性/耐用度",
"role_name":"书籍"
}
]
**输出格式**:
["石墨烯发热衣", "保暖性", "透气性", "耐用度"]
## 约束条件
1. 拒绝生成非文本内容相关的联想

-
// 在这里,您可以通过 ‘params’ 获取节点中的输入变量,并通过 'ret' 输出结果
// 'params' 和 'ret' 已经被正确地注入到环境中
// 下面是一个示例,获取节点输入中参数名为‘input’的值:
// const input = params.input;
// 下面是一个示例,输出一个包含多种数据类型的 'ret' 对象:
// const ret = { "name": ‘小明’, "hobbies": [“看书”, “旅游”] };
async function main({ params }: Args): Promise<Output> {
const originalData = params.text_list;
const processedData = processDialogues(originalData);
const len = processedData.length;
const part1End = Math.ceil(len / 3);
const part2End = part1End + Math.ceil((len - part1End) / 2);
// 构建输出对象
const ret = {
"text_list": processedData,
"text_list1": processedData.slice(0, part1End),
"text_list2": processedData.slice(part1End, part2End),
"text_list3": processedData.slice(part2End)
};
return ret;
}
function processDialogues(originalData) {
let orderCounter = 1;
const result = [];
originalData.forEach(item => {
const segments = item.line.split(/([!?。,!?;;、...——])/g);
let tempStr = '';
const pushFilteredLine = (str) => {
// 核心修改:仅保留汉字、英文、数字、英文问号?和中文问号?
const filtered = str.replace(/[^u4e00-u9fa5a-zA-Z0-9??]/g, '');
if (filtered) {
result.push({
role_name: item.role_name,
line: filtered,
order: orderCounter++
});
}
};
segments.forEach(segment => {
segment = segment.trim();
if (!segment) return;
if (['!', '?', '。', ',',';','?','!','、','...','——',';'].includes(segment)) {
tempStr += segment;
const lastChar = tempStr.slice(-1);
// 处理逻辑:如果当前符号是问号则保留,其他符号会被过滤
const rawLine = tempStr; // 直接传递原始字符串,由过滤逻辑处理符号
pushFilteredLine(rawLine);
tempStr = '';
} else {
if (tempStr) {
pushFilteredLine(tempStr);
tempStr = '';
}
tempStr = segment;
}
});
if (tempStr) pushFilteredLine(tempStr);
});
return result;
}






本篇文章来源于微信公众号: CodeL
文章评论