video-ai-talking:本机运行的 AI 真人口播视频生成工具
上传一段真人出镜视频并写好字幕,由本机调用火山引擎或阿里百炼配音、百炼 VideoRetalk 对口型,再用 FFmpeg 合成为竖屏 MP4;密钥只留在浏览器,任务与成片写在本机 data/ 目录。
社区作者 · zZz
它解决什么问题
video-ai-talking 是一个开源的真人口播视频生成工具,解决“想做真人口播又不必自己对着镜头念稿”的问题。使用方式为:把一段真人出镜的视频放进来(脸清楚即可,不用说话),写好要说的话,选一套字幕样式;本机先调用火山引擎或阿里百炼完成配音,再把真人视频与配音交给百炼 VideoRetalk 做口型对齐,最后用 FFmpeg 合成一条竖屏 MP4。中间某几句想换画面时,可以把视频素材整屏切进去。
界面分为三部分(配图 2,工作台):左侧是口播真人视频和视频素材,中间是配音、BGM 和文案,右侧选皮肤并预览;生成完成后历史成片在「成片库」(配图 3)中预览、下载或删除。配图 1 为点击观看 B 站视频介绍的入口。
重要特性与边界:密钥只留在你的浏览器里;任务和成片写在本机 data/ 目录;没有云端服务器,也不会替你去调任何接口。项目声明这不是抖音、字节跳动、火山引擎、阿里云或 DeepSeek 的官方产品。截图里的出镜和画面来自免费可商用素材库(如 Pexels),只用于演示界面,不是本工具的真实用户,也不代表出镜人代言本项目;仓库自带的口播试用片及来源见 demos/README.md,截图说明见 docs/screenshots/README.md。
本机数据:浏览器 localStorage 的 vat.config 保存你填的 Key 和 TTS 凭证;项目下的 data/ 保存任务 JSON、配音音频、对口型中间片、成片 MP4,引用素材只记路径。任务 JSON 里不会保存 API Key 或 TTS Token。关掉页面或停掉本机服务后正在跑的任务会停,下次打开不会自动续跑。出片时参考视频和配音会被上传到阿里百炼官方临时存储(oss://,约 48 小时),供 VideoRetalk 使用,详见 docs/privacy.md。
任务链路为:配音 → 对口型 → 成片;一次只出 1 条成片,同时只能跑一个任务。生成后在工作台看进度、预览或下载 MP4;点「重新生成」时若参考视频、口播正文和音色没变,会跳过对口型只重跑 FFmpeg。
使用前需阅读 DISCLAIMER.md、SECURITY.md、docs/privacy.md;贡献见 CONTRIBUTING.md,参与需遵守 CODE_OF_CONDUCT.md。
— 本文由 AI 根据公开来源辅助整理,命令、版本与许可证请在使用前到原始页面复核。
安装 / 开始使用
一、环境准备
- Node.js 20 或更高版本。
- 本机已安装 FFmpeg 和 ffprobe,并且能在终端里直接运行 ffmpeg、ffprobe(macOS 可用 brew install ffmpeg)。
- Linux 上若要用系统文件选择器,请先安装 Zenity(常见桌面环境一般已有);没有的话可以把文件从文件管理器拖进页面。
- 本机需要能访问实际用到的接口:阿里百炼 https://dashscope.aliyuncs.com (配音、临时上传、VideoRetalk)、火山 TTS https://openspeech.bytedance.com 、DeepSeek https://api.deepseek.com 。
- 申请密钥(打开页面里的「配置」也能看到同样的申请入口):
- 对口型(出片必填,填到「AI口播对口型配置」):阿里百炼 VideoRetalk 的 API Key(华北2 / 北京地域,以 sk- 开头)。
- 配音(两家选一家即可,填到「AI配音配置」):阿里百炼 CosyVoice 的 API Key(以 sk- 开头);或火山引擎语音合成的 App ID 和 Access Token。
- 文案(可选,不填也可以手写口播文案):DeepSeek API Key(以 sk- 开头)。
- 百炼的配音 Key 和对口型 Key 分开填:可以用同一把,也可以用另一把。出片时在配音区选择用火山还是百炼。
二、启动(日常开发 / 本机使用方式)
步骤 1
git clone https://github.com/yizhi-chengzi/video-ai-talking.git步骤 2
cd video-ai-talking步骤 3
cp .env.example .env步骤 4
npm install步骤 5
npm run dev- 浏览器打开 http://127.0.0.1:5175
三、已经构建过、只想起一个本机服务时
步骤 1
npm run build步骤 2
npm start- 打开 http://127.0.0.1:8789 ,页面和 API 都由这个地址提供。没先 build 的话,打开页面会是 404。
四、.env 说明 .env 只放端口,不要把 API Key 或 TTS Token 写进去。本地验证可以设 VAT_MOCK=1,配音 / 上传 / 对口型 / FFmpeg / DeepSeek 全部走 mock,不访问外网。
五、首次运行的完整使用流程
- 打开「配置」:在「AI口播对口型配置」填写百炼 VideoRetalk Key;要用百炼或火山配音、AI 写文案时再填对应凭证。每个卡片上有产品介绍和申请入口,点「测试」确认连通。
- 在 ①「口播真人视频」添加一段真人正面近景:脸清楚即可,不用念台词;不要侧脸、远景、多人或脸被挡住。没有现成片子时,可用仓库里的 demos/talking-head-cn.mp4 。视频素材在独立面板里添加,某句要换画面时拖到 ④ 对应字幕右侧。工具引用本机原路径,不把文件复制进项目。可选在 ③ 添加一首 BGM。
- 在 ② 选择火山或百炼,再选音色。密钥在「配置」里填,这里只选音色。
- 在 ④ 选「AI 生成」或「手动填写」其中一种。AI 生成可先选成片时长(15 / 30 / 45 / 60 秒,也可自定义 10–60 秒),再填主题。某句要切画面时,点该句右侧画面格选素材,或把视频素材拖过去。
- 在 ⑤ 选一套皮肤。可用「显示标题 / 显示字幕」控制成片是否画出标题和字幕;关掉前会确认。口播仍按字幕生成。
- 点「开始生成」。一次只出 1 条成片,同时只能跑一个任务。链路是配音 → 对口型 → 成片。
- 在工作台看进度,预览或下载 MP4。点「重新生成」时,如果参考视频、口播正文和音色没变,会跳过对口型只重跑 FFmpeg。历史成片在「成片库」。
六、常见问题
- 提示找不到 ffmpeg:先在终端执行 ffmpeg