news 2026/10/5 16:56:33

口播智能体,AI短视频智能体开发流程(已开源)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
口播智能体,AI短视频智能体开发流程(已开源)

一、先看整条流水线

口播视频的生产,本质上是把一个重复劳动流程自动化:

五个环节各用一件工具,全部开源或低成本:

环节

工具

解决的问题

① 文案提取

faster-whisper(OpenAI Whisper 的加速版)

把别人的爆款视频扒成文字,做二创起点

② 文案润色

DeepSeek API

去洗稿痕迹、口语化、控时长

③ 声音克隆

IndexTTS-2(B 站开源)

5~15 秒参考音频克隆音色,文本转语音

④ 对口型

InfiniteTalk(开源)

图片或视频 + 音频 → 会说会动的数字人

⑤ 一键发布

Playwright

自动登录态下批量上传到各平台

下面逐个环节给代码。

二、环境准备

硬件门槛先说清楚,免得白折腾(要么就用云端):

环节

显存需求

说明

Whisper

2~6 GB

CPU 也能跑(int8 量化),慢但不影响

DeepSeek

0

走 API,不占本地显存

IndexTTS-2

8 GB 起

官方建议 RTX 3060 以上

InfiniteTalk

24 GB 起

是整条链路的瓶颈,建议单独一张卡

关键经验:这几件事不要挤在一张卡上跑。TTS 和口型驱动同时抢显存,两边都会 OOM。工程上建议拆开——一张小卡专跑 TTS,一张大卡专跑口型。

三、① Whisper:把爆款视频扒成文案

用faster-whisper,比原版 Whisper 快得多,工程里没有理由不用它

三个必踩的坑:

1. 一定开vad_filter=True。静音段是 Whisper 幻觉的重灾区。不开 VAD,遇到一段没有人声的画面,模型会自己"编"出一整段字幕来,而且编得很像真的。做批量任务时不加这个参数,你会得到一堆莫名其妙的内容。

2. 长视频要分片。超过 10 分钟的素材切成 3~5 分钟一段再喂进去,否则显存容易堆爆。faster-whisper内部虽然有滑窗,但外层再切一刀更稳。

3. 传initial_prompt能显著改善中文标点。不传的话,输出经常是一整段没有标点的文字,后面的切句、润色都会受影响。

四、② DeepSeek:把扒来的稿子变成"自己的"

直接抄别人的文案发出去,一是平台判重,二是没有自己的语气。这一步用 DeepSeek 做改写。

工程上要注意:

1.temperature是改写场景的关键参数。默认 1.0 出来的稿子经常和原文高度相似。调到 1.2~1.5,句子结构会有明显变化,但要点还在。

2. "只输出正文"这句必须写在提示词里。否则模型很容易回一句"好的,以下是为您改写的文案:"——这行字配上 TTS 就会直接念出来。

3. 用数字控制时长,别用字数控制。口播的实际语速约 45 字/秒。要做 60 秒的视频,就让模型写 260300 字,这个换算关系比"写得简洁点"这种模糊指令管用得多。

五、③ IndexTTS-2:5 秒音频克隆音色

IndexTTS-2 是 B 站 IndexTeam 开源的零样本 TTS,2025 年 9 月发布,改动最大的一点是把音色和情感拆开了——音色来自参考音频,情感可以单独控制。对做口播工具来说,这个特性非常有用。

三个实战经验:

1. 参考音频质量决定上限,这一段没有补救空间。手机在安静房间录 10 秒,效果远好于从嘈杂会场录音里剪 1 分钟。做产品的话,客户端里应该直接内置一段"参考音频录制指引",别指望用户自己懂。

2. 长文本必须切句。一次塞 2000 字,合成质量和稳定性都会掉。按标点切成 20~40 字的短句,逐句合成再拼接。

3. 语速不要指望模型,放到后期调。用 1.0x 正常合成,最后在 FFmpeg 里整体变速(atempo=1.1),比让 TTS 模型变语速要可控得多,也不会影响音质。

六、④ InfiniteTalk:图片/视频 + 音频 = 会说会动的数字人

InfiniteTalk 是音频驱动的数字人生成模型,和传统只修嘴型的方案最大的区别是:它同时驱动嘴型、表情、头部转向和身体姿态,而且是流式分块生成,理论上不限时长。

  • 项目地址:https://github.com/MeiGen-AI/InfiniteTalk
  • 基座模型:Wan2.1-I2V-14B,推荐 24GB+ 显存
  • 许可证:Apache 2.0,商用友好
  • 支持 Image-to-Video(一张人像图 + 音频)和 Video-to-Video(原视频 + 新音频重配音)

直接调它的推理脚本:

部署要点(这几个坑踩过才知道):

1. 显存不够,加机器比调参划算。这是最重要的结论。24G 卡跑 1080p 长视频会非常勉强,把分辨率、步数一路调低之后,产物质量会掉到不可用。与其纠结参数,不如直接上更大的卡,或者分成多张卡跑。

2. 长视频必须靠分块,不能一次性喂。InfiniteTalk 内部是按块处理的(每块约 81 帧,带 25 帧重叠过渡),这个机制保证了长视频不崩。但超过 1 分钟的视频可能出现色偏,工程上是靠 Prompt 保持和分块重叠来压制的——如果你的项目对色准要求高,这一步之后要加一道调色兜底。

3. 480p 是性价比最优解。对于口播这种主体固定、动作幅度小的场景,480p 生成后再用超分放大,比直接跑 720p 又快又省显存,肉眼几乎看不出差别。

4. 想省事可以走 ComfyUI。InfiniteTalk 有 ComfyUI 节点封装。如果你的团队已经在用 ComfyUI 做 AIGC 管线,直接接进去比自己写封装更快,也方便做可视化调试。

七、⑤ 一键发布:Playwright 多平台自动上传

先说结论,避免走弯路:抖音、视频号、小红书这些平台,没有面向个人开发者的公开发布 API。

  • 抖音开放平台的发布能力需要企业开发者资质和审核;
  • B 站开放平台主要面向企业;
  • 视频号和小红书基本没有对外开放的上传接口。

所以工程上能落地的方案只有一个:浏览器自动化 + 持久化登录态。

这段代码的四个设计决定,都是踩坑换来的:

1. 用launch_persistent_context而不是launch。普通launch每次都是全新的无痕环境,每次都要重新扫码登录。持久化 context 把 Cookie 存在本地目录,登录一次能用很久。

2. 表单要在上传完成之后再填。各家平台的标题输入框都是上传开始后才渲染的。上传前就去找元素,必然拿到空。

3. 刻意不自动点最后的"发布"按钮。这是工程上故意的保守设计:自动填好表单,最后一步留人工确认。原因是各平台的风控对"全自动发布"非常敏感,账号被限流得不偿失。半自动比全自动更耐用。

4. 单个平台失败不影响其他平台。每个适配器独立 try/except,一个挂了不影响后面的。批量任务里,一个异常中断整批是最常见的事故。

八、串起来:一条命令跑完全流程

把五步拼成一个 pipeline:

整条链路的时间成本参考:25 秒的口播成片,脚本处理部分(①②)约 10 秒,配音(③)约 20 秒,数字人生成(④)是绝对瓶颈,在单卡上要几分钟。所以做产品时,④ 必须做成异步任务队列,不能放在 HTTP 请求里同步等。

九、做成产品,中间必须加一层服务端

如果只是自己用,上面这套跑起来就够了。但要给别人用,客户端直连推理服务会踩三个坑:

  1. 算力白送。接口一暴露,谁都能拿你的 GPU 跑自己的任务。
  1. 排队不可控。并发一上来所有请求一起超时,用户看到的是"软件坏了"。
  1. 授权没处做。卡密核销、额度控制、代理归属,总得有个中间层。

结构很简单:FastAPI 接请求 → Redis 排队 → worker 串行消费。

worker 侧最关键的是失败退款——任务挂了必须把卡密还回去,一次不退带来的信任损失,比这一次算力成本贵得多。

十、部署清单(或者云端)

组件

部署方式

备注

faster-whisper

Python 进程

CPU + int8 也能跑,有卡更快

DeepSeek

调 API

不占本地资源

IndexTTS-2

独立服务

建议独占 8G+ 显卡,避免和数字人抢显存

InfiniteTalk

独立服务 / ComfyUI

显存需求最高,建议独立 24G+ 卡

FastAPI + Redis

常规 Linux 部署

队列、卡密、任务状态都在这层

Playwright

同机部署

需要持久化浏览器目录,别放容器临时盘

一句话建议:先用按量付费的云算力把链路跑通,再决定要不要自建。测试阶段一条视频的云成本不到两块钱,比先买卡试错便宜太多。

十一、常见坑汇总

#

坑

解法

1

Whisper 输出整段幻觉文字

必开vad_filter=True

2

改写后和原文太像

temperature提到 1.2~1.5

3

TTS 把提示词念出来了

系统提示词里明确"只输出正文"

4

IndexTTS 长文本音质崩

按标点切 20~40 字短句再合成

5

数字人推理同步接口超时

必须改成"提交任务 + 轮询"异步模式

6

多模型抢显存 OOM

按模型拆卡,别都堆一张

7

自动发布导致账号被限流

做成"自动填表 + 人工点发布"的半自动

8

全自动发布整批中断

每个平台独立 try/except

十二、结语

这套流程的技术栈全部是开源或低成本的:Whisper 解决"看别人怎么讲",DeepSeek 解决"讲成自己的话",IndexTTS-2 解决"用我的声音讲",InfiniteTalk 解决"我不用出镜",Playwright 解决"发出去"。

真正难的不是模型调用,是把这五段拼成一条能长时间稳定跑的生产线——队列、算力调度、异常兜底、授权控制,这些才是工程价值所在。

有在搭类似流水线的同行,欢迎评论区交流:你更想深入哪一段——音色克隆,还是长视频对口型的稳定性?下一篇写投票多的那个。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/5 16:41:22

ComfyUI+SD1.5+ControlNet:AI线稿生成工作流搭建与避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/5 16:40:28

NRF52832串口通信实战:从SDK配置到RTS/CTS硬件流控的完整排坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/5 16:40:04

Spirent TestCenter 实战:PPPoE、DHCP、QinQ 与 IGMP 配置指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/5 16:38:15

ADS1.2 安装与配置实战:在 Windows 10/11 上搭建 ARM 交叉编译环境

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/5 16:37:02

从零搭建openrig多相机阵列:同步触发与三维重建实战

做三维重建和体积视频的同行,这两年应该没少被“多相机阵列”这个词刷屏。NeRF、3D Gaussian Splatting火起来之后,大家发现单反绕着物体一圈圈拍虽然也能出结果,但效率低、运动对象没法拍、光照稍微一变重建质量就崩。于是圈子里开始频繁出现…

作者头像 李华
网站建设 2026/10/5 16:31:57

打造可持续追问的个人知识库:PDF/Markdown与RAG实践

PDF、Markdown 和项目资料到底能不能用一个 AI 工具沉淀成个人知识库?这个问题我琢磨了挺久,市面上号称能做知识库的产品不少,但真到自己手里的文档格式、项目笔记、散落各处的资料时,大多只能做到“能问,但问不深”。…

作者头像 李华