Files
AI-VideoAssistant/docs/content/concepts/index.md
Xin Wang 65ae2287d5 Update documentation for assistant configuration and interaction models
- Corrected phrasing in the introduction of RAS as an open-source alternative.
- Added new documentation sections for voice AI and voice agents.
- Enhanced the flowchart for assistant components to include detailed configurations.
- Updated terminology for engine types to clarify distinctions between Pipeline and Realtime engines.
- Introduced a new section on user utterance endpoints (EoU) to explain detection mechanisms and configurations.
2026-03-06 14:38:59 +08:00

7.9 KiB
Raw Blame History

核心概念

本章节介绍 Realtime Agent Studio 中的核心概念,帮助你更好地理解和使用平台。


概念总览

flowchart TB
    subgraph Platform["RAS 平台"]
        Assistant[助手 Assistant]
        
        subgraph Resources["资源库"]
            LLM[LLM 模型]
            ASR[ASR 模型]
            TTS[TTS 声音]
            KB[知识库]
        end
        
        subgraph Engine["交互引擎"]
            Pipeline[Pipeline引擎]
            Multimodal[Realtime引擎]
        end
        
        Session[会话 Session]
    end

    Assistant --> LLM
    Assistant --> ASR
    Assistant --> TTS
    Assistant --> KB
    Assistant --> Engine
    Engine --> Session

助手 (Assistant)

助手是 RAS 的核心实体,代表一个可对话的 AI 智能体。

助手配置

每个助手包含以下配置:

配置项 说明
名称 助手的显示名称
指令配置 使用提示词指令定义助手角色、行为、限制
语音设置 包括语音识别模型,语音合成模型
交互设置 包括用户打断机器人的灵敏度,检测用户语句结束的灵敏度
工具配置 配置助手可调用的外部工具
知识配置 关联的知识库(用于 RAG
Webhooks 用于订阅助手的活动

会话 (Session)

会话代表一次完整的对话交互,从用户连接到断开。

会话状态

stateDiagram-v2
    [*] --> Connecting: WebSocket 连接
    Connecting --> Started: session.started
    Started --> Active: 对话中
    Active --> Active: 多轮对话
    Active --> Stopped: session.stop
    Stopped --> [*]: 连接关闭

会话数据

每个会话记录包含:

  • 基本信息 - ID、时长、时间戳
  • 音频数据 - 用户和助手的音频记录
  • 转写文本 - ASR 识别结果
  • LLM 交互 - 输入输出和工具调用
  • 元数据 - 渠道、来源、自定义变量

Pipeline引擎 vs Realtime引擎

RAS 支持两种引擎架构,适用于不同场景。

管线式引擎 (Pipeline)

将语音交互拆分为多个环节,包含 VAD声音活动检测ASR语音识别TD回合检测LLM大语言模型TTS语音合成。外部服务可选 OpenAISiliconFlowDashScope本地模型。LLM 与实时交互引擎均可连接工具Webhook、客户端工具、内建工具

用户语音 → [VAD] → [ASR] → [TD] → 文本 → [LLM] → 回复 → [TTS] → 助手语音

优点:

  • 灵活选择各环节供应商OpenAI、SiliconFlow、DashScope、本地模型
  • 可独立优化 VAD、ASR、TD、LLM、TTS 每个环节
  • 成本可控

缺点:

  • 延迟较高(累加延迟)
  • 需要协调多个服务

实时交互引擎 (Realtime)

实时交互引擎可连接 OpenAI RealtimeGemini LiveDoubao 实时交互引擎 等,同样可连接工具。使用端到端模型直接处理:

用户语音 → [Realtime Model] → 助手语音

优点:

  • 更低延迟
  • 更自然的语音
  • 架构简单

缺点:

  • 依赖特定供应商
  • 成本较高
  • 可定制性有限

选择建议

场景 推荐引擎
成本敏感 管线式
延迟敏感 多模态
需要特定 ASR/TTS 管线式
追求最自然体验 多模态

智能打断 (Barge-in)

智能打断是指用户在助手说话时可以随时插话,系统能够:

  1. 检测用户开始说话
  2. 立即停止 TTS 播放
  3. 处理用户新的输入

打断检测方式

方式 说明
VAD Voice Activity Detection检测到声音活动即打断
语义 基于语音内容判断是否有意义的打断
混合 VAD + 语义结合,减少误触发

打断流程

sequenceDiagram
    participant User as 用户
    participant Engine as 引擎
    participant TTS as TTS

    Note over Engine,TTS: 助手正在播放回复
    Engine->>User: 音频流...
    User->>Engine: 开始说话 (VAD 触发)
    Engine->>Engine: 打断判断
    Engine->>TTS: 停止合成
    Engine->>User: output.audio.interrupted
    Note over Engine: 处理新输入

用户语句端点EoU End-of-Utterance

用户语句端点EoU 指系统判断「用户已经说完」的时刻。在管线式引擎中,只有检测到 EoU 后,才会把当前轮次的转写文本送给 LLM 并触发回复,避免用户短暂停顿时就误判为说完。

检测方式

EoU 基于 VAD声音活动检测 的输出:在用户连续静音达到设定时长后触发一次 EoU。若静音期间用户再次说话静音计时会重置因此句间短暂停顿不会触发 EoU只有用户真正停止说话后才触发。

概念 说明
静音阈值 连续静音超过该时长(毫秒)即判定为 EoU对应配置如 vad_eou_threshold_ms(默认约 800ms
最短语音 若语音过短(如杂音),不触发 EoU避免误判
一次一轮 每轮用户输入只产生一次 EoU之后需重新检测语音再静音才会再次触发

在管线中的位置

用户语音 → [VAD] → [EoU 检测] → 静音达阈值 → 文本送 LLM → 回复 → [TTS]

助手配置中的 「检测用户语句结束的灵敏度」 即对应 EoU 的静音阈值:阈值越小,越容易判定为「说完」,响应更快但易在用户思考或短暂停顿时误触发;阈值越大,更稳但响应会稍慢。


工具调用 (Tool Calling)

助手可以通过工具扩展能力,访问外部系统或执行特定操作。

工具类型

管线式引擎中的 LLM 与实时交互引擎均可连接工具,包括:

类型 说明 示例
Webhook 调用外部 HTTP API 查询订单、预约日程
客户端工具 由客户端执行的操作 获取客户端地理位置、请求用户同意、打开客户端相机
内建工具 平台提供的工具 代码执行、计算器

工具调用流程

sequenceDiagram
    participant User as 用户
    participant LLM as LLM
    participant Tool as 工具

    User->>LLM: "帮我查一下订单状态"
    LLM->>LLM: 决定调用工具
    LLM->>Tool: get_order_status(order_id)
    Tool-->>LLM: {status: "已发货"}
    LLM->>User: "您的订单已发货"

知识库 (Knowledge Base)

知识库让助手能够基于私有文档回答问题,实现 RAG检索增强生成

工作原理

flowchart LR
    subgraph Indexing["索引阶段"]
        Doc[文档] --> Chunk[分块]
        Chunk --> Embed[向量化]
        Embed --> Store[(向量数据库)]
    end

    subgraph Query["查询阶段"]
        Q[用户问题] --> QEmbed[问题向量化]
        QEmbed --> Search[相似度搜索]
        Store --> Search
        Search --> Context[相关上下文]
        Context --> LLM[LLM 生成回答]
    end

支持的文档格式

  • PDF
  • Word (.docx)
  • Markdown
  • 纯文本
  • HTML

动态变量

动态变量允许在运行时向助手注入上下文信息。

使用方式

在系统提示词中使用 {{variable}} 占位符:

你是{{company_name}}的客服助手。
当前用户是{{customer_name}},会员等级为{{tier}}。

连接时通过 dynamicVariables 传入:

{
  "type": "session.start",
  "metadata": {
    "dynamicVariables": {
      "company_name": "ABC 公司",
      "customer_name": "张三",
      "tier": "VIP"
    }
  }
}

下一步