livekit/python-sdks

LiveKit real-time and server SDKs for Python

LiveKit Python SDK

是什么 – 两个 Python 包的组合,允许你将 Python 程序连接到 LiveKit 服务器(云端或自托管),并在视频/音频房间中作为实时参与者运行。一个包(livekit)提供实时客户端 API;另一个(livekit-api)提供服务器端辅助功能,如令牌创建和 REST 风格房间管理。

为什么重要 – LiveKit 是一个低延迟、多方视频、音频和数据流平台。通过在 Python 中暴露这些功能,SDK 使构建以下应用变得容易:

  • AI 驱动的语音代理(语音转文本、LLM 驱动对话、文本转语音、轮次检测),在实时通话中运行。
  • 需要从 Python 代码发布或消费媒体的实时流媒体或广播应用。
  • 通过服务器 API 编排房间、egress/ingress、SIP 拨号或代理调度的自定义后端。

主要组件

组件 用途
livekit 连接到 LiveKit 房间,发布/接收音频视频轨道,处理事件,并支持参与者之间的 RPC。
livekit-api 生成 JWT 访问令牌,使用异步 aiohttp 调用服务器端点(创建/列出房间、egress、SIP、代理调度等)。
MediaDevices(在 livekit.rtc 中) 围绕 sounddevice 库的高层包装器,用于麦克风捕获和扬声器播放,内置声学回声消除、噪声抑制等。
RPC 系统 将 Python 协程注册为远程方法,并可从另一个参与者调用;有助于转发 LLM 函数调用。
代理集成 SDK 可与独立的 LiveKit Agents 框架结合,运行语音 AI 机器人,这些机器人在内部使用 STT、LLM、TTS、轮次检测和工具使用,而无需管理提供商密钥。

典型工作流程

  1. 安装 – pip install livekit livekit-api。
  2. 创建令牌(后端)使用 api.AccessToken() 并授予适当的权限。
  3. 连接 – room = rtc.Room(); await room.connect(url, token)。
  4. 发布媒体 – 使用 MediaDevices 打开麦克风或扬声器,将源包装在 LocalAudioTrack/LocalVideoTrack 中并发布。
  5. 处理事件 – 注册回调,如 room.on("track_subscribed", ...) 以接收远程流。
  6. 可选 RPC – 使用 @room.local_participant.register_rpc_method 注册方法,并通过 perform_rpc 从另一个参与者调用。
  7. 服务器端管理 – 使用 LiveKitAPI 创建房间、列出参与者、启动 egress 录制、拨打 SIP 参与者等。

示例代码片段

# 生成令牌(后端)
from livekit import api
token = api.AccessToken().with_identity("bot").with_grants(
    api.VideoGrants(room_join=True, room="demo")
).to_jwt()

# 连接并发布麦克风
from livekit import rtc
room = rtc.Room()
await room.connect(LIVEKIT_URL, token)

devices = rtc.MediaDevices()
mic = devices.open_input(enable_aec=True, noise_suppression=True)
track = rtc.LocalAudioTrack.create_audio_track("mic", mic.source)
await room.local_participant.publish_track(track)

后续步骤

  • 查看 examples/ 文件夹(基本房间、人脸地标、hue 视频、全双工音频)。
  • 如果你想要一个包含 STT/LLM/TTS 的语音 AI 机器人,请阅读 LiveKit Agents 文档。
  • 加入 LiveKit Slack 社区以获取帮助和做出贡献。

许可证 – SDK 根据 MIT 许可证发布(如仓库中所示)。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目