前置知识: AI Agent

语音Agent-Pipecat与LiveKit

00:00
9 min Intermediate

语音Agent是2026年的一等生产类别。Pipecat给你一个Python基于帧的管道(VAD → STT → LLM → TTS → 传输)。LiveKit Agents通过WebRTC将AI模型桥接到用户。高级栈的生产延迟目标落在450-600ms端到端。

语音Agent:Pipecat与LiveKit

语音Agent是2026年的一等生产类别。Pipecat给你一个Python基于帧的管道(VAD → STT → LLM → TTS → 传输)。LiveKit Agents通过WebRTC将AI模型桥接到用户。高级栈的生产延迟目标落在450-600ms端到端。

类型: 学习 语言: Python (stdlib) 前置条件: Phase 14 · 01 (Agent循环), Phase 14 · 12 (工作流模式) 时间: ~60分钟

学习目标

  • 描述Pipecat的基于帧的管道:DOWNSTREAM(源→汇)和UPSTREAM(控制)。
  • 说出规范语音管道阶段以及Pipecat支持的传输。
  • 解释LiveKit Agents的两个语音Agent类(MultimodalAgent、VoicePipelineAgent)以及各自适合的场景。
  • 总结2026年生产延迟期望以及它们如何驱动架构选择。

问题所在

语音Agent不是加上TTS的文本循环。延迟预算很严(约600ms),部分音频是默认的,轮次检测是一个模型,传输范围从电话SIP到WebRTC。你要么构建基于帧的管道(Pipecat),要么依赖平台(LiveKit)。

核心概念

Pipecat (pipecat-ai/pipecat)

  • Python基于帧的管道框架。
  • FrameFrameProcessor链。
  • 两个流方向:
    • DOWNSTREAM — 源 → 汇(音频输入,TTS输出)。
    • UPSTREAM — 反馈和控制(取消、指标、打断)。
  • PipelineTask管理带事件(on_pipeline_startedon_pipeline_finishedon_idle_timeout)和观察器(用于指标/追踪/RTVI)的生命周期。

典型管道:

VAD (Silero) → STT → LLM (context alternates user/assistant) → TTS → transport

传输:Daily、LiveKit、SmallWebRTCTransport、FastAPI WebSocket、WhatsApp。

Pipecat Flows添加结构化对话(状态机)。Pipecat Cloud是托管运行时。

LiveKit Agents (livekit/agents)

  • 通过WebRTC将AI模型桥接到用户。
  • 关键概念:AgentAgentSessionentrypointAgentServer
  • 两个语音Agent类:
    • MultimodalAgent — 通过OpenAI Realtime或等效的直接音频。
    • VoicePipelineAgent — STT → LLM → TTS级联;提供文本级控制。
  • 通过transformer模型的语义轮次检测。
  • 原生MCP集成。
  • 通过SIP的电话。
  • 通过LiveKit Inference的50+模型无需API密钥;通过插件的200+更多模型。

商业平台

Vapi(优化高级栈上约450-600ms)和Retell(180次测试呼叫端到端约600ms)构建在这些之上。当你想要托管语音栈而不需要WebRTC团队时选择平台。

这个模式哪里会出错

  • 无打断处理。 用户打断;Agent继续说话。需要Pipecat中的UPSTREAM取消帧,LiveKit中的等效机制。
  • 忽略STT置信度。 低置信度转录作为真理喂给LLM。基于置信度门控或请求确认。
  • TTS句中截断。 当管道在话语中途取消时,TTS需要知道或截断音频。
  • 忽略延迟预算。 每个组件增加50-200ms。在发布前求和你的链。

典型2026年延迟

  • VAD:20-60ms
  • STT部分:100-250ms
  • LLM首个token:150-400ms
  • TTS首个音频:100-200ms
  • 传输RTT:30-80ms

端到端450-600ms是高级。800-1200ms是常见的。任何>1500ms感觉坏了。

构建它

code/main.py是一个基于帧的玩具管道:

  • Frame类型(audio、transcript、text、tts_audio、control)。
  • 带有process(frame)Processor接口。
  • 五阶段管道(VAD → STT → LLM → TTS → 传输)作为脚本处理器。
  • 一个UPSTREAM取消帧演示打断。

运行:

python3 code/main.py

跟踪显示正常流程和打断取消在话语中途停止TTS。

使用它

  • Pipecat用于完全控制 — 自定义处理器,Python优先,可插拔提供商。
  • LiveKit Agents用于WebRTC优先部署和电话。
  • Vapi / Retell用于托管语音Agent而无需WebRTC团队。
  • OpenAI Realtime / Gemini Live用于直接音频输入/输出(MultimodalAgent)。

发布它

outputs/skill-voice-pipeline.md脚手架一个Pipecat形状的语音管道,带VAD + STT + LLM + TTS + 传输加打断处理。

练习

  1. 给你的玩具管道添加指标观察器:计算每阶段每秒帧数。延迟在哪里积累?
  2. 实现置信门控STT:低于阈,请求”你能再说一遍吗?”
  3. 添加语义轮次检测简单规则 — 如果转录以”?”结尾,次结束。
  4. 阅读Pipecat的传输文档。将stdlib传输替换为SmallWebRTCTransport配置(桩)。
  5. 测量OpenAI Realtime vs STT+LLM+TTS级联在相同查询上的延迟文本控制携带什么延迟成本?

关键术语

术语们常说的实际含义
Frame事件管道中的类型化数据单元(audio、transcript、text、control)
Processor管道带有process(frame)的处理
DOWNSTREAM”前向到汇:音频输入,语音输出
UPSTREAM反馈流”控制取消指标、打断
VAD”语音活动检测检测用户何时在说话
语义轮次检测智能轮次结束”基于模型的用户完成决策
MultimodalAgent直接音频Agent”音频输入,音频输出中间文本
VoicePipelineAgent”级联Agent”STT + LLM + TTS;文本控制

延伸阅读

知识检测

学习进度

-- 已学文档
--% 知识覆盖率

学习推荐

专注模式