BaoShare
AI 教程AI教程91 次浏览 · 2026-10-21

ai-live-avatar:实时 AI 直播主播从零搭建实战教程

原文链接

https://x.com/GaryAIytb/status/2112422551150620733
打开链接

核心架构图

一、核心亮点与背景概述

  • 项目名称:ai-live-avatar(MIT 许可证)
  • 代码仓库:https://github.com/garycaogan/ai-live-avatar
  • 核心技术:基于 Vidu 的实时数字人模型 vidus2,实现“观众弹幕 → 指令 → 实时生成动作、表情、语音”的闭环。
  • 痛点突破:传统数字人需要预设脚本或真人后置替换,交互延迟高、表情僵硬;本方案全链路实时,观众一句弹幕,主播在 10‑20 秒内完成语义理解、动作生成并同步到画面。
  • 商业成本:Vidu 按秒计费,1.5 积分/秒≈ 169 CNY/小时;一次 1 h 07 min 直播费用约 191.47 CNY,除模型费用外其他模块几乎为零成本。

内容整理自 X 博主 Gary曹淦(@GaryAIytb)的推文。

二、核心机制与技术细节拆解

  1. 整体架构

    • 内部层(主播):Vidu 实时渲染,负责面部表情、口型、语音合成。模型调用方式为 HTTP/GRPC 接口,输入为文字指令 + 参考图(可选),输出为实时视频流。
    • 外部层(场控):自研的「场控引擎」负责弹幕抓取、过滤、意图解析、指令排队、衣柜管理、说明卡渲染以及 OBS/抖音横屏推流。
  2. 弹幕处理流程

    • 使用 WebSocket 抓取抖音直播间网页评论(可自行实现),获取原始弹幕文本。
    • 过滤模块:关键词黑名单(广告、低俗、违规)直接丢弃;支持正则自定义。
    • 排队模块:普通弹幕 FIFO,礼物弹幕可提升优先级(注意平台政策避免诱导打赏)。
    • 意图解析:基于 Claude(或本地 LLM)将弹幕转化为结构化指令,如 {"type":"gesture","action":"wave"}、{"type":"change_clothes","id":3}。
    • 指令下发:将结构化指令通过 Vidu SDK 发送,触发对应动作或换装。
  3. 衣柜与换装

    • 每套衣服预先渲染为完整的 全身照片 + 背景(PNG),换装时直接 重新启动一次 Vidu 会话,耗时约 5 秒,避免实时换装导致的面部崩溃。
    • 服装与背景分离管理,背景切换若使用「参考图」方式,需要确保人物层保持不变,否则会出现「衣服消失」的 bug(已在代码中默认关闭该功能)。
  4. 说明卡与真人小窗

    • 说明卡使用 HTML/CSS 在本地工作台生成,实时叠加在 OBS 场景中,展示功能列表、禁用指令等信息。
    • 左下角真人摄像头画面作为「场控」角色,满足平台对「AI 直播必须有人类出镜」的合规要求,也在 Vidu 断线时提供兜底。
  5. 音色与语音

    • 采用火山引擎自研音色模型,先生成原始音频,再通过 Vidu 的 voice‑clone 接口克隆到数字人。
    • 口音(东北、长沙、闽南、台湾)可在一定程度上掩盖 AI 声音的机械感,但在实时直播中仍需后处理以防音色漂移。

三、安装配置与实操上手

环境要求

  • Python >= 3.9
  • ffmpeg(用于音视频转码)
  • OBS Studio(用于画面合成)
  • Vidu 账号并获取 API_KEY、SECRET

步骤概览

# 1. 克隆仓库
git clone https://github.com/garycaogan/ai-live-avatar.git
cd ai-live-avatar

# 2. 安装依赖
pip install -r requirements.txt

# 3. 配置环境变量(Vidu)
export VIDU_API_KEY=your_key
export VIDU_SECRET=your_secret

# 4. 本地工作台启动(可视化编辑人设、衣柜、说明卡)
python run_dashboard.py   # 默认 http://127.0.0.1:7860

# 5. 启动场控引擎
python main.py --platform douyin --room_id YOUR_ROOM_ID

# 6. OBS 设置
#   - 添加「Vidu 视频源」(RTMP/HTTP);
#   - 添加「说明卡」浏览器源指向 http://127.0.0.1:7860/card.html;
#   - 添加「真人摄像头」视频捕获源,放置左下角;
#   - 将整体画面推流至抖音直播伴侣(横屏模式)。

关键配置文件 config.yaml

vidu:
  model: vidus2
  endpoint: https://api.vidu.ai/v1
  credentials:
    api_key: YOUR_KEY
    secret: YOUR_SECRET
scene:
  wardrobe_path: ./wardrobe/
  card_template: ./templates/card.html
  standby_phrases: ./data/standby.txt

常用命令

  • python cli.py add_clothes --name "黑色高领" --image ./imgs/black_turtleneck.png
  • python cli.py set_persona --json persona.json
  • python cli.py test_prompt "今天天气怎么样"

四、适用场景与避坑建议

适用场景

  1. 游戏直播:实时读取观众指令,驱动角色做出游戏内动作或表情,提升互动沉浸感。
  2. 无限流互动剧情:弹幕决定剧情走向、场景切换、角色对白,实现「观众共同创作」的直播剧本。
  3. 娱乐/陪聊:以轻松的生活化人设(如「晚晚」)进行日常聊天、情感陪伴,适合社群运营。
  4. 带货预演:在不暴露真人的前提下,使用数字人展示商品,配合真人小窗进行合规提示。

常见坑与对策

  • 底图质量:CG 风格或过度美颜的底图会让 AI 生成的面部显得不自然,建议使用真实光照、柔光处理的真人照片。
  • 换背景导致衣服消失:实时参考图换背景时 Vidu 会重新绘制全身,若未提供完整服装信息会出现缺失。解决方案是改为「整张照片重启会话」或在参考图中同时包含服装层。
  • Vidu 断线:断线期间仅剩真人小窗,观众可能误以为直播结束。建议在断线检测后自动切换到预录播或提示画面。
  • 内容合规:平台要求「AI 生成画面」标识并且必须有人类出镜,务必在画面左下角保留真人摄像头并在说明卡标明「AI 实时生成」。
  • 延迟:弹幕 → 语义解析 → Vidu 渲染整体耗时 10‑20 秒,需在直播脚本中预留该时间,避免观众期待即时回复。
  • 语音漂移:实时合成时音色可能偏离原始音色,建议在每次会话启动前重新上传音频克隆文件。
  • 礼物插队风险:抖音平台会将「礼物插队」视为诱导打赏,容易被封号,务必关闭此功能或改为普通弹幕排队。

落地价值:通过本套方案,个人创作者可以在几天内完成从 0 到 1 的 AI 实时直播系统,成本主要集中在 Vidu 使用费,其他模块均可自行部署,具备高度可定制性和可扩展性。


项目地址: https://github.com/garycaogan/ai-live-avatar

参考链接:

  • 原直播间(天工开帧) https://github.com/beiyege-01
  • 相关讨论 https://x.com/garyaiytb/status/2112422551150620733

相关推荐

返回资源大厅