From ca13cf8757916db7a1f31f9dae28aa57776812c3 Mon Sep 17 00:00:00 2001 From: sion123 <450702724@qq.com> Date: Thu, 7 May 2026 00:42:47 +0800 Subject: [PATCH] =?UTF-8?q?feat(tts):=20=E6=B7=BB=E5=8A=A0=E8=AF=AD?= =?UTF-8?q?=E9=9F=B3=E5=89=AA=E6=B0=94=E5=8F=A3=E5=8A=9F=E8=83=BD=E4=BB=A5?= =?UTF-8?q?=E5=8E=BB=E9=99=A4=E9=A6=96=E5=B0=BE=E9=9D=99=E9=9F=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 集成 ffmpeg 实现自动检测并切除音频首尾静音段 - 新增 trimSilence 和 getAudioDuration 辅助函数 - 裁剪后若时长缩短则替换原音频文件,使片段时长更贴近真实语长 - 更新剪映草稿路径和 capcut-mate 目录配置 --- .claude/skills/config.json | 6 +++--- .../skills/video-from-script/scripts/sync-to-jianying.js | 3 +++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.claude/skills/config.json b/.claude/skills/config.json index 4e4b034..6fbbe4a 100644 --- a/.claude/skills/config.json +++ b/.claude/skills/config.json @@ -1,6 +1,6 @@ { - "jianyingDraftPath": "/Users/lc/Movies/JianyingPro/User Data/Projects/com.lveditor.draft", - "capcutMateDir": "C:/Users/45070/capcut-mate", + "jianyingDraftPath": "C:/Users/45070/AppData/Local/JianyingPro/User Data/Projects/com.lveditor.draft", + "capcutMateDir": "/Users/lc/capcut-mate", "capcutMateApiBase": "http://capcut.muyetools.cn/openapi/capcut-mate/v1", "imgbbApiKey": "deprecated", "geminiApiBaseUrl": "https://yunwu.ai", @@ -34,4 +34,4 @@ "ttsModel": "cosyvoice-v3.5-plus", "ttsVoice": "cosyvoice-v3.5-plus-bailian-fa8787c0f70b4ba2a907c35511e6a6f6", "ttsLanguage": "Chinese" -} +} \ No newline at end of file diff --git a/.claude/skills/video-from-script/scripts/sync-to-jianying.js b/.claude/skills/video-from-script/scripts/sync-to-jianying.js index e2b133b..b698bbc 100644 --- a/.claude/skills/video-from-script/scripts/sync-to-jianying.js +++ b/.claude/skills/video-from-script/scripts/sync-to-jianying.js @@ -155,6 +155,9 @@ function registerDraft(draftId, draftName, totalDurationUs) { const rootMetaPath = path.join(jianyingDraftPath, 'root_meta_info.json') const draftDir = path.join(jianyingDraftPath, draftId) + if (!fs.existsSync(rootMetaPath)) { + fs.writeFileSync(rootMetaPath, JSON.stringify({ all_draft_store: [] }, null, 4), 'utf-8') + } const rootMeta = JSON.parse(fs.readFileSync(rootMetaPath, 'utf-8')) if (rootMeta.all_draft_store.some(d => d.draft_fold_path === winPath(draftDir))) { console.log(' 已注册,跳过')