video-ai-talking README

The project's README from github.com/yizhi-chengzi/video-ai-talking. As one markdown file: README.md.

AI真人口播视频生成

想做一条真人口播,又不必自己对着镜头念稿。

视频介绍(B 站):我开源了一个AI真人口播视频生成软件|本机运行 + AI自动对口型 + 素材 + AI文案 + 配音一键出 MP4

点击观看 B 站视频介绍

把一段真人出镜的视频放进来(脸清楚就行,不用说话),写好要说的话,选一套字幕样子。本机先找火山引擎或阿里百炼配音,再把这段真人和配音交给百炼 VideoRetalk 对上口型,最后用 FFmpeg 合成一条竖屏 MP4。中间某几句想换画面,可以把视频素材整屏切进去。

密钥只留在你的浏览器里;任务和成片写在本机 data/。没有云端服务器,也不会替你去调任何接口。这也不是抖音、字节跳动、火山引擎、阿里云或 DeepSeek 的官方产品。

由 yizhi-chengzi 开源。仓库:github.com/yizhi-chengzi/video-ai-talking

界面

工作台:左侧口播真人视频和视频素材,中间配音、BGM 和文案,右侧选皮肤并预览。

工作台

生成完成后,历史成片在「成片库」里预览、下载或删除。

成片库

截图里的出镜和画面来自免费可商用素材库(如 Pexels),只用来演示界面,不是本工具的真实用户,也不代表出镜人代言本项目。仓库自带的口播试用片及来源见 demos/README.md,截图说明见 docs/screenshots/README.md。

你需要准备什么

  1. Node.js 20 或更高
  2. 本机已安装 FFmpeg 和 ffprobe,并且能在终端里直接运行 ffmpeg、ffprobe
  3. 下面这些密钥。打开页面里的「配置」也能看到同样的申请入口。

要申请什么 Key、去哪里申请

用途 申请什么 去哪里申请 是否必填
对口型 阿里百炼 VideoRetalk 的 API Key(华北2 / 北京地域,以 sk- 开头) 产品介绍 · 密钥管理 出片必填,填到「AI口播对口型配置」
配音(百炼) 阿里百炼 CosyVoice 的 API Key(以 sk- 开头) 产品介绍 · 密钥管理 配音两家选一家即可。填到「AI配音配置」
配音(火山) 火山引擎语音合成的 App ID 和 Access Token 产品介绍 · 控制台申请 配音两家选一家即可。填到「AI配音配置」
文案 DeepSeek API Key(以 sk- 开头) 开放平台 · 创建 API Key 可选。不填也可以手写口播文案

百炼的配音 Key 和对口型 Key 分开填:可以用同一把,也可以用另一把。出片时在配音区选择用火山还是百炼。

本机还需要能访问你实际用到的接口:

Linux 上若要用系统文件选择器,请先安装 Zenity(常见桌面环境一般已有)。没有的话,可以把文件从文件管理器拖进页面。

启动

git clone https://github.com/yizhi-chengzi/video-ai-talking.git
cd video-ai-talking
cp .env.example .env
npm install
npm run dev

浏览器打开 http://127.0.0.1:5175。这是日常开发 / 本机使用的方式。

已经构建过、只想起一个本机服务时:

npm run build
npm start

然后打开 http://127.0.0.1:8789。页面和 API 都由这个地址提供。没先 build 的话,打开页面会是 404。

.env 只放端口,不要把 API Key 或 TTS Token 写进去。本地验证可以设 VAT_MOCK=1,配音 / 上传 / 对口型 / FFmpeg / DeepSeek 全部走 mock,不访问外网。

怎么用

  1. 打开「配置」:在「AI口播对口型配置」填写百炼 VideoRetalk Key;要用百炼或火山配音、AI 写文案时再填对应凭证。每个卡片上有产品介绍和申请入口,点「测试」确认连通。
  2. 在 ①「口播真人视频」添加一段真人正面近景:脸清楚即可,不用念台词;不要侧脸、远景、多人或脸被挡住。没有现成片子时,可用仓库里的 demos/talking-head-cn.mp4。视频素材在独立面板里添加,某句要换画面时拖到④对应字幕右侧。工具引用本机原路径,不把文件复制进项目。可选在 ③ 添加一首 BGM。
  3. 在 ② 选择火山或百炼,再选音色。密钥在「配置」里填,这里只选音色。
  4. 在 ④ 选「AI 生成」或「手动填写」其中一种。AI 生成可先选成片时长(15 / 30 / 45 / 60 秒,也可自定义 10–60 秒),再填主题。某句要切画面时,点该句右侧画面格选素材,或把视频素材拖过去。
  5. 在 ⑤ 选一套皮肤。可用「显示标题 / 显示字幕」控制成片是否画出标题和字幕;关掉前会确认。口播仍按字幕生成。
  6. 点「开始生成」。一次只出 1 条成片,同时只能跑一个任务。链路是配音 → 对口型 → 成片。
  7. 在工作台看进度,预览或下载 MP4。点「重新生成」时,如果参考视频、口播正文和音色没变,会跳过对口型只重跑 FFmpeg。历史成片在「成片库」。

本机数据

位置 内容
浏览器 localStorage 的 vat.config 你填的 Key 和 TTS 凭证
项目下的 data/ 任务 JSON、配音音频、对口型中间片、成片 MP4;引用素材只记路径

任务 JSON 里不会保存 API Key 或 TTS Token。

关掉页面或停掉本机服务后,正在跑的任务会停。下次打开不会自动续跑。

出片时,参考视频和配音会被上传到阿里百炼官方临时存储(oss://,约 48 小时),供 VideoRetalk 使用。详见 docs/privacy.md。

常见问题

提示找不到 ffmpeg
先在终端执行 ffmpeg -version 和 ffprobe -version。macOS 可用 brew install ffmpeg。

对口型失败
确认已在「AI口播对口型配置」填写百炼 VideoRetalk API Key,本机可访问 dashscope.aliyuncs.com,参考视频是带人脸的近景片段。

TTS 测试失败
核对当前选用的那一家凭证,以及本机能否访问对应域名。火山要核对 App ID 与 Access Token 是否来自同一语音合成应用。

画面没有中文标题
FFmpeg 需要本机有可用中文字体。工具会按常见路径查找;找不到时成片仍会生成,但标题 / 字幕可能是方框。说明见 templates/fonts.md。

Linux 点「选择文件」没反应
确认已安装 zenity,或改用拖入文件。

开发

npm test
npm run typecheck

测试默认不调用真实 DeepSeek / 火山 / 百炼接口,也不跑完整 VideoRetalk,不要求本机已安装 FFmpeg。

不要从本目录 import 其他产品源码,也不要把本机 data/、密钥或人脸素材提交上去。

免责、安全与行为

使用前请阅读 DISCLAIMER.md、SECURITY.md、docs/privacy.md。贡献见 CONTRIBUTING.md。参与时请遵守 CODE_OF_CONDUCT.md。

License

MIT

video-ai-talking (yizhi-chengzi/video-ai-talking)

Searching Database…

这是什么?一个本地网页应用,能把真人口播出镜素材变成成片口播视频:你上传一段面向镜头的短片段,写好文案,它会生成配音,让片段与音频对口型,并用 FFmpeg 渲染出竖屏 MP4。
这是云服务,还是我在自己电脑上运行的东西?它是一个自托管网页应用:本地 Node.js 服务器加浏览器界面,没有自己的云后端。任务、API 密钥和成片视频都留在你的机器上,不过参考素材在对口型环节会短暂上传到阿里的云。
怎么让它跑起来?在本地安装 Node.js 20+ 和 FFmpeg/ffprobe,然后运行 npm install、npm run build 和 npm start(开发时用 npm run dev),并在浏览器中打开它提供的本地地址。
生成视频之前需要准备什么?Node.js 20+、可在终端运行的 FFmpeg 和 ffprobe、一个阿里云百炼 VideoRetalk API 密钥(对口型必需),以及用于配音的百炼 CosyVoice 或火山引擎 TTS 凭证;如需 AI 撰写文案,可选配 DeepSeek 密钥。
有哪些需要知道的限制?一次只能渲染一个视频,任务不能并发;中途关闭应用或停止服务器会终止任务且不会自动恢复;而且尽管在本地运行,你的参考视频和生成的音频仍会上传到阿里的临时 OSS 存储约 48 小时,以便 VideoRetalk 处理。
它能在 Windows 上运行吗,还是仅支持 macOS/Linux?作为带浏览器界面的 Node.js 应用,它是跨平台的,但 Linux 用户需要安装 Zenity 才能使用原生文件选择器(也可以退而拖入文件),macOS 用户可通过 Homebrew 安装 FFmpeg。
选择「皮肤」实际改变什么?它设置烧录进成片的字幕/标题视觉样式,你还可以开关标题和字幕的显示;旁白音频仍由你撰写的字幕文本驱动。
能为特定句子替换不同的画面吗?可以,对任何句子你都可以把视频片段拖到它的字幕槽位上,该段落就会切换到那段画面而不是口播出镜镜头,多个参考片段还可以混剪进一个输出。
这是字节跳动、阿里或 DeepSeek 的官方产品吗?不是,它是 yizhi-chengzi 的独立开源项目,只是调用百炼、火山引擎和 DeepSeek 的 API;与抖音、字节跳动、火山引擎、阿里云或 DeepSeek 均无隶属关系。
点击「重新生成」会重跑整个流程吗?不一定:如果参考视频、文案和所选音色都没有变化,重新生成会跳过对口型调用,只重跑 FFmpeg 合成步骤。
Size
20.3 MB
Stars
478
Updated
CommitSep 03
Age
1mo
Commits · 90 Days