新增16个AI技能:包含图像生成、视频剪辑、数据分析、智能查询等功能模块

This commit is contained in:
hmo
2026-02-13 20:18:38 +08:00
parent 456cd45de4
commit 8200a17176
154 changed files with 14585 additions and 1 deletions

View File

@@ -0,0 +1,23 @@
<!--
架构守护者:一旦此文件夹内容变化,请更新此文件
-->
# videocut:剪辑
> FFmpeg 视频剪辑执行 skill
## 文件清单
| 文件 | 用途 |
|------|------|
| `SKILL.md` | skill 定义(剪辑流程) |
| `README.md` | 本文件 |
## 依赖
- FFmpeg`brew install ffmpeg`
## 输入输出
- **输入**:审查稿 + 原始视频
- **输出**:剪辑后视频 (v2.mp4)

View File

@@ -0,0 +1,154 @@
---
name: videocut-clip
description: 执行视频剪辑。根据确认的删除任务执行FFmpeg剪辑循环直到零口误生成字幕。触发词执行剪辑、开始剪、确认剪辑
metadata:
version: "1.0.0"
alias: "videocut:剪辑"
---
<!--
input: 删除任务 TodoList口误+静音)
output: 剪辑后视频、字幕文件
pos: 执行 skill用户确认删除任务后调用
架构守护者:一旦我被修改,请同步更新:
1. ../README.md 的 Skill 清单
2. /CLAUDE.md 路由表
-->
# 剪辑
> 执行删除 → 重新审查 → 循环直到零口误 → 生成字幕
## 快速使用
```
用户: 确认,执行剪辑
用户: 全删
用户: 保留静音3和5其他都删
```
## 前置条件
需要先执行 `/videocut:剪口播` 生成删除任务 TodoList
## 流程
```
1. 读取用户确认的删除任务
2. 计算保留时间段
3. 生成 FFmpeg filter_complex
4. 执行剪辑
5. 重新转录 + 审查 ←───┐
↓ │
有口误? ──是─────────┘
↓ 否
6. 生成字幕SRT
7. 完成
```
## 进度 TodoList
启动时创建:
```
- [ ] 确认删除任务
- [ ] 执行 FFmpeg 剪辑
- [ ] 重新转录审查
- [ ] 生成字幕
```
循环时更新版本号v2→v3→...
---
## 一、读取删除任务(时间戳驱动)
`/videocut:剪口播` 输出的 TodoList 读取。**直接使用时间戳,不要搜索文本**
```
口误N处
- [x] 1. `(start-end)` 删"错误文本" → 保留"正确文本" ← 勾选=删除
语气词N处
- [x] 1. `(前字end-后字start)` 删"嗯" ← 勾选=删除
静音N处
- [x] 1. `(start-end)` 静音Xs ← 勾选=删除
- [ ] 2. `(start-end)` 静音Xs ← 未勾选=保留
```
### ⚠️ 关键规则
1. **直接用时间戳**:从 `(start-end)` 解析,不要搜索文本
2. **不要重新搜索**:审查稿已经计算好精确时间戳
3. 勾选 = 删除,未勾选 = 保留
---
## 二、FFmpeg 命令
```bash
ffmpeg -y -i input.mp4 \
-filter_complex_script filter.txt \
-map "[outv]" -map "[outa]" \
-c:v libx264 -crf 18 -c:a aac \
output.mp4
```
### filter.txt 格式
```
[0:v]trim=start=0:end=1.36,setpts=PTS-STARTPTS[v0];
[0:a]atrim=start=0:end=1.36,asetpts=PTS-STARTPTS[a0];
[0:v]trim=start=2.54:end=10.5,setpts=PTS-STARTPTS[v1];
...
[v0][a0][v1][a1]...concat=n=N:v=1:a=1[outv][outa]
```
---
## 三、重新转录审查
剪辑后必须:
1. 用 FunASR 重新转录
2. 检查是否还有口误
3. 有 → 回到 `/videocut:剪口播` 重新识别
4. 无 → 生成字幕
---
## 四、输出文件
```
01-xxx-v2.mp4 # 剪辑后视频
01-xxx-v2_transcript.json # 重新转录(验证用)
01-xxx-v2.srt # 字幕文件
```
版本递增v1→v2→v3...
---
## 五、反馈记录
### 2026-01-15
- **语气词删除边界不精确**:删语气词时把前面的字也删了
- 原因:直接用语气词的时间戳删除
- 正确:从前一字 end 到后一字 start
- **语气词 + 静音要一起删**`A [静音] 语气词 B` 要删整段 (A.end - B.start)
- **教训**:删除语气词时,边界是 `前一字.end``后一字.start`
### 2026-01-14
- 口误文字没删干净,只删了静音段
- 教训:直接从 TodoList 读取时间戳,不要重新查找
- **"拉满新"删成了"会的时候"**:搜索"拉满新"时间戳跨度7秒含6秒静音把"拉满"也删了
- 教训:对于"删前面保后面"的口误,只删差异部分
- **"AI就是AI"出现两次AI**:只删了"就是",没删第一个"AI"
- 教训:替换型口误必须删完整的第一个版本
- **系统性解决**:时间戳驱动,审查稿直接标注 `(start-end)`,剪辑脚本不再搜索文本