srtc)面向服务端 AI 场景:让你的 Python 服务以一个”参会者”的身份加入频道,收到频道里每个人的声音,再把合成好的声音推回去。
适用场景
- AI 语音助手 / 语音机器人:ASR → LLM → TTS 管线接入频道
- 服务端录音、质检、实时转写
- 已有 pipecat 语音 agent,想接到 SRTC 频道里(见 接入 pipecat)
和 C SDK 的区别
两者底层是同一套原生内核,行为一致。区别在于数据形态:
模型的输入输出都是原始数据,所以 AI 场景用 Python SDK 基本不用碰编解码。
安装
cffi、av(自带 ffmpeg 与 libopus,不需要在系统里另装 ffmpeg)、numpy。
支持平台
Python 3.10 及以上。同一平台的安装包对所有 Python 3.x 小版本通用。
Alpine(musl)暂未提供 Python 安装包,需要的话请联系我们。
线程模型
SDK 基于asyncio,所有接口都要在事件循环里调用:
- 信令、断线重连、音视频收发都在 SDK 内置的原生库里运行,不占用 Python 的 GIL,不会拖慢你的 Python 代码
- 所有事件回调、
async for拿到的数据帧,都在事件循环线程里交给你,不需要加锁 - 入会、订阅、发布这类要等服务端协商的接口是
async的,等待期间不阻塞事件循环
部署注意
不要在已经使用过 SDK 的进程里 fork。 原生内核在 fork 出的子进程里无法工作:- 只
import srtc、还没创建过Channel就 fork:没问题(gunicorn--preload等场景可以正常用) - 已经创建过
Channel再 fork:子进程里再用会直接抛RuntimeError,不会卡死 - 用
multiprocessing时请设置multiprocessing.set_start_method("spawn")
下一步
- 快速开始:跑通收听与播报
- 语音 AI Agent 实践:断句、插话打断、时间轴
- 接口文档