SuperAPI AI 工具集

video-translate

设计与创作

查看项目

更新于 10-16 00:24

技能介绍

用途:把一条口播 take 翻译成目标语言,输出使用创作者自己克隆音色的配音版本;画面仍为原始素材,不做口型同步。翻译后可用 /video-edit 像处理普通 take 一样剪辑,并添加新语言字幕。参数为 <slug>(take 标识)、<lang>(目标语言代码,如 en、es、fr、de、pt、it、ja)、<from>(源语言)。

主要能力与用法:

  1. 密钥配置:ELEVENLABS_API_KEY 存放在 video-agent/.env 中,不写入聊天、脚本或提交;可用 grep -c ELEVENLABS_API_KEY video-agent/.env 2>/dev/null 检查,密钥在 elevenlabs.io/app/settings/api-keys 创建,账号需有配音积分(免费方案会加水印)。video-agent/.env 须加入 .gitignore,命令中通过 set -a; . video-agent/.env; set +a 加载且不打印。
  2. 选择翻译对象:翻译 take 而非成片(成片字幕已烧录为原语言)。若已有 edit.json,先只发送保留片段(用 video-edit 的 ranges 生成 cut,源为 video-agent/.tmp/<slug>-cut.mp4);原始 take 可先跑 /video-edit 到剪切清单,或直接发送。
  3. 估算并发起:用 ffprobe 读取时长,向用户确认后调用 POST https://api.elevenlabs.io/v1/dubbing,参数含 file、target_lang、source_lang、num_speakers=1、watermark=false、name,返回 dubbing_id 与 expected_duration_sec;401 为密钥错误,402 或 quota 表示积分不足。
  4. 等待与下载:每 15 秒轮询 https://api.elevenlabs.io/v1/dubbing/<dubbing_id> 直到状态为 dubbed;下载 /dubbing/<dubbing_id>/audio/<lang>,若含视频流即为成片,仅音频时用 ffmpeg 合并回原画面,输出到 video-agent/takes/<slug>-<lang>.mp4。
  5. 后续编辑:运行 /video-edit <slug>-<lang>,在 whisper-config.mjs 中按语言设置 WHISPER_LANG(英语用 medium.en,其他语言用 medium),hook 卡片、标注与 post.md 用目标语言,CTA 也需翻译;命名统一带 -<lang> 后缀,最后可用 /video-publish 发布。

限制:不做口型同步;克隆音质受素材噪声或背景音乐影响;机器翻译可能使名字、术语和笑话出错,发布前需人工核对;配音按分钟消耗 ElevenLabs 积分,价格取决于方案,先剪掉冗余片段最省钱。