Skip to main content

AudioFormat

PCM 格式。SDK 收发的 PCM 一律是 S16LE、交错排列。

AudioTrack

Channel.publish_audio 返回的本地音频轨道。

write

写入 PCM(格式为发布时指定的 audio_format),长度任意。SDK 切成 20ms 一帧,按实时节奏发送。
  • bytes:S16LE 交错 PCM,字节数必须是 2 × 声道数 的整数倍,否则抛 ValueError
  • np.ndarray:会转成 int16,双声道请按交错顺序展平
尚未发送的音频超过 max_buffer_seconds 时,write 会等待到缓冲有空位再返回(背压)。
空闲时 SDK 会持续发送静音帧,保持 RTP 时间戳与真实时间同步。所以两句话之间停顿多久都没关系,下一句不会被对端当成迟到的数据丢掉。

clear

立即丢弃所有尚未发送的音频。用户插话时调用,见 语音 AI Agent 实践。

wait_for_playout

等待已写入的音频全部发送完毕。

buffered_seconds

尚未发送的音频时长(秒)。大于 0 表示 agent 还在”说话”。

AudioFrame

一帧已解码的远端音频。 同一条轨道上,相邻两帧满足 下一帧.pts == 上一帧.pts + 上一帧.samples,时间轴连续。

VideoFrame

一帧远端视频。
解码后的图像是每一帧都给的。给视觉模型用时通常不需要这么高的帧率,按需抽帧即可(例如每秒取一帧)。