From 2449fbabdfea5cd5a446e9034f00957b79b8b6a1 Mon Sep 17 00:00:00 2001 From: lc Date: Tue, 12 May 2026 13:02:32 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E5=90=88=E5=B9=B6=E4=B8=8A=E6=B8=B8?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=20=E2=80=94=20ttsVoices=20=E6=98=A0=E5=B0=84?= =?UTF-8?q?=E5=8F=8A=E6=89=A7=E9=BB=91=E5=85=88=E8=A1=8C=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.7 --- .claude/skills/config.json | 4 +- .../video-from-script/scripts/qwen-tts.js | 2 +- accounts/执黑先行/account.json | 2 +- accounts/执黑先行/prompts/分镜.md | 50 +++++++++++++++---- 4 files changed, 43 insertions(+), 15 deletions(-) diff --git a/.claude/skills/config.json b/.claude/skills/config.json index 35a48af..e76ef90 100644 --- a/.claude/skills/config.json +++ b/.claude/skills/config.json @@ -1,5 +1,5 @@ { -"jianyingDraftPath": "/Users/lc/Movies/JianyingPro/User Data/Projects/com.lveditor.draft", + "jianyingDraftPath": "/Users/lc/Movies/JianyingPro/User Data/Projects/com.lveditor.draft", "capcutMateDir": "/Users/lc/capcut-mate", "capcutMateApiBase": "http://capcut.muyetools.cn/openapi/capcut-mate/v1", "imgbbApiKey": "deprecated", @@ -38,4 +38,4 @@ "斯内普": "cosyvoice-v3.5-plus-bailian-fa8787c0f70b4ba2a907c35511e6a6f6", "布拉德": "cosyvoice-v3.5-plus-bailian-574be4b7013a4e1f924de08fa8b9bdef" } -} \ No newline at end of file +} diff --git a/.claude/skills/video-from-script/scripts/qwen-tts.js b/.claude/skills/video-from-script/scripts/qwen-tts.js index a2c31f9..aa76f22 100644 --- a/.claude/skills/video-from-script/scripts/qwen-tts.js +++ b/.claude/skills/video-from-script/scripts/qwen-tts.js @@ -55,7 +55,7 @@ function getAudioDuration(filePath) { return parseFloat(out.trim()) } catch { const stat = fs.statSync(filePath) - return stat.size * 8 / 32000 + return stat.size * 8 / 160000 } } diff --git a/accounts/执黑先行/account.json b/accounts/执黑先行/account.json index 63bb14b..fa763cd 100644 --- a/accounts/执黑先行/account.json +++ b/accounts/执黑先行/account.json @@ -13,7 +13,7 @@ } }, "ttsVoice": "斯内普", - "ttsInstruction": "用沉稳有力的男性声音朗读,语速适中,语气坚定有力,像是一个有经历有力量的人在平静地讲述生活的方向", + "ttsInstruction": "中低音,胸腔共鸣。带一点气声,像在你耳边说话,不是在台上演讲。咬字松弛,不播音,像个真实的人。越重要的话说得越轻、越慢。冷静但不冷漠,是看透之后的平静。偶尔一句冷幽默,面无表情说出来。让人觉得他什么都见过,但还是愿意坐下来跟你聊。很有磁性,性张力的男性声音,像个黑帮老大。但是你特别想跟他做朋友,很亲切。", "storyboardPrompt": "prompts/分镜.md", "imageStylePrompt": "prompts/图片提示词.md", "videoStylePrompt": "prompts/视频提示词.md", diff --git a/accounts/执黑先行/prompts/分镜.md b/accounts/执黑先行/prompts/分镜.md index b0440fc..5f192c3 100644 --- a/accounts/执黑先行/prompts/分镜.md +++ b/accounts/执黑先行/prompts/分镜.md @@ -151,21 +151,49 @@ --- -## 六、时间线规则(固化,不可违反) +## 六、时间线铁律(违反则整条打回重写,不可妥协) -- TTS 语速 = **1.15x**(固定) -- 文案总音频时长 = 字数 ÷ 5(字/秒) -- Kling 可灵视频片段固定 **6 秒** -- 每个 shot 的 TTS 估算(script字数÷5)必须 ≤ 6 秒 -- **TTS > 6s → 强制在语义断点拆分,拆分后 script = 语义子句,禁止重复完整句** -- 合并后所有 script = 原文一字不差 +### ⚠️ 铁律一:音频是神圣的,不可修改 + +- TTS 语速 = **1.15x**(固定),不得加速/减速/裁剪/静音 +- **口播文案不可改字**:script 内容由用户定,分镜只决定切割位置 +- **音频时长 = 视频时长**:画面必须配合音频,音频不配合画面 +- Kling 每个视频片段固定 **6 秒** + +### ⚠️ 铁律二:分镜规划前必须先完成文案预切割 + +**第一步(在写任何 shotDesc 之前)**:按以下规则把完整口播文案切分成 shot: + +1. 估算公式:每个 shot 的 TTS 时长 = **script 字数 ÷ 5**(秒) + - 语速基准:1.15x 正常中文说话速率 ≈ 5字/秒 +2. 每个 shot 估算时长必须 **≤ 6 秒**(= 最多 **30字**) +3. 相邻两段合并后 ≤ 30字 → **强制合并**为一个 shot +4. 任何 shot 估算 > 6s → **强制在语义断点处拆分** | TTS 估算 | 决策 | |---------|------| -| < 3 秒 | 强制合并至相邻 Shot | -| 3–5 秒 | 优先合并;如独立存在,可接受 | -| 5–6 秒 | 可单独 | -| > 6 秒 | **强制拆成 2+ 个 Shot,每个新 shot script = 语义子句** | +| < 3秒(<15字) | 强制合并至相邻 Shot(合并后 ≤ 30字) | +| 3–6秒(15–30字) | 可独立 shot | +| > 6秒(>30字) | **强制拆分,每新 shot ≤ 30字** | + +### ⚠️ 铁律三:视频 vs 音频的唯一合法处理策略 + +| 情况 | ratio = 视频(6s) ÷ 音频 | 策略 | +|------|------------------------|------| +| 视频 > 音频,ratio 1.1–2x | ✅ 视频加速(speed_up)| +| 视频 >> 音频,ratio > 2x | ✅ 视频截断(trim)| +| 视频 ≈ 音频,ratio 0.9–1.1x | ✅ 无需调整(none)| +| **音频 > 视频,ratio < 0.9** | ❌ **禁止!** 必须打回分镜重新拆分 script | + +**绝对禁止**:视频放慢 / 冻结帧 / 音频加减速 / 音频裁剪 + +### ⚠️ 铁律四:音频实测 > 6s 时的补救 + +如果 TTS 实测超过 6s(估算误差导致): +1. 在语义断点处把 **音频文件物理切割**(ffmpeg -t / -ss) +2. 把对应 script 同步切分为多个 shot +3. 每个新 shot 独立配一个 Kling 6s 视频 +4. **禁止**:拉伸视频 / 截断音频内容 / 改变语速 ---