用途:为视频添加专业旁白,流程为分析视频、编写或润色带时间轴的脚本、用 TTS 生成语音并合并,使音频与画面保持同步。输入为 $ARGUMENTS。
主要能力:默认使用 Azure TTS,用户明确要求或已配置 GEMINI_API_KEY 时可用 Gemini 3.1 Flash TTS;支持选择语言(默认英语),并按 references/voices.md 查语音与语速。脚本以 (start_seconds, text) 元组组织,模板为 scripts/narration_script_template.py,需复制为视频目录下的 narration_script.py 并填写 TTS_PROVIDER、VOICE_NAME、INPUT_VIDEO、OUTPUT_VIDEO 和 SEGMENTS。
使用方式:先检查凭据与依赖,命令包括 scripts/check_env.py azure 或 scripts/check_env.py gemini、command -v ffmpeg && command -v ffprobe && command -v python3、python3 -c "import dotenv",Azure 还需 python3 -c "import azure.cognitiveservices.speech"。凭据缺失时写入 ~/.narrate_video.env,Azure 用 AZURE_SPEECH_KEY 与 AZURE_SPEECH_REGION,Gemini 用 GEMINI_API_KEY,可选 GEMINI_TTS_MODEL。用 ffprobe 读取元数据,按 3–4 秒间隔抽帧识别场景,必要时以 1–2 秒间隔补帧。运行 python3 narration_script.py 生成,之后用 volumedetect、silencedetect 和抽帧检查音量、静音间隙与音画同步。
限制与注意:旁白应略晚于画面出现;段间至少留 1 秒静音,英语按每秒 2.5 词并取 80% 估算;amix 需加 normalize=0,且只映射最终音轨;音频重叠会中止;修改文本后需删除 narration_segments/seg_XXX.* 缓存;Gemini 可能返回 500 或朗读提示标签,模板已做重试与 TRANSCRIPT: 包装。其他细节暂未提供。