{"slug":"weilanx-creator-vox-video","title":"Vox \u62fc\u8d34\u79d1\u666e\u77ed\u7247","description":"Vox \u62fc\u8d34\u98ce\u79d1\u666e\u77ed\u7247\uff1a\u5148\u67e5\u6743\u5a01\u8d44\u6599\u4e0e\u53ef\u7528\u771f\u5b9e\u7d20\u6750\uff0c\u518d\u7528\u62fc\u8d34\u89c6\u89c9\u628a\u65b0\u95fb\u3001\u79d1\u5b66\u53d1\u73b0\u8bb2\u6e05\u695a\u3002","category":"\u526a\u8f91\u4e0e\u5305\u88c5","tags":["\u79d1\u666e","\u62fc\u8d34","\u89c6\u89c9"],"author":"weilanx","source_url":"https://github.com/Azure12355/weilanx-claude-videos/blob/main/.claude/skills/weilanx-creator-vox-video/SKILL.md","license":"MIT","status":"published","verification":"source_reviewed","verification_notes":"\u6765\u6e90 Azure12355/weilanx-claude-videos\uff08.claude/skills/weilanx-creator-vox-video/SKILL.md\uff09\uff0c\u672c\u5730\u6253\u5305\u4e0a\u4f20\uff1b\u81ea\u8bc4 4/5\uff5c\u89c6\u89c9\u65b9\u5411\u5f88\u660e\u786e\uff0c\u7d20\u6750\u5408\u89c4\u8981\u6c42\u5199\u5f97\u6bd4\u540c\u7c7b\u7ec6\u3002 \u672a\u6267\u884c\u5305\u5185\u811a\u672c\u3002","revision":"d76e4da2a4534bb7a93a7cf9a01a10f5","created_at":"2026-10-29T05:38:58+00:00","updated_at":"2026-10-29T05:39:04+00:00","source_repo":"","source_path":"","source_commit":"","source_updated_at":"","stars":0,"proxy_score":null,"score":null,"grade":null,"dimensions":{},"evaluation":{},"installs":0,"platforms":[],"formats":[],"category_slug":"packaging","category_name":"\u526a\u8f91\u4e0e\u5305\u88c5","usage_guide":{},"read_url":"https://shiliuai.cn/api/v2/skills/weilanx-creator-vox-video","skill_url":"https://shiliuai.cn/api/v2/skills/weilanx-creator-vox-video/files/SKILL.md","download_url":"https://shiliuai.cn/api/v2/skills/weilanx-creator-vox-video/download","install_url":"https://shiliuai.cn/api/v2/skills/weilanx-creator-vox-video/install","files":[{"path":"SKILL.md","bytes":12694,"url":"https://shiliuai.cn/api/v2/skills/weilanx-creator-vox-video/files/SKILL.md"},{"path":"references/\u753b\u9762.md","bytes":3685,"url":"https://shiliuai.cn/api/v2/skills/weilanx-creator-vox-video/files/references/%E7%94%BB%E9%9D%A2.md"},{"path":"references/\u7d20\u6750.md","bytes":2523,"url":"https://shiliuai.cn/api/v2/skills/weilanx-creator-vox-video/files/references/%E7%B4%A0%E6%9D%90.md"},{"path":"references/\u8bed\u6c14\u4e0e\u5199\u7a3f.md","bytes":3123,"url":"https://shiliuai.cn/api/v2/skills/weilanx-creator-vox-video/files/references/%E8%AF%AD%E6%B0%94%E4%B8%8E%E5%86%99%E7%A8%BF.md"},{"path":"references/\u914d\u4e50.md","bytes":2589,"url":"https://shiliuai.cn/api/v2/skills/weilanx-creator-vox-video/files/references/%E9%85%8D%E4%B9%90.md"},{"path":"scripts/commons.py","bytes":2481,"url":"https://shiliuai.cn/api/v2/skills/weilanx-creator-vox-video/files/scripts/commons.py"},{"path":"scripts/tts_expressive.py","bytes":3883,"url":"https://shiliuai.cn/api/v2/skills/weilanx-creator-vox-video/files/scripts/tts_expressive.py"},{"path":"scripts/voice_stats.py","bytes":1831,"url":"https://shiliuai.cn/api/v2/skills/weilanx-creator-vox-video/files/scripts/voice_stats.py"}],"content":"---\nname: weilanx-creator-vox-video\ndescription: \u300cVox \u62fc\u8d34\u98ce\u79d1\u666e\u77ed\u89c6\u9891\u300d\u5de5\u4f5c\u6d41\uff1a\u7ed9\u4e00\u4e2a\u79d1\u666e\u4e3b\u9898\uff08\u65b0\u95fb\u3001\u8bfa\u5956\u3001\u79d1\u5b66\u53d1\u73b0\u3001\u79d1\u6280\u4e8b\u4ef6\uff09\uff0c\u5148\u4e0a\u7f51\u67e5\u6743\u5a01\u8d44\u6599\u548c\u53ef\u7528\u7684\u771f\u5b9e\u7d20\u6750\uff08NASA\u3001Wikimedia Commons\u3001\u5b98\u65b9\u65b0\u95fb\u7a3f\u63d2\u56fe\uff09\uff0c\u5199\u4e00\u4efd\u50cf\u804a\u5929\u4e00\u6837\u6709\u8bed\u6c14\u3001\u6709\u5f3a\u94a9\u5b50\u548c\u6df1\u5ea6\u7ed3\u5c3e\u7684\u53e3\u64ad\u7a3f\uff0c\u7528\u5e26\u8bed\u6c14\u63d0\u793a\u7684\u8c46\u5305\u590d\u523b\u97f3\u8272\u914d\u97f3\uff0c\u518d\u5728 weilanx-claude-videos \u5de5\u7a0b\u91cc\u505a\u6210\u6a2a\u5c4f 16:9 \u7684 Vox \u62fc\u8d34\u7247\uff1aA-roll \u662f\u9ed1\u5361\u5927\u5b57\uff0cB-roll \u662f\u9489\u5728\u65e7\u7eb8\u684c\u9762\u4e0a\u7684\u771f\u5b9e\u89c6\u9891\u548c\u7167\u7247\uff0c\u6309\u5b57\u5e55\u786c\u5207\uff0c\u914d\u4e00\u6761\u6709\u5f8b\u52a8\u7684\u7535\u5b50\u914d\u4e50\u3002\u6700\u540e\u6253\u5f00 Remotion Studio \u7ed9\u7528\u6237\u9884\u89c8\uff0c\u786e\u8ba4\u540e\u518d\u5bfc\u51fa\u3002\u7528\u6237\u8bf4\u300c\u505a\u4e00\u671f Vox \u98ce\u683c\u7684\u79d1\u666e\u300d\u300c\u7528 Vox \u98ce\u683c\u8bb2\u8bb2 XX\u300d\u300c\u505a\u4e00\u671f XX \u7684\u79d1\u666e\uff0c\u8981\u771f\u5b9e\u7d20\u6750\u300d\u300c\u50cf\u8bfa\u5956\u90a3\u671f\u4e00\u6837\u505a\u4e00\u671f\u300d\u65f6\u4f7f\u7528\u3002\n---\n\n# \u4e00\u4e2a\u79d1\u666e\u4e3b\u9898 \u2192 \u4e00\u671f Vox \u62fc\u8d34\u98ce\u79d1\u666e\u77ed\u89c6\u9891\n\n> **\u76ee\u5f55\u7ea6\u5b9a\uff082026-10-13 \u8d77\uff09**\uff1a`materials/` \u548c `out/` \u6309\u98ce\u683c\u5206\u7c7b\u3001\u98ce\u683c\u5185\u4ece 00 \u7f16\u53f7\uff0c\u4ee3\u7801\u91cc\u7684\u4f5c\u54c1 ID\uff08\u4e0b\u6587\u7684 `<\u671f>`\uff09\u4e0d\u53d8\u3002\u4e0b\u6587 `<\u7d20\u6750\u76ee\u5f55>` = `materials/<\u98ce\u683c>/<\u7f16\u53f7-\u4e2d\u6587\u77ed\u9898>/`\uff0c`<\u6210\u7247\u76ee\u5f55>` = `out/` \u4e0b\u540c\u540d\u76ee\u5f55\u3002\u65b0\u4e00\u671f\u5f00\u5de5\u65f6\u5148\u5efa\uff1a`bash scripts/ep-dir.sh <\u671f> materials --new <\u98ce\u683c\u76ee\u5f55> <\u4e2d\u6587\u77ed\u9898>`\uff08\u81ea\u52a8\u53d6\u4e0b\u4e00\u4e2a\u7f16\u53f7\uff0cmaterials \u548c out \u4e00\u8d77\u5efa\uff09\uff1b\u4e4b\u540e\u67e5\u8def\u5f84\u7528 `bash scripts/ep-dir.sh <\u671f> materials` / `bash scripts/ep-dir.sh <\u671f> out`\u3002`npm run export -- <\u671f>` \u4f1a\u81ea\u52a8\u628a\u6210\u7247\u653e\u8fdb `<\u6210\u7247\u76ee\u5f55>`\u3002\n> \u672c skill \u7684\u98ce\u683c\u76ee\u5f55\u662f `04-Vox\u79d1\u666e`\u3002\n\n\u53c2\u8003\u6837\u7247\uff1a`ep21-nobel-physics`\uff082026 \u8bfa\u8d1d\u5c14\u7269\u7406\u5b66\u5956\uff1a\u5357\u6781\u51b0\u4e0b\u6293\u4e2d\u5fae\u5b50\uff09\u3002\u7528\u6237\u8ba4\u53ef\u7684\u6548\u679c\u5c31\u662f\u8fd9\u4e00\u671f\uff1a**\u53e3\u64ad\u50cf\u804a\u5929\u3001\u5f00\u5934\u6709\u94a9\u5b50\u3001\u7ed3\u5c3e\u6709\u4f59\u5473\uff1b\u9ed1\u5361\u5927\u5b57\u548c\u771f\u5b9e\u7d20\u6750\u4ea4\u66ff\u786c\u5207\uff1b\u914d\u4e50\u6709\u5f8b\u52a8\u3001\u8ddf\u7740\u526a\u8f91\u8d70\u3002**\n\n\u4e00\u53e3\u6c14\u505a\u5b8c\u7b2c 0\uff5e8 \u6b65\uff0c\u4e2d\u9014\u4e0d\u7b49\u7528\u6237\u786e\u8ba4\uff0c\u6bcf\u6b65\u505a\u5b8c\u7528\u4e00\u4e24\u53e5\u8bdd\u540c\u6b65\u8fdb\u5ea6\u3002**\u4e0d\u5bfc\u51fa\u3001\u4e0d\u63d0\u4ea4 git**\uff0c\u9664\u975e\u7528\u6237\u53e6\u5916\u8981\u6c42\u3002\u52a8\u624b\u524d\u5148\u8bfb\u5de5\u7a0b\u6839\u76ee\u5f55\u7684 `CLAUDE.md`\u3001`src/library/README.md`\u3002\u6240\u6709 npm / npx / node \u547d\u4ee4\u524d\u5148 `export NODE_OPTIONS=--max-old-space-size=4096`\u3002\n\n## \u89c4\u683c\n\n| \u9879 | \u9ed8\u8ba4 |\n|---|---|\n| \u753b\u9762 | \u6a2a\u5c4f 16:9\uff081920\u00d71080\uff09\uff0c`VoxShow` \u9aa8\u67b6\uff0c\u65e0\u4e3b\u6301\u4eba |\n| \u65f6\u957f | \u7ea6 1 \u5206\u949f\uff08\u7a3f\u5b50 400\uff5e430 \u5b57\uff0c\u914d\u97f3 58\uff5e63 \u79d2\uff09\uff0c\u7528\u6237\u53e6\u8bf4\u65f6\u6309\u7528\u6237\u7684 |\n| A-roll | \u9ed1\u5361\u5927\u5b57\uff08`BlackCard`\uff09 |\n| B-roll | \u9489\u5728\u684c\u9762\u4e0a\u7684\u771f\u5b9e\u7d20\u6750\uff08`VoxFootage`\uff09\uff1a\u89c6\u9891\u3001\u5b9e\u62cd\u7167\u7247\u3001\u5b98\u65b9\u63d2\u56fe |\n| \u914d\u97f3 | \u8c46\u5305\u590d\u523b\u97f3\u8272 + \u8bed\u6c14\u63d0\u793a + \u8bed\u901f +30\uff0c**\u4e0d\u505a\u540e\u671f 1.2 \u500d\u52a0\u901f** |\n| \u914d\u4e50 | 124 BPM \u7535\u5b50\u5f8b\u52a8\uff0c\u4fa7\u94fe\u547c\u5438\uff0c\u5207\u70b9\u91cd\u51fb\uff0c`level 0.071`\uff08\u538b\u5728\u4eba\u58f0\u4e0b\uff09 |\n| \u5c01\u9762 | 16:9 \u9996\u5e27 + 3:4 \u7ad6\u7248 |\n\n## \u4f9d\u8d56\uff08\u5f00\u6e90\u7248\u8bf4\u660e\uff09\n\n\u914d\u97f3\u548c\u5b57\u5e55\u4e24\u6b65\u7528\u7684\u662f\u4f5c\u8005\u7684\u79c1\u4eba\u5de5\u5177\uff0c\u4ed3\u5e93\u91cc\u6ca1\u6709\u5e26\uff1a\n\n- **\u914d\u97f3**\uff1a`scripts/tts_expressive.py` \u9700\u8981\u4e00\u4e2a\u8c46\u5305\u8bed\u97f3\u5408\u6210\u7684\u5c01\u88c5\u6a21\u5757\uff0c\u7528\u73af\u5883\u53d8\u91cf `DOUBAO_VOICE_PY` \u6307\u5411\u5b83\u3001`DOUBAO_TTS_SPEAKER_ID` \u6307\u5b9a\u590d\u523b\u97f3\u8272\uff08\u89c1\u811a\u672c\u5f00\u5934\u8bf4\u660e\uff09\uff1b\u4e0d\u7528\u8c46\u5305\u5c31\u6362\u6210\u4efb\u4f55\u80fd\u8f93\u51fa mp3 \u7684 TTS\uff0c\u6216\u8005\u771f\u4eba\u5f55\u97f3\u3002\n- **\u5b57\u5e55**\uff1a\u7b2c 5 \u6b65\u63d0\u5230\u7684 `weilanx-doubao-voice-srt` \u662f\u4f5c\u8005\u7684\u79c1\u4eba Skill\uff0c\u6362\u6210\u4efb\u4f55\u80fd\u8f93\u51fa SRT \u7684\u8bed\u97f3\u8bc6\u522b\u5de5\u5177\u3002\n- \u5176\u4f59\u6b65\u9aa4\uff08\u67e5\u8d44\u6599\u3001\u627e\u7d20\u6750\u7684 `commons.py`\u3001\u51fa\u7247\u3001\u914d\u4e50\uff09\u90fd\u5728\u4ed3\u5e93\u91cc\u3002\n\n## 0. \u5b9a\u671f\u6570\u548c\u76ee\u5f55\n\n- \u671f\u53f7\u53d6 `src/episodes/` \u91cc\u6700\u5927\u7684\u4e0b\u4e00\u4e2a\uff0c\u4f5c\u54c1 ID `epNN-\u82f1\u6587\u77ed\u540d`\uff0c\u4e0b\u9762\u8bb0\u4f5c `<\u671f>`\u3002\n- \u4ee3\u7801 `src/episodes/<\u671f>/`\uff0c\u7d20\u6750 `public/footage/<\u671f>/`\uff08\u4e0d\u8fdb git\uff09\uff0c\u97f3\u9891 `public/audio/<\u671f>/`\uff0c\u539f\u59cb\u6750\u6599\u548c\u6587\u7a3f `<\u7d20\u6750\u76ee\u5f55>/`\u3002\n- \u5728 `materials/00-\u516c\u5171/\u9009\u9898\u5019\u9009\u6c60.md` \u7684\u300c\u5df2\u505a\u300d\u8868\u8865\u4e00\u884c\uff0c\u72b6\u6001 \ud83c\udfac\u3002\n\n## 1. \u8c03\u7814\uff1a\u53ea\u7528\u6743\u5a01\u6765\u6e90\n\n- \u7528 WebSearch \u67e5\u4e3b\u9898\uff0c**\u4f18\u5148\u4e00\u624b\u6765\u6e90**\uff1a\u5b98\u65b9\u65b0\u95fb\u7a3f\uff08\u5982 nobelprize.org \u7684 press-release / popular-information\uff09\u3001NASA\u3001\u673a\u6784\u5b98\u7f51\u3001\u9876\u520a\uff1b\u65b0\u95fb\u5a92\u4f53\u53ea\u505a\u4ea4\u53c9\u6838\u5bf9\u3002\n- \u5b98\u7f51\u5bf9 WebFetch \u8fd4\u56de 403 \u65f6\uff0c\u7528 `curl -A \"Mozilla/5.0 ...\"` \u6293\u9875\u9762\uff0c\u518d\u7528 Python \u53bb\u6807\u7b7e\u53d6\u6b63\u6587\u3002\n- \u628a\u8981\u8bb2\u7684\u6bcf\u4e2a\u6570\u5b57\u3001\u5e74\u4efd\u3001\u8bf4\u6cd5\u548c\u51fa\u5904\u8bb0\u8fdb `<\u7d20\u6750\u76ee\u5f55>/\u8c03\u7814.md`\u3002**\u4e0d\u786e\u5b9a\u7684\u8bf4\u6cd5\u4e0d\u8fdb\u7a3f**\uff08\u4f8b\uff1a\u300c\u7b2c\u4e00\u6b21\u2026\u2026\u300d\u8fd9\u7c7b\u7edd\u5bf9\u8bf4\u6cd5\u8981\u5148\u67e5\u662f\u5426\u771f\u662f\u7b2c\u4e00\u6b21\uff09\u3002\n\n## 2. \u627e\u771f\u5b9e\u7d20\u6750\uff08B-roll \u7684\u5e95\u5b50\uff09\n\n\u8be6\u89c1 `references/\u7d20\u6750.md`\u3002\u8981\u70b9\uff1a\n\n- \u6765\u6e90\u4f18\u5148\u7ea7\uff1a**NASA / \u7f8e\u56fd\u653f\u5e9c\u673a\u6784\uff08\u516c\u6709\u9886\u57df\uff09> Wikimedia Commons\uff08CC0 / CC BY / CC BY-SA\uff09> \u5b98\u65b9\u65b0\u95fb\u7a3f\u63d2\u56fe\uff08\u770b\u6e05\u4f7f\u7528\u6761\u6b3e\uff0c\u5e38\u89c1\u662f\u300c\u975e\u5546\u4e1a\u514d\u8d39\u3001\u9700\u7f72\u540d\u300d\uff09**\u3002\u4e0d\u7528\u6765\u8def\u4e0d\u660e\u7684\u56fe\uff0c\u4e0d\u6252 YouTube \u89c6\u9891\u3002\n- \u7528 `scripts/commons.py search / info / get` \u641c\u7d22\u3001\u67e5\u6388\u6743\u548c**\u771f\u6b63\u7684\u4f5c\u8005**\uff08`Artist` \u5b57\u6bb5\uff0c\u4e0d\u662f\u4e0a\u4f20\u8005\u7528\u6237\u540d\uff09\u3001\u4e0b\u8f7d\u539f\u56fe\u3002\n- \u89c6\u9891\u5148\u6bcf 5 \u79d2\u62bd\u4e00\u5e27\u62fc\u6210\u8054\u7cfb\u8868\uff0c\u6311\u51fa\u8981\u7528\u7684\u7247\u6bb5\uff0c**\u518d\u7ec6\u62bd\u786e\u8ba4\u753b\u9762\u771f\u7684\u5728\u90a3\u51e0\u79d2**\uff0c\u7136\u540e\u526a\u6210 720p H.264 \u5c0f\u6bb5\uff08`-an -vf scale=1280:720,fps=30 -c:v libx264 -crf 20 -pix_fmt yuv420p -movflags +faststart`\uff09\u3002\n- \u5927\u56fe\u7528 `sips -Z 1800` \u7f29\u5c0f\uff1b\u5168\u90e8\u653e `public/footage/<\u671f>/`\u3002\n- \u6bcf\u4e2a\u7d20\u6750\u7684\u6587\u4ef6\u540d\u3001\u5185\u5bb9\u3001\u4f5c\u8005\u3001\u6388\u6743\u5199\u8fdb `<\u7d20\u6750\u76ee\u5f55>/\u7d20\u6750\u6765\u6e90.md`\uff1b\u753b\u9762\u4e0a\u6bcf\u4e2a\u7d20\u6750\u5de6\u4e0b\u89d2\u90fd\u6807\u300c\u4f5c\u8005 / \u6388\u6743\u300d\u3002\n\n## 3. \u5199\u53e3\u64ad\u7a3f\uff1a\u50cf\u8ddf\u670b\u53cb\u804a\u5929\n\n\u8be6\u89c1 `references/\u8bed\u6c14\u4e0e\u5199\u7a3f.md`\u3002\u786c\u89c4\u5219\uff1a\n\n- **\u5f3a\u94a9\u5b50**\uff1a\u7b2c\u4e00\u53e5\u628a\u89c2\u4f17\u62c9\u8fdb\u73b0\u573a\uff0c\u7528\u300c\u5c31\u5728\u4f60\u542c\u6211\u8bf4\u8fd9\u53e5\u8bdd\u7684\u8fd9\u4e00\u79d2\u2026\u2026\u300d\u300c\u4f60\u4e00\u70b9\u611f\u89c9\u90fd\u6ca1\u6709\uff0c\u5bf9\u5427\uff1f\u300d\u8fd9\u7c7b\u548c\u89c2\u4f17\u672c\u4eba\u6709\u5173\u7684\u53cd\u5dee\u3002\n- **\u5e26\u8bed\u6c14**\uff1a\u6bcf 1\uff5e2 \u6bb5\u653e\u4e00\u4e2a\u53e3\u8bed\u6293\u624b\u2014\u2014\u95ee\u53e5\uff08\u300c\u90a3\u600e\u4e48\u6293\u4e00\u4e2a\u5e7d\u7075\u5462\uff1f\u300d\uff09\u3001\u53cd\u8f6c\uff08\u300c\u542c\u8d77\u6765\u5f88\u75af\u72c2\uff0c\u53ef\u4ed6\u4eec\u771f\u5e72\u4e86\u3002\u300d\uff09\u3001\u5f15\u5bfc\uff08\u300c\u4f60\u60f3\u554a\uff0c\u2026\u2026\u300d\uff09\u3002\n- **\u6df1\u5ea6\u7ed3\u5c3e\uff0c\u4e0d\u8bf4\u300cOK \u672c\u671f\u89c6\u9891\u5c31\u5230\u8fd9\u91cc\u300d**\uff1a\u6700\u540e\u4e24\u4e09\u53e5\u4ece\u4e8b\u5b9e\u4e0a\u5347\u5230\u610f\u4e49\uff08\u300c\u8fd9\u4e2a\u8bfa\u5956\u5956\u52b1\u7684\u4e0d\u53ea\u662f\u4e00\u53f0\u4eea\u5668\uff0c\u800c\u662f\u4eba\u7c7b\u770b\u5b87\u5b99\uff0c\u591a\u4e86\u4e00\u53cc\u4e0d\u9760\u5149\u7684\u773c\u775b\u300d\uff09\uff0c\u7ed3\u5c3e\u90a3\u53e5\u8981\u77ed\u3001\u8981\u80fd\u5355\u72ec\u6210\u7acb\u3002\n- 400\uff5e430 \u5b57\uff1b\u6570\u5b57\u5199\u6210\u963f\u62c9\u4f2f\u6570\u5b57\uff08TTS \u8bfb\u5f97\u51c6\uff09\uff0c\u4f46\u300c\u4e24\u5343\u591a\u7c73\u300d\u8fd9\u7c7b\u7ea6\u6570\u7528\u6c49\u5b57\uff1b\u4e0d\u7528\u5192\u53f7\u3001\u62ec\u53f7\u3001\u7834\u6298\u53f7\u3002\n- \u7a3f\u5b50\u5b58 `<\u7d20\u6750\u76ee\u5f55>/\u53e3\u64ad\u7a3f.txt`\uff0c\u5728\u56de\u590d\u91cc\u8d34\u5168\u6587\u548c\u5b57\u6570\u3002\n\n## 4. \u914d\u97f3\uff1a\u8bed\u6c14\u63d0\u793a + \u6a21\u578b\u8bed\u901f\n\n```sh\npython3 .claude/skills/weilanx-creator-vox-video/scripts/tts_expressive.py \\\n  --text-file <\u7d20\u6750\u76ee\u5f55>/\u53e3\u64ad\u7a3f.txt --output <\u7d20\u6750\u76ee\u5f55>/<\u671f>-\u53e3\u64ad-\u81ea\u7136\u7248.mp3\n```\n\n- \u9ed8\u8ba4\u8bed\u6c14\u63d0\u793a\u662f\u300c\u81ea\u7136\u3001\u677e\u5f1b\u3001\u50cf\u8ddf\u670b\u53cb\u804a\u5929\u7684\u79d1\u666e\u535a\u4e3b\uff0c\u6709\u8f7b\u91cd\u7f13\u6025\uff1b\u95ee\u53e5\u5e26\u597d\u5947\u548c\u8c03\u4f83\uff1b\u60ca\u4eba\u5904\u6709\u60ca\u53f9\uff1b\u7ed3\u5c3e\u653e\u6162\u5e26\u611f\u6168\uff1b\u4e0d\u8981\u64ad\u97f3\u8154\u300d\uff0c\u9ed8\u8ba4\u8bed\u901f +30\u3002\n- **\u4e0d\u8981\u518d `atempo=1.2`**\uff1a\u540e\u671f\u786c\u52a0\u901f\u4f1a\u8ba9\u8bed\u8c03\u53d1\u50f5\uff1b\u8981\u53d8\u5feb\u5c31\u63d0\u9ad8 `--rate` \u6216\u5220\u5b57\u3002\n- \u65f6\u957f\u76ee\u6807 58\uff5e63 \u79d2\uff1a\u8d85\u4e86\u5148\u5220\u4fee\u9970\u8bed\uff0c\u518d\u628a `--rate` \u63d0\u5230 35\uff5e40\uff1b\u77ed\u4e86\u53cd\u8fc7\u6765\u3002\n- \u7528 `scripts/voice_stats.py` \u91cf\u4e00\u4e0b\uff08`uv run --with numpy python ...`\uff09\uff1a\u97f3\u9ad8\u8303\u56f4 \u226515 \u534a\u97f3\u3001\u505c\u987f 40 \u6b21\u5de6\u53f3\u7b97\u5408\u683c\uff1b\u4e24\u7248\u5bf9\u6bd4\u65f6\u628a\u6570\u5b57\u62a5\u7ed9\u7528\u6237\u3002\n- \u58f0\u97f3\u53ea\u80fd\u7528\u6237\u81ea\u5df1\u542c\uff1a\u4fdd\u7559\u8bd5\u97f3\uff0c\u544a\u8bc9\u7528\u6237\u6587\u4ef6\u4f4d\u7f6e\u3002\n\n## 5. \u8f6c\u5b57\u5e55\u3001\u5904\u7406\u4eba\u58f0\n\n- \u7528 `weilanx-doubao-voice-srt` \u7684\u4e09\u4e2a\u811a\u672c\u8bc6\u522b**\u8fd9\u4efd mp3**\uff08\u8f6c 16k \u5355\u58f0\u9053\u518d\u8bc6\u522b\uff09\uff0c\u7528\u7a3f\u5b50\u6821\u5bf9\uff0c\u6bcf\u884c 6\uff5e16 \u5b57\u3001\u4e00\u4e2a\u5b8c\u6574\u610f\u601d\uff0c\u8f93\u51fa `<\u7d20\u6750\u76ee\u5f55>/\u5b57\u5e55.srt` \u548c `\u5b57\u5e55\u7a3f.md`\u3002\u8bc6\u522b\u548c\u7a3f\u5b50\u5bf9\u4e0d\u4e0a\u7684\u5730\u65b9\u8bb0\u4e0b\u6765\u8ba9\u7528\u6237\u53bb\u542c\u3002\n- \u4eba\u58f0\uff1a`ebur128` \u6d4b\u54cd\u5ea6 \u2192 `volume=<\u589e\u76ca>dB,alimiter=limit=0.8:level=false` \u8c03\u5230 \u221216 LUFS\uff08\u00b10.5\uff09\u2192 48kHz \u7acb\u4f53\u58f0 16-bit \u2192 `public/audio/<\u671f>/voice.wav`\u3002\n- **\u7ed3\u5c3e\u7559\u4f59\u97f5**\uff1a`cues.ts` \u7684 `VOICE_SECONDS` \u8bbe\u4e3a\u6700\u540e\u4e00\u6761\u5b57\u5e55\u7ed3\u675f + \u7ea6 2 \u79d2\uff0c\u5e76\u7528 `apad=whole_dur=<VOICE_SECONDS>` \u628a voice.wav \u8865\u5230\u540c\u6837\u957f\uff0c\u8fd9\u6837\u914d\u4e50\u80fd\u94fa\u6ee1\u4f59\u97f5\u518d\u6de1\u51fa\u3002\n- `npm run cues -- <\u7d20\u6750\u76ee\u5f55>/\u5b57\u5e55.srt src/episodes/<\u671f>/cues.json`\uff0c\u7136\u540e\u6253\u5370\u6bcf\u6761\u5b57\u5e55\u7684\u8d77\u6b62\u5e27\uff0c\u540e\u9762\u6392\u955c\u5934\u7528\u3002\n\n## 6. \u753b\u9762\uff1aA-roll \u9ed1\u5361 + B-roll \u771f\u5b9e\u7d20\u6750\uff0c\u6309\u5b57\u5e55\u786c\u5207\n\n\u8be6\u89c1 `references/\u753b\u9762.md`\uff0c\u4ee3\u7801\u7167\u6284 `src/episodes/ep21-nobel-physics/film.tsx` \u7684\u9aa8\u67b6\u3002\u6838\u5fc3\uff1a\n\n- \u6574\u7247\u662f\u4e00\u5f20**\u955c\u5934\u8868** `SHOTS: {from, kind: 'A' | 'B', C}[]`\uff0c`Film` \u53ea\u6e32\u67d3\u5f53\u524d\u955c\u5934\uff0c\u955c\u5934\u4e4b\u95f4**\u5168\u662f\u786c\u5207**\uff0c\u5207\u70b9\u843d\u5728\u5b57\u5e55\u5f00\u5934\uff08`cf(n)`\uff0c\u6700\u591a\u63d0\u524d 2\uff5e6 \u5e27\uff09\u3002\n- **A-roll \u9ed1\u5361**\u7528\u6765\u63a5\u4f4f\u53e3\u64ad\u91cc\u7684\u300c\u94a9\u5b50\u6570\u5b57\u3001\u540d\u8bcd\u63ed\u6653\u3001\u95ee\u53e5\u3001\u53cd\u8f6c\u3001\u7ed3\u8bba\u300d\uff1a\u4e00\u53e5\u4e00\u5f20\uff0c\u5b57\u53f7 150\uff5e330\uff0c\u5173\u952e\u8bcd\u7528**\u9ec4\u8272\u5b57 + \u7ea2\u8272\u624b\u753b\u4e0b\u5212\u7ebf**\uff08\u9ed1\u5361\u4e0a\u4e0d\u8981\u7528 `Highlight` \u8367\u5149\u7b14\uff0c\u53e0\u5728\u9ed1\u5e95\u4e0a\u770b\u4e0d\u89c1\uff09\u3002\n- **B-roll** \u662f `VoxFootage` \u9489\u5728\u65e7\u7eb8\u684c\u9762\u4e0a\uff08\u767d\u8fb9\u3001\u4e24\u6761\u80f6\u5e26\u3001\u5de6\u4e0b\u89d2\u7f72\u540d\uff09\uff0c\u6574\u4e2a\u955c\u5934\u6162\u63a8 5%\uff0c\u65c1\u8fb9\u914d Vox \u6279\u6ce8\uff1a`Label` \u9ed1\u5e95\u6807\u7b7e\u3001`IndexCard` \u7d22\u5f15\u5361\u3001`PostIt` \u4fbf\u5229\u8d34\u3001`Stamp` \u76d6\u7ae0\u3001`RedCircle` \u7ea2\u5708\u3001`HandLine` \u624b\u753b\u7bad\u5934 / \u5bf9\u52fe\u3001\u624b\u5199\u7ea2\u5b57\u3002\n- \u8282\u594f\uff1a\u6bcf 2\uff5e4 \u79d2\u4e00\u4e2a\u5207\u70b9\uff1b\u9ed1\u5361\u548c\u5b9e\u62cd\u4ea4\u66ff\uff0c\u4e0d\u8981\u8fde\u7eed\u4e09\u4e2a\u4ee5\u4e0a\u540c\u7c7b\u955c\u5934\uff1b\u89c6\u9891\u955c\u5934\u5fc5\u987b\u4f20 `start`\uff08\u5f00\u59cb\u64ad\u653e\u7684\u5168\u5c40\u5e27\uff09\u3002\n- \u62bd\u8c61\u7684\u9053\u7406\u914d\u4e00\u5f20**\u624b\u753b\u56fe\u89e3**\uff08\u4f8b\uff1a\u5149\u88ab\u5c18\u57c3\u6321\u4f4f\u3001\u4e2d\u5fae\u5b50\u7b14\u76f4\u7a7f\u8fc7\uff09\uff0c\u5143\u7d20\u6309\u53e3\u64ad\u5206\u6b65\u51fa\u73b0\u3002\n- \u6bcf\u4e2a\u955c\u5934\u914d\u97f3\u6548\uff08`paper` \u5207\u5b9e\u62cd\u3001`stamp` \u5207\u9ed1\u5361\u3001`ding` \u6570\u5b57\u843d\u5b9a\u3001`magic` \u63ed\u6653\u3001`question` \u95ee\u53e5\uff09\u3002\n\n## 7. \u914d\u4e50\uff1a\u6709\u5f8b\u52a8\u3001\u8ddf\u7740\u526a\u8f91\u8d70\n\n\u8be6\u89c1 `references/\u914d\u4e50.md`\uff0c\u4ee3\u7801\u7167\u6284 `audio/episodes/ep21-nobel-physics.mjs`\uff08\u7528 `audio/score.mjs` \u7684\u4e50\u5668\uff09\uff0c\u53ea\u8dd1 `node audio/episodes/<\u671f>.mjs`\u3002\u6838\u5fc3\uff1a\n\n- \u5168\u7247\u4e00\u6761 **124 BPM** \u7684\u8282\u62cd\u7f51\u683c\u4ece\u5934\u8d70\u5230\u5c3e\uff0c\u6bb5\u843d\u5207\u6362\u5438\u9644\u5230\u79bb\u5b57\u5e55\u6700\u8fd1\u7684\u5c0f\u8282\u7ebf\uff08`snapBar`\uff09\u3002\n- \u56db\u62cd\u5e95\u9f13 + \u4e8c\u56db\u62cd\u519b\u9f13 + \u5341\u516d\u5206\u8e29\u9572\uff1b\u94fa\u5e95\u548c\u65b9\u6ce2\u7436\u97f3\u505a**\u4fa7\u94fe\u5f0f\u547c\u5438**\uff08\u6bcf\u62cd\u538b\u4e0b\u53bb\u518d\u653e\u5f00\uff09\u3002\n- \u89e3\u91ca\u6982\u5ff5\u7684\u6bb5\u843d\u8f6c\u534a\u901f\uff1b**\u7ed3\u5c3e\u524d\u7559\u767d**\uff08\u300c\u4f60\u60f3\u554a\u300d\u90a3\u79cd\u8f6c\u6298\u53e5\u53ea\u7559\u94fa\u5e95\uff09\uff0c\u518d\u8d77\u62cd\u4e00\u8def\u63a8\u5230\u6700\u540e\u4e00\u53e5\u843d\u91cd\u51fb\uff0c\u4f59\u97f5\u94fa\u6ee1\u518d\u6de1\u51fa\u3002\n- **\u6bcf\u6b21\u5207\u5230\u9ed1\u5361\u524d\u63a8 0.9 \u79d2\u6e10\u5f3a\u3001\u5207\u70b9\u843d\u4e00\u4e0b\u4f4e\u9891\u91cd\u51fb**\uff1b\u5168\u7247\u6311 3\uff5e4 \u4e2a\u9ad8\u6f6e\u8bcd\uff08\u63ed\u6653\u3001\u9707\u64bc\u6570\u5b57\u3001\u7ed3\u8bba\uff09\u52a0\u9572 + \u91cd\u51fb\u3002\n- `level 0.071`\u3001`depth 0.7`\uff0c\u6574\u8f68\u7ea6 \u221232\uff5e\u221234 LUFS\uff1b\u7528\u6237\u60f3\u8ba9\u5f8b\u52a8\u66f4\u7a81\u51fa\u65f6\u518d\u6574\u4f53\u8c03\u5927\u3002\n\n## 8. \u5c01\u9762\u3001\u6587\u6848\u3001\u9884\u89c8\n\n- \u5199 `src/episodes/<\u671f>/Cover.tsx`\uff1a16:9 \u9996\u5e27\u5c01\u9762\uff08\u5de6\u9ed1\u5361\u5927\u6807\u9898 + \u53f3\u4fa7\u4e24\u5f20\u771f\u5b9e\u7d20\u6750 + \u4e00\u4e2a\u8d34\u7eb8\uff09\u548c 3:4 \u7ad6\u7248\u5c01\u9762\uff0c\u5728 `Root.tsx` \u6ce8\u518c `<\u671f>-cover-tall` \u7684 `Still`\uff1b\u6e32\u67d3\u5b58\u4e3a `<\u7d20\u6750\u76ee\u5f55>/\u5c01\u9762-16x9.png`\u3001`\u5c01\u9762-3x4.png`\uff08\u5bfc\u51fa\u811a\u672c\u4f1a\u81ea\u52a8\u5e26\u4e0a\uff09\u3002\n- `Ep*.tsx` \u7528 `VoxShow`\uff0c`cover: {C, frames: \u7b2c\u4e00\u53e5\u5f00\u59cb\u5e27 \u2212 5}`\uff0c`subY: 965`\uff0c`keywords` \u653e\u672c\u671f\u9ad8\u4eae\u8bcd\uff1b\u4eff `tests/episodes/ep21-nobel-physics.test.ts` \u52a0\u6d4b\u8bd5\uff1b`npm run typecheck`\u3001`npm test` \u90fd\u8981\u8fc7\u3002\n- **\u62bd\u5e27\u81ea\u67e5**\uff1a\u6bcf\u4e2a\u955c\u5934\u81f3\u5c11\u4e00\u5e27\uff08`--scale=0.25`\uff0c\u6309\u987a\u5e8f\u4e00\u5e27\u4e00\u5e27\u6e32\uff0c`bash -c` \u5305\u5faa\u73af\uff09\uff0c\u62fc\u56fe\u770b\uff1a\u89c6\u9891\u662f\u4e0d\u662f\u9ed1\u7684\u3001\u5b57\u6709\u6ca1\u6709\u538b\u5230\u7d20\u6750\u6216\u5b57\u5e55\u3001\u53e5\u5c3e\u8bcd\u6302\u7684\u5143\u7d20\u662f\u4e0d\u662f\u4e00\u95ea\u800c\u8fc7\u3001\u9ed1\u5361\u4e0b\u5212\u7ebf\u6709\u6ca1\u6709\u538b\u5b57\u3002\n- \u7528 `dbs-xhs-title` \u51fa\u4e3b\u6807\u9898 1 \u4e2a\u3001\u5907\u9009 2 \u4e2a\uff08\u6ce8\u660e\u516c\u5f0f\u7f16\u53f7\uff0c\u226420 \u5b57\uff09\uff1b\u63cf\u8ff0\u7b2c\u4e00\u53e5\u662f\u94a9\u5b50\uff0c\u7136\u540e\u8981\u70b9\u6e05\u5355\uff0c\u672b\u5c3e\u5199\u7d20\u6750\u6765\u6e90\u548c\u6388\u6743\uff0c\u6700\u540e\u4e00\u884c\u8bdd\u9898\u3002\u5b58 `<\u7d20\u6750\u76ee\u5f55>/\u53d1\u5e03\u6587\u6848.md`\u3002\n- `lsof -i :3000 -sTCP:LISTEN` \u770b Studio\uff0c\u6ca1\u5f00\u5c31\u540e\u53f0 `npm run studio`\u3002\u628a `http://localhost:3000/<\u671f>` \u7ed9\u7528\u6237\uff0c\u6c47\u62a5\uff1a\u7a3f\u5b50\u5168\u6587\u548c\u5b57\u6570\u3001\u65f6\u957f\u3001\u4eba\u58f0\u54cd\u5ea6\u3001\u8bed\u6c14\u7edf\u8ba1\u3001\u5b57\u5e55\u6761\u6570\u3001\u955c\u5934\u8868\u3001\u914d\u4e50\u7ed3\u6784\u3001\u7d20\u6750\u6388\u6743\uff08\u5c24\u5176\u975e\u5546\u4e1a\u6761\u6b3e\uff09\u3001\u9700\u8981\u7528\u6237\u786e\u8ba4\u7684\u4e8b\u5b9e\u548c\u8bfb\u97f3\u3002\u63d0\u9192\u7528\u6237\uff1a\u542c\u611f\u53ea\u80fd\u81ea\u5df1\u542c\u3002\n- \u7528\u6237\u786e\u8ba4\u540e\u518d `npm run export -- <\u671f>`\uff0c\u68c0\u67e5\u65f6\u957f\u30011920\u00d71080\u3001\u221216 LUFS\u3001\u5cf0\u503c < \u22121 dBFS\uff0c\u5e76\u628a\u6210\u7247\u590d\u5236\u4e00\u4efd\u5230 `<\u7d20\u6750\u76ee\u5f55>/`\uff0c\u5019\u9009\u6c60\u6539 \u2705\u3002\n\n## \u8e29\u8fc7\u7684\u5751\n\n- NASA \u7b49\u957f\u89c6\u9891\u91cc\u753b\u9762\u4f1a\u5207\u597d\u51e0\u6b21\uff1a\u6309 5 \u79d2\u62bd\u7684\u8054\u7cfb\u8868\u5b9a\u4f4d\u540e\uff0c**\u8fd8\u8981\u5728\u76ee\u6807\u9644\u8fd1\u6bcf\u79d2\u62bd\u4e00\u5e27\u786e\u8ba4**\uff0c\u5426\u5219\u526a\u51fa\u6765\u7684\u53ef\u80fd\u662f\u9ed1\u573a\u6216\u522b\u7684\u753b\u9762\u3002\n- \u7f72\u540d\u7528 Commons \u7684 `Artist`\uff08\u771f\u6b63\u7684\u4f5c\u8005\uff09\uff0c\u4e0d\u662f\u4e0a\u4f20\u8005\u7528\u6237\u540d\u3002\n- `cw(n, '\u8bcd')` \u6302\u5728\u53e5\u5c3e\u7684\u5143\u7d20\u4f1a\u4e00\u95ea\u800c\u8fc7\uff1a\u6539\u6302\u5230\u53e5\u9996 `cf(n) + k`\uff0c\u6216\u8ba9\u4e0b\u4e00\u4e2a\u955c\u5934\u665a\u51e0\u5e27\u5207\u3002\n- \u955c\u5934\u7684 `start` \u548c\u955c\u5934\u7684 `from` \u8981\u4e00\u81f4\uff0c\u5426\u5219\u89c6\u9891\u4f1a\u4ece\u4e2d\u95f4\u5f00\u59cb\u64ad\u3002\n- \u914d\u4e50\u957f\u5ea6\u8ddf\u7740 voice.wav \u8d70\uff0c\u6240\u4ee5\u8981\u7ed9 voice.wav \u8865\u9759\u97f3\u5230 `VOICE_SECONDS`\uff0c\u4e0d\u7136\u7ed3\u5c3e\u4f59\u97f5\u6ca1\u6709\u97f3\u4e50\u3002\n- \u300c\u4e0d\u53ea\u662f X\uff0c\u800c\u662f Y\u300d\u8fd9\u79cd\u53e5\u5b50\uff0c\u522b\u7ed9 X \u52a0\u5220\u9664\u7ebf\uff08\u4f1a\u88ab\u8bfb\u6210\u300c\u4e0d\u662f X\u300d\uff09\uff0c\u628a X \u8c03\u6697\u5c31\u884c\u3002\n","usage":"\u8bfb\u53d6 SKILL.md\uff0c\u5e76\u6309\u9700\u8bfb\u53d6\u914d\u5957\u6587\u4ef6\uff1b\u4e0b\u8f7d ZIP \u83b7\u53d6\u5b8c\u6574\u5305\u3002\u6280\u80fd\u662f\u4efb\u52a1\u65b9\u6cd5\uff0c\u4e0d\u6388\u4e88\u65b0\u589e\u8d26\u6237\u3001\u4ed8\u8d39\u6216\u7cfb\u7edf\u6743\u9650\u3002"}
