实时通信(五):数字人应用,ASR/LLM/TTS/Avatar 如何接进 RTC
本篇先解决哪些词
RTC 是承载实时音视频的通信底座;SFU 是负责转发媒体流的实时通信服务器;ASR 把用户语音转成文字;LLM 根据上下文生成回复;TTS 把文字合成语音;Avatar 生成或驱动数字人形象;VAD 判断用户是否正在说话;barge-in 是用户插话打断系统回复。数字人实时通信就是把这些模块接进 RTC 的低延迟闭环。
一个能对话的数字人系统,至少包含用户上行音频、ASR、LLM、TTS、Avatar、下行音视频播放和打断控制。ASR 是自动语音识别,把声音转文字;LLM 是大语言模型,负责理解上下文并生成回复;TTS 是语音合成,把文字变成声音;Avatar 是数字人形象生成或驱动模块。RTC 在这里不是外围模块,而是整条体验链路的时钟:用户什么时候说话、系统什么时候开始听、什么时候出首 token、什么时候出首音频、什么时候出首帧,都会反映到互动感上。
sequenceDiagram
participant U as User Browser
participant R as RTC/SFU
participant A as ASR
participant L as LLM
participant T as TTS
participant V as Avatar
U->>R: WebRTC uplink audio
R->>A: audio chunks
A->>L: partial/final transcript
L->>T: streaming tokens
T->>V: audio chunks
V->>R: video frames + audio
R->>U: WebRTC downlink media
U-->>R: interrupt / barge-in数字人延迟不是一个总数字。更有用的拆法是:VAD(Voice Activity Detection,语音活动检测)检测到用户停顿的时间、ASR partial 首字时间、LLM 首 token、TTS 首音频 chunk、Avatar 首视频帧、编码和 WebRTC 播放缓冲。这里的 token 是大模型生成文本的基本片段,chunk 是流式系统分批吐出的音频或文本小块,TTFA 是 Time To First Audio,表示从请求 TTS 到听到第一段音频的时间。只有逐段记录,才知道该优化模型还是优化 RTC。
| 阶段 | 关键指标 | 优化方向 |
|---|---|---|
| 上行 RTC | audio RTT、uplink loss、jitter buffer | 音频优先、TURN 兜底、近端 SFU |
| ASR | partial latency、final latency | 流式识别、端点检测、热词 |
| LLM | first token、tokens/s | 小模型路由、缓存、流式输出 |
| TTS | TTFA、chunk cadence | 流式 TTS、短句切分、音色缓存 |
| Avatar | first frame、FPS、A/V drift | 轻量模型、滑窗、GPU 队列隔离 |
| 下行 RTC | downlink bitrate、freeze、render delay | 分层编码、降级策略、jitter buffer 控制 |
用户在数字人说话时插话,系统必须快速停止旧回复、清空或淡出 TTS/Avatar 队列、把新上行音频送入 ASR,并确保下行媒体不会继续播放旧内容。这叫 barge-in 或 interrupt。没有打断,数字人更像播片;有打断,才像对话。
如果只取消 LLM 请求,但 TTS 缓冲、Avatar 帧队列、SFU 下行 buffer 还在继续,用户仍会听到旧话。打断必须跨 ASR、LLM、TTS、Avatar 和 RTC 播放队列统一传播。
数字人弱网降级要有优先级。声音是对话的最低可用层,必须优先保证;嘴型同步决定“像不像在说话”;画质、分辨率、背景和身体动作可以后降级。生产系统常见策略包括只降视频不降音频、Avatar 降 FPS、低清层订阅、暂停复杂背景、切纯语音模式。
Sources
- WebRTC project. Real-time communication for the web.
- RFC 8445. Interactive Connectivity Establishment (ICE).
- RFC 8839. JavaScript Session Establishment Protocol.
- RFC 3550. RTP: A Transport Protocol for Real-Time Applications.
- RFC 3711. The Secure Real-time Transport Protocol.
- LiveKit Docs. LiveKit SFU internals.
- mediasoup documentation. mediasoup v3 docs.
- Janus WebRTC Server. Official documentation.