跳到主要内容

LiveKit

LiveKit 已经把 WebRTC 底层的 ICE / STUN / TURN 连接能力封装好了 (连接的建立、转发、通信的能力) LiveKit 是一个基于 WebRTC 的开源实时音视频通信平台。它提供:

  • SFU (Selective Forwarding Unit):选择性转发,不转码,低延迟
  • Room 模型:一个 Room = 一个音视频会话,Participant 是会话中的参与者
  • Token 认证:服务端颁发 Token,客户端凭 Token 加入 Room
  • Egress:录制/推流服务,支持 RoomCompositeEgress(录制整个 Room)
  • Agents SDK:让 AI Agent 以 Participant 身份加入 Room,进行语音对话

LiveKit 最核心的能力。​

能力说明
音频通话用户之间实时语音通信
视频通话用户之间实时视频通信
屏幕共享共享桌面、窗口或浏览器标签页
多人会议多人同时加入一个 Room
低延迟传输基于 WebRTC,适合实时互动场景
摄像头 / 麦克风管理开启、关闭、切换设备
Track 管理单独控制音频、视频、屏幕共享等轨道

LiveKit负责的功能​

LiveKit底层提供了很多能力,让项目更专注核心的业务流程

LiveKit是通信通道,负责把音视频 转发 (比如可以转发到AI agent中进行分析)

  • 实时音视频传输
  • 房间管理
    • 每个用户的独立房间
    • 用户在这个房间内进行活动 (音视频)
  • 录制
  • 连接管理
  • 设备的控制 (LiveKit 提供底层能力)
    • 获取摄像头、麦克风
    • 切换摄像头、麦克风、扬声器
    • 屏幕共享
    • 很多的设备控制都内置的API
    • LiveKit 内置了设备采集、轨道发布、静音、摄像头控制、屏幕共享和设备切换等底层能力
  • WebRTC 连接、ICE、重连、网络状态
    • ICE 全称是 Interactive Connectivity Establishment,用于在 WebRTC 建立连接时走通的网络路径

LiveKit流程​

  • 后端服务创建token以及根据业务提供的房间名称
    • 房间名称可以业务输入,也可以规定规则生成
  • 前端拿到token以及房间名称来进入RTC房间

LiveKit插件​

LiveKit Agents 目前对 STT / TTS 的插件生态很丰富

  • TTS
    • 如MiniMax

LiveKit Agents​

  • AgentSession
    • AgentSession 负责把音频、ASR、LLM、TTS 串联起来
      • 拿到用户音频,将音频给到STT插件,将文本给到LLM,LLM输出的文本再给到TTS插件来转换音频,音频流给到LiveKit,用户就能受到实时的音视频流
    • 把多个组件的能力进行串联并负责调度
    • 不需要自己单独手写 音频读取 → STT → 拼 prompt → LLM → TTS → 发布音频 过程