60 lines
2.5 KiB
Markdown
60 lines
2.5 KiB
Markdown
---
|
||
title: "Full-Duplex Interaction"
|
||
created: 2026-06-25
|
||
updated: 2026-06-25
|
||
type: concept
|
||
tags: [interaction, real-time, streaming, dialogue, multimodal]
|
||
sources:
|
||
- "[[wan-streamer]]"
|
||
---
|
||
|
||
# Full-Duplex Interaction
|
||
|
||
**Full-Duplex Interaction**(全双工交互)是指用户和 AI Agent 可以**同时**进行感知和表达的交互范式,而非传统的交替(half-duplex)模式。
|
||
|
||
## 与人机对话的关系
|
||
|
||
传统人机对话系统通常运行在半双工模式:
|
||
- 用户说话 → 系统侦听(VAD 检测)→ ASR 转写 → LLM 推理 → TTS 合成 → 系统播放 → 用户说话...
|
||
|
||
这种交替模式存在根本性问题:
|
||
- **模块边界等待**:VAD→ASR→LLM→TTS 的流水线延迟累积
|
||
- **缺乏非语言反馈**:在人说话时,AI 应该是可见地聆听(点头、凝视等),而非冻结
|
||
- **中断困难**:打断一个正在进行 TTS 播放的系统本质上需要额外的"中断检测"逻辑
|
||
- **无法处理重叠语音**:人类对话中常见的 backchannel("嗯"、"对")和同时说话
|
||
|
||
## 全双工的核心要求
|
||
|
||
1. **连续感知**:Agent 在任何时候都持续消费用户的音视频输入,即使正在生成响应
|
||
2. **连续表达**:Agent 在聆听时也产生可见行为(表情、姿态),在说话时也持续感知用户反馈
|
||
3. **原生中断**:用户自然打断时,模型能够立即感知、停止或重新规划响应
|
||
4. **主动说话**:基于视觉线索(显著事件、表情变化)主动发起交互
|
||
|
||
## 在 Wan-Streamer 中的实现
|
||
|
||
Wan-Streamer 通过将用户输入和 Agent 输出放在同一条因果时间线上来学习全双工行为:
|
||
- 训练时,模型看到人类何时继续、暂停、重叠、打断、让步、恢复
|
||
- 推理时,模型持续消费用户音视频观测,同时生成响应
|
||
- 非说话状态下的身份保持、呼吸、微表情等也是学习的目标
|
||
|
||
## 与级联系列的对比
|
||
|
||
| 维度 | 级联系统 | 全双工端到端 |
|
||
|------|---------|------------|
|
||
| 感知窗口 | 仅在"聆听"阶段 | 持续 |
|
||
| 输出窗口 | 仅在"说话"阶段 | 持续(包括聆听反馈) |
|
||
| 中断处理 | 外部 VAD/规则 | 模型内部学习 |
|
||
| 思考延迟 | 感知+推理+合成累加 | 流水线重叠 |
|
||
|
||
## 相关研究
|
||
|
||
- Moshi — 首个原生全双工语音模型
|
||
- SALM-Duplex — 直接建模连续语音输入和 codec 输出
|
||
- Seeduplex — 端到端全双工语音交互
|
||
|
||
## 参考
|
||
|
||
- [[wan-streamer]] — 首个将全双工扩展到音视频的端到端模型
|
||
- [[end-to-end-streaming-interaction]]
|
||
- [[block-causal-attention]]
|