LiveCC:开源实时视频解说大模型,融合流式语音转录与多模态理解

原创 发布日期:
8

一、LiveCC是什么?

LiveCC是由上海人工智能实验室(ShowLab)团队开发的开源实时视频解说大语言模型(Video LLM),旨在通过融合视频视觉信息与流式语音转录(ASR)文本,实现对视频内容的实时理解与动态解说。该项目提供从数据生产、模型训练到部署演示的完整链路,支持体育赛事、教育直播、会议记录等多场景应用,兼具高精度与高效能,是目前实时视频解说领域的SOTA(State-of-the-Art)解决方案。

简单来说,LiveCC就像一位“智能解说员”:它能同时“看”视频画面(视觉信息)和“听”语音内容(通过ASR转文字),并实时结合两者生成符合场景逻辑的解说文本。例如,在足球比赛直播中,它能识别球员动作、进球瞬间,并结合现场解说语音,实时生成“梅西带球突破禁区,射门——球进了!”这样的动态解说。

该项目不仅开源了完整的模型代码、训练脚本和数据处理工具,还提供了预训练模型 checkpoint 和可视化交互界面,方便开发者快速体验和二次开发。

二、功能特色

LiveCC的核心优势在于“实时性”与“多模态融合能力”,具体功能特色如下:

1. 实时流式处理,低延迟响应

传统视频模型需等待完整视频输入后才进行处理,而LiveCC支持“流式输入”:视频帧和语音流可逐段传入模型,模型边接收边处理,生成的解说内容与视频播放进度同步,延迟可控制在数百毫秒内,满足直播场景需求。

2. 多模态深度融合

模型并非简单拼接视频和语音信息,而是通过专门设计的跨模态注意力机制,让视觉特征(如人物动作、场景变化)与ASR文本(如对话、背景音转写)深度交互。例如,在教育直播中,它能结合老师的板书画面(视觉)和讲解语音(ASR),生成“老师正在黑板上演示二次函数求导,步骤为:先确定系数,再应用求导公式”的解说。

3. 丰富的交互工具

为降低使用门槛,项目提供多种交互方式:

  • Gradio可视化界面:通过网页即可上传视频或开启摄像头,实时查看解说效果,支持参数调节(如解说速度、详细程度)。

  • CLI命令行工具:适合开发者批量处理视频文件,支持输出文本文件或实时打印解说内容。

  • 推理API:提供Python接口,可快速集成到第三方应用(如直播平台、视频编辑软件)。

4. 大规模数据支撑的高准确性

模型在包含500万条视频-ASR数据的“Live-CC-5M”数据集上预训练,覆盖体育、教育、新闻等10+场景,确保对各类视频内容的理解准确性。在官方基准测试(如LiveSports-3K体育数据集)中,其解说准确率(语义匹配度、时序一致性)超过现有视频LLM模型15%以上。

5. 灵活的训练与部署

支持单机多卡、分布式训练,兼容DeepSpeed等加速框架;推理时可根据硬件条件调整模型精度(如FP16/INT8),在消费级GPU(如RTX 3090)上即可实现实时处理。

三、技术细节

LiveCC的技术架构围绕“实时多模态融合”设计,核心包括模型结构、训练流程和数据处理 pipeline 三部分。

1. 模型架构

LiveCC基于“视觉编码器-文本编码器-解码器”的三模块结构,具体如下:

模块 功能 基础模型 创新点
视觉编码器 提取视频帧特征 CLIP-ViT-L/14 加入时序注意力,捕捉帧间动态
文本编码器 处理ASR流式文本 LLaMA-2-7B(文本部分) 支持动态拼接流式文本,保留时序
解码器 生成解说文本 LLaMA-2-7B(生成部分) 跨模态注意力机制,融合视觉与文本
  • 跨模态融合机制:解码器在生成每个词时,会同时关注视觉编码器输出的“帧特征序列”和文本编码器输出的“ASR文本序列”,并通过门控单元(Gating Unit)动态调整两者的权重(如运动场景中视觉权重更高,访谈场景中文本权重更高)。

  • 流式处理优化:采用“滑动窗口”机制处理长视频,仅保留最近N帧视觉特征和M句ASR文本,减少计算量的同时保证上下文连贯性。

2. 训练流程

LiveCC的训练分为“预训练”和“微调(SFT)”两个阶段,流程如下:

(1)预训练:学习视频-ASR基础关联

  • 数据集:使用“Live-CC-5M”,包含500万条从公开视频(如YouTube、电视台直播)中提取的“视频片段-ASR文本-原始解说”三元组,时长覆盖10秒到5分钟,场景包括体育、演讲、户外直播等。

  • 任务:通过“掩码语言建模(MLM)”和“解说生成”任务,让模型学习“视频内容→ASR文本→解说文本”的映射关系。例如,输入视频帧和部分掩码的ASR文本,要求模型补全ASR并生成对应解说。

  • 训练配置:基于DeepSpeed ZeRO-2优化,使用8×A100 GPU训练14天,批处理量为1024,学习率5e-5。

(2)微调(SFT):优化特定场景能力

  • 数据集:融合多个高质量场景数据集,包括:

    • Live-WhisperX-526K:52.6万条经WhisperX精准转录的体育/教育视频-ASR数据;

    • LLaVA-178K:17.8万条图文对齐数据,增强视觉细节理解;

    • 人工标注的“实时解说对齐数据集”:1万条标注了“视频关键时刻-解说触发点”的数据,优化时序一致性。

  • 任务:指令微调(Instruction Tuning),输入“视频+ASR+指令(如‘详细描述画面内容’)”,输出符合指令的解说文本。

  • 训练配置:冻结视觉编码器,仅微调文本编码器和解码器,使用4×A100 GPU训练3天,学习率2e-5。

3. 数据生产Pipeline

为构建大规模视频-ASR训练数据,项目提供了完整的自动化处理工具(位于data/production目录),流程如下:

  1. 原始视频采集:支持从直播流、本地文件批量下载视频,保留帧率(≥24fps)和音频轨道。

  2. ASR转录:通过distributed_whisperx.py进行分布式语音转文字,基于WhisperX模型实现高精度转录(支持多语言),并输出每个句子的时间戳(精确到0.1秒)。

  3. 过滤清洗

    • 去除低质量视频(如模糊、无动态内容);

    • 通过distributed_lighter_asd工具过滤“纯人脸说话”视频(避免模型过度关注人脸而忽略场景);

    • 用因果语言模型(如GPT-2)计算文本困惑度(Perplexity),过滤语义混乱的ASR文本。

  4. 数据对齐:将视频帧(按时间戳)与ASR文本关联,生成“帧序列-文本序列”配对数据。

四、应用场景

LiveCC的实时多模态理解能力使其适用于多种需要动态解说或交互的场景:

1. 体育赛事直播

  • 应用:为足球、篮球等赛事生成实时解说,补充专业解说员的不足(如低关注度比赛、多场次同时直播)。

  • 优势:可识别关键动作(如进球、犯规),结合现场音效转写(如欢呼声),生成“第89分钟,主队前锋禁区内被绊倒,裁判判罚点球!现场球迷沸腾了”的沉浸式解说。

2. 在线教育与培训

  • 应用:为录播课或直播课生成“画面+语音”同步的文字解说,辅助学生理解(如标注板书内容、实验步骤)。

  • 示例:在化学实验课中,识别“滴加溶液”“试管变色”等画面,结合老师讲解,生成“现在老师向试管中滴加3滴酚酞试液,溶液由无色变为红色,说明溶液呈碱性”的解说。

3. 会议与讲座记录

  • 应用:实时将会议视频转化为结构化纪要,不仅记录发言内容,还标注画面信息(如“张总在展示PPT第3页的销售数据”)。

  • 价值:减少人工纪要工作量,提升记录的完整性(结合视觉信息避免歧义)。

4. 视频内容创作与编辑

  • 应用:为Vlog、纪录片自动生成字幕和解说文案,支持快速剪辑(如根据解说关键词定位视频片段)。

  • 工具集成:可与Premiere、剪映等软件联动,自动生成剪辑建议(如“此处解说提到‘日出’,建议插入00:05:12的日出画面”)。

5. 无障碍辅助

  • 应用:为视障人士实时解说视频内容(如电视节目、短视频),通过语音播报模型生成的文本,帮助其“理解”画面。

LiveCC:开源实时视频解说大模型,融合流式语音转录与多模态理解

五、使用方法

LiveCC提供从快速体验到深度训练的完整流程,以下是详细步骤:

1. 环境准备

  • 硬件要求

    • 推理:最低NVIDIA GPU(≥8GB显存,如RTX 2080Ti);推荐RTX 3090/4090(16GB+显存)实现实时处理。

    • 训练:需多GPU(如8×A100),支持分布式训练。

  • 软件依赖

    • Python ≥3.11

    • PyTorch ≥2.0(带CUDA支持)

    • 其他依赖:transformers、deepspeed、peft、gradio、whisperx等

  • 安装命令

    # 克隆仓库 
    git clone https://github.com/showlab/livecc.git 
    cd livecc 
    
    # 安装依赖 
    pip install -r requirements.txt 
    # 安装livecc专用工具包 
    pip install -e livecc-utils/

2. 快速体验

(1)Gradio可视化演示(推荐新手)

通过网页交互上传视频或开启摄像头,实时查看解说效果:

python demo/app.py --js_monitor

运行后会生成本地链接(如http://localhost:7860),打开后可:

  • 上传本地视频文件(支持MP4、MOV格式);

  • 开启摄像头录制实时画面;

  • 调节参数:解说更新频率(默认1秒/次)、输出长度(短/中/长)。

(2)CLI命令行工具(适合批量处理)

通过命令行输入视频路径,输出解说文本:

python demo/cli.py --video_path ./examples/soccer.mp4 --output ./output.txt

参数说明:

  • --video_path:视频文件路径;

  • --output:解说文本保存路径;

  • --asr_model:指定ASR模型(默认whisperx-large-v2);

  • --device:指定设备(如cuda:0或cpu)。

3. 模型推理(开发者集成)

通过Python API在代码中调用LiveCC:

from livecc.inference import LiveCCInferencer 

# 初始化模型(加载预训练checkpoint) 
inferencer = LiveCCInferencer( 
  model_path="chenjoya/LiveCC-7B-Instruct", 
  device="cuda" 
) 

# 处理视频文件(返回逐段解说文本及时间戳) 
results = inferencer.process_video( 
  video_path="./examples/lecture.mp4", 
  stream_mode=True # 流式处理模式 
) 

# 打印结果 
for timestamp, commentary in results: 
  print(f"[{timestamp}] {commentary}")

4. 模型训练与微调

(1)预训练

使用Live-CC-5M数据集进行预训练:

# 单节点多GPU训练(需配置deepspeed) 
bash scripts/pt_local.sh

配置文件路径:scripts/deepspeed_zero2.json(可修改批处理量、学习率等参数)。

(2)微调(SFT)

基于预训练模型,使用高质量数据集微调:

bash scripts/sft_local.sh

可通过修改脚本中的--freeze_vision参数选择是否冻结视觉编码器(默认冻结,加速训练)。

六、常见问题解答(FAQ)

  1. Q:运行Gradio演示时提示“CUDA out of memory”怎么办?
    A:降低模型精度或减小输入视频分辨率。例如,在demo/app.py中添加--load_in_8bit启用INT8量化,或通过--video_resize 360将视频高度缩放到360px。

  2. Q:ASR转录支持中文吗?
    A:支持。默认使用的WhisperX模型支持多语言,可在推理时通过--asr_language zh指定中文(需确保视频音频为中文)。

  3. Q:训练时如何更换自定义数据集?
    A:需将数据集格式转换为“视频路径+ASR文本+标签解说”的JSONL格式(参考data/examples/train_sample.jsonl),并在训练脚本中修改--data_path参数指向自定义数据集路径。

  4. Q:实时处理延迟较高,如何优化?
    A:① 减少视频帧率(如从30fps降至15fps);② 缩短滑动窗口长度(修改models.py中的window_size参数);③ 使用更高效的推理引擎(如TensorRT)。

  5. Q:模型支持纯视频(无音频)或纯音频(无视频)输入吗?
    A:支持。若仅输入视频,模型会基于视觉信息生成解说;若仅输入音频,会基于ASR文本生成内容(但效果弱于多模态输入)。

七、相关链接

八、总结

LiveCC作为首个开源实时视频解说大模型,通过创新的多模态融合技术和流式处理架构,实现了视频内容的实时理解与动态解说,在体育、教育、会议等场景中具有极高的应用价值。项目提供了从数据生产、模型训练到部署演示的完整工具链,兼顾易用性与扩展性,既适合开发者快速集成,也为研究人员提供了视频LLM实时处理的基准框架,推动了实时多模态智能的落地与发展。

打赏
THE END
作者头像
97ai
我不是在训练模型,而是在与未来的自己对话。