跳转至

Qwen Audio Realtime

在一个持久实时会话中完成语音理解、轮次检测、推理和语音生成,适合追求最低延迟的 Speech-to-Speech Graph。

属性
Node Type qwen.audio_realtime
层级 / 角色 algorithm / transform
Capability speech.to.speech.realtime

Port

Port 方向 Schema
audio_in 输入 Audio PCM S16LE、16 kHz、单声道、流式
audio_out 输出 Audio PCM S16LE、24 kHz、单声道、流式
transcript_preview_out 输出 Text 供 Graph 内部消费的用户临时转写
transcript_out 输出 Text 用户最终转写
response_text_out 输出 Text 助手回答增量
event_out 输出 Event 说话状态、回答完成、打断和转写失败
signal_out 输出 Signal 通过显式 Edge 路由的打断/取消控制

配置

model 默认是 qwen-audio-3.0-realtime-flashvoice 选择音色;instructions 定义助手行为; turn_detection 支持 server_vadsmart_turn。门面 Demo 使用 Qwen Realtime 内部的 server_vad,保持“一个 Realtime Node 完成 VAD、ASR、LLM、TTS”的设计边界。 input_chunk_ms 默认是 100:Node 会把 Agora 的 10ms PCM Frame 聚合成百炼推荐的 100ms/3200-byte WebSocket 音频块,同时仍在每个 Runtime 回调中轮询服务端事件。 Node 在发送任何音频前会严格完成 session.created → session.update → session.updated 握手; 配置超时或被服务端拒绝时,Runtime 会直接给出协议错误,不会进入“音频在增长但模型没有响应”的假运行状态。

发生打断时,Qwen Node 会取消自己的生成、发出 muxiva.voice.speech.started Signal;Agora Audio Sink 收到 Signal 后清空尚未播放的 PCM。算法 Node 不再包含客户端专用 Port;项目内的 voice_room.event_encoder 直接消费 transcript_preview_outtranscript_outresponse_text_outevent_out,再生成 Voice Room 协议。NotificationBus 仅用于本地观测。Voice Room 会显示 YOU ARE SPEAKINGBARGE-IN · INTERRUPTING AGENT;服务端日志中的 [MUXIVA][AGORA][audio.cancelled] 给出实际 清除的字节数。

如果 RTC Frame 持续增长但没有回答,先看 Observe 中 Qwen Node 的 input.audio_peak_pcm16input.audio_mean_abs_pcm16:二者始终接近 0 说明浏览器发布的是 静音或选错了输入设备,并不是 ASR 网络堵塞。Voice Room 同时直接显示浏览器的 MIC LEVEL, 连续 5 秒没有检测到语音能量会给出黄色诊断提示。