一、项目背景
-
项目类型:数字人 / 实时语音交互
-
客户端:
- Flutter
- flutter_webrtc
-
平台:Android
-
通信方式:WebRTC(音频 + 视频,Opus)
-
后端:WebRTC Server(通过 SDP offer/answer 建立连接)
二、问题描述(核心)
- WebRTC 连接建立成功
- 数字人语音通过 扬声器播放
- 客户端开启麦克风采集后
- 播放的数字人语音被再次拾取并识别
- 出现明显回声 / 回灌问题
⚠️ 问题表现为:
- 后端 ASR 能再次识别到数字人播放的声音
- 并非 UI 层回声,而是音频链路问题
三、当前实现方式
- 使用
navigator.mediaDevices.getUserMedia({ audio: true })获取麦克风 - 将 AudioTrack 添加到
RTCPeerConnection - SDP 中音频为
sendrecv - WebRTC 自动传输音频至后端
- 播放音频通过 WebRTC remote track + 扬声器
四、已尝试但未完全解决
-
WebRTC 音频约束:
echoCancellationgoogEchoCancellationnoiseSuppressionautoGainControl
五、联系方式
- 平台私信均可