feat(capcut-pipeline): 将 TTS 配音切换为 CosyVoice 并重构动画系统
- 将 TTS 引擎从 Qwen-TTS 切换为阿里云 CosyVoice(DashScope WebSocket) - 输出格式从 WAV(24kHz)改为 MP3 - 重构图片动画分拆逻辑,支持组合动画(如"渐显+放大") - 移除字幕关键词高亮相关字段 - 移除已删除的 `uploadAudioToOSS` 函数,统一使用 `uploadToOSS` - 更新文档和配置默认值以匹配新引擎
This commit is contained in:
@@ -19,7 +19,7 @@ description: 剪映/CapCut 自动化。通过 CapCut Mate API 实现草稿创建
|
||||
|
||||
```
|
||||
1. npm 依赖 → cd .claude/skills/video-from-script/scripts && npm install
|
||||
2. TTS 配音 → 阿里云 Qwen-TTS(config.json 中配置 ttsApiKey)
|
||||
2. TTS 配音 → 阿里云 CosyVoice TTS(config.json 中配置 ttsApiKey)
|
||||
```
|
||||
|
||||
---
|
||||
@@ -81,7 +81,7 @@ digraph capcut_assembly {
|
||||
|
||||
input [label="素材 + manifest.json", shape=folder, fillcolor="#e3f2fd"]
|
||||
|
||||
step1 [label="1. TTS 配音(可选)\nnode qwen-tts.js\n→ WAV + 时长"]
|
||||
step1 [label="1. TTS 配音(可选)\ncosyvoice → MP3 + 时长"]
|
||||
step2 [label="2. 上传图片到 OSS\n本地图片 → 公网 URL"]
|
||||
step3 [label="3. 创建草稿\ncreate_draft\n→ draft_url"]
|
||||
step4 [label="4. 导入素材+音频+字幕+特效\nadd_images / add_videos\nadd_audios / add_captions\nadd_effects"]
|
||||
@@ -146,15 +146,12 @@ digraph capcut_assembly {
|
||||
|
||||
## TTS 配音(成片模式用)
|
||||
|
||||
使用阿里云 Qwen-TTS(Node.js),替代原 Edge-TTS。
|
||||
使用阿里云 CosyVoice TTS(通过 DashScope WebSocket),Pipeline 自动调用。
|
||||
|
||||
```bash
|
||||
# 准备输入
|
||||
echo '{"segments":[{"id":1,"text":"文案"}],"voice":"Cherry","output_dir":"./audio"}' > input.json
|
||||
|
||||
# 生成
|
||||
node .claude/skills/video-from-script/scripts/qwen-tts.js input.json
|
||||
# → stdout: {"segments":[{"id":1,"audio":"./audio/seg_001.wav","duration":3.456}]}
|
||||
```js
|
||||
// 作为模块调用
|
||||
const { synthesize } = require('./qwen-tts')
|
||||
const { filePath, duration } = await synthesize('你好世界', { voice: 'Cherry' })
|
||||
```
|
||||
|
||||
配置在 `skills/config.json`:`ttsApiKey`(必填)、`ttsModel`、`ttsVoice`、`ttsLanguage`。
|
||||
@@ -195,19 +192,19 @@ node .claude/skills/video-from-script/scripts/qwen-tts.js input.json
|
||||
|
||||
## 图片动画预设
|
||||
|
||||
| 动画 | 说明 | 适用 |
|
||||
| 动画名称 | 说明 | 适用 |
|
||||
|------|------|------|
|
||||
| Ken Burns (zoom-in) | 1.0→1.1 缓慢放大 | 默认 |
|
||||
| Ken Burns (pan-left) | 右→左平移 | 风景 |
|
||||
| Ken Burns (pan-right) | 左→右平移 | 风景 |
|
||||
| 缩放弹出 | 0.8→1.0 | 强调 |
|
||||
| 缩放 | 缓慢放大(默认) | 通用 |
|
||||
| 渐显+放大 | 淡入+放大组合 | 强调 |
|
||||
| 左平移 | 右→左平移 | 风景 |
|
||||
| 右平移 | 左→右平移 | 风景 |
|
||||
|
||||
---
|
||||
|
||||
## 质量要求
|
||||
|
||||
- 字幕与文案对应正确,关键词高亮醒目
|
||||
- 图片动画流畅(Ken Burns 幅度 1.0→1.1)
|
||||
- 字幕与文案对应正确
|
||||
- 图片动画流畅
|
||||
- BGM 音量不盖过配音(配音为主、BGM 为辅)
|
||||
- 转场自然(无黑帧、无跳帧)
|
||||
- 底部字幕区不被遮挡
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
1. CapCut Mate API 可达 → curl {config.capcutMateApiBase}/../docs
|
||||
- 部署在 capcut.muyetools.cn(配置在 skills/config.json)
|
||||
2. npm 依赖 → cd scripts && npm install
|
||||
3. TTS 配音 → 阿里云 Qwen-TTS(配置在 config.json 的 ttsApiKey)
|
||||
3. TTS 配音 → 阿里云 CosyVoice TTS(配置在 config.json 的 ttsApiKey)
|
||||
4. 同步到本地剪映 → 纯 Node.js(sync-to-jianying.js),无需 Python/uv
|
||||
```
|
||||
|
||||
@@ -57,7 +57,7 @@ digraph assembly_flow {
|
||||
node [shape=box, style=filled, fillcolor="#f5f5f5", fontsize=11]
|
||||
|
||||
input [label="素材 + manifest.json", shape=folder, fillcolor="#e3f2fd"]
|
||||
step1 [label="1. TTS 配音(可选)\nnode qwen-tts.js\n→ WAV + 时长"]
|
||||
step1 [label="1. TTS 配音(可选)\ncosyvoice → MP3 + 时长"]
|
||||
step2 [label="2. 上传图片到 OSS\n本地图片 → 公网 URL"]
|
||||
step3 [label="3. 创建草稿\ncreate_draft → draft_url"]
|
||||
step4 [label="4. 导入素材+音频+字幕+特效"]
|
||||
@@ -75,15 +75,12 @@ digraph assembly_flow {
|
||||
|
||||
### 1. TTS 配音(可选)
|
||||
|
||||
使用阿里云 Qwen-TTS 进行语音合成(Node.js,无需 Python)。
|
||||
使用阿里云 CosyVoice TTS 进行语音合成(通过 DashScope WebSocket,Node.js)。
|
||||
|
||||
```bash
|
||||
# 准备输入 JSON
|
||||
echo '{"segments":[{"id":1,"text":"第一段文案"},{"id":2,"text":"第二段文案"}],"voice":"Cherry","output_dir":"./audio"}' > input.json
|
||||
|
||||
# 批量生成
|
||||
node scripts/qwen-tts.js input.json
|
||||
# → stdout: {"segments":[{"id":1,"text":"...","audio":"./audio/seg_001.wav","duration":3.456}]}
|
||||
```js
|
||||
const { synthesize } = require('./qwen-tts')
|
||||
const { filePath, duration } = await synthesize('文案', { voice: 'Neil', outputDir: './audio' })
|
||||
// → ./audio/seg_001.mp3, duration: 3.456
|
||||
```
|
||||
|
||||
配置在 `skills/config.json`:
|
||||
@@ -91,8 +88,8 @@ node scripts/qwen-tts.js input.json
|
||||
| 字段 | 说明 | 默认值 |
|
||||
|------|------|--------|
|
||||
| `ttsApiKey` | 阿里云百炼 API Key | (必填) |
|
||||
| `ttsModel` | 模型名称 | `qwen-tts` |
|
||||
| `ttsVoice` | 音色名称 | `Cherry` |
|
||||
| `ttsModel` | 模型名称 | `cosyvoice-v3.5-plus` |
|
||||
| `ttsVoice` | 音色名称 | 账号配置 |
|
||||
| `ttsLanguage` | 语言类型 | `Chinese` |
|
||||
|
||||
推荐音色:
|
||||
@@ -108,7 +105,7 @@ node scripts/qwen-tts.js input.json
|
||||
| `Neil` | 阿闻 | 新闻主持人 | 新闻、财经 |
|
||||
| `Bellona` | 燕铮莺 | 洪亮有力女声 | 热血、武侠 |
|
||||
|
||||
所有音色均支持中英文,输出 WAV 格式(24kHz),URL 有效期 24 小时。
|
||||
所有音色均支持中英文,输出 MP3 格式(24kHz)。
|
||||
|
||||
**作为模块调用**:
|
||||
|
||||
@@ -151,7 +148,7 @@ POST /create_draft { width: 1080, height: 1920 }
|
||||
|
||||
```
|
||||
POST /add_images
|
||||
每张图片 3-5 秒,附带 Ken Burns 动画(缩放 1.0→1.1)
|
||||
每张图片 3-5 秒,附带动画(默认缩放)
|
||||
```
|
||||
|
||||
**视频模式** (`--mode videos`):
|
||||
@@ -173,8 +170,7 @@ POST /add_audios
|
||||
|
||||
```
|
||||
POST /add_captions
|
||||
- 文案来自 manifest.json
|
||||
- 关键词高亮(account.json 中 subtitleStyle.highlightColor)
|
||||
- 文案来自 manifest.json(TTS 分句时按 segment 精确对齐)
|
||||
- 字体大小、颜色从账号配置读取
|
||||
```
|
||||
|
||||
@@ -212,19 +208,18 @@ add_videos 提交 9+ 视频时可能触发网关 504。脚本自动降级:
|
||||
|
||||
## 图片动画预设
|
||||
|
||||
| 动画类型 | 说明 | 适用场景 |
|
||||
| 动画名称 | 说明 | 适用场景 |
|
||||
|---------|------|---------|
|
||||
| Ken Burns (zoom-in) | 从 1.0 缓慢放大到 1.1 | 默认,适合大多数场景 |
|
||||
| Ken Burns (pan-left) | 画面从右向左平移 | 风景、全景 |
|
||||
| Ken Burns (pan-right) | 画面从左向右平移 | 风景、全景 |
|
||||
| 缩放弹出 | 从 0.8 弹到 1.0 | 强调、冲击感 |
|
||||
| 缩放 | 缓慢放大 | 默认,适合大多数场景 |
|
||||
| 渐显+放大 | 淡入+放大组合 | 强调、冲击感 |
|
||||
| 左平移 | 右→左平移 | 风景、全景 |
|
||||
| 右平移 | 左→右平移 | 风景、全景 |
|
||||
|
||||
---
|
||||
|
||||
## 质量检查
|
||||
|
||||
- [ ] 字幕与文案对应正确
|
||||
- [ ] 关键词高亮颜色醒目
|
||||
- [ ] 图片动画流畅(无卡顿)
|
||||
- [ ] BGM 音量与配音平衡
|
||||
- [ ] 转场自然(无黑帧)
|
||||
|
||||
Reference in New Issue
Block a user