You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无耳机场景下Chrome扩展中Azure Speech SDK的Echo Cancellation方案咨询

Chrome扩展结合Azure Speech SDK实现回声消除的可行方案

方案1:启用Azure Speech SDK内置回声消除能力

  • Azure Speech SDK for JS本身已经封装了声学回声消除(AEC)能力,你可以在初始化语音识别配置的时候直接开启
  • 配置代码示例:
const speechConfig = SpeechSDK.SpeechConfig.fromSubscription("你的服务密钥", "你的服务区域");
// 开启回声消除
speechConfig.setProperty(SpeechSDK.PropertyId.AudioProcessing_EnableAec, "true");
// 可选搭配开启噪声抑制、自动增益控制,进一步提升复杂场景识别准确率
speechConfig.setProperty(SpeechSDK.PropertyId.AudioProcessing_EnableNoiseSuppression, "true");
speechConfig.setProperty(SpeechSDK.PropertyId.AudioProcessing_EnableAutomaticGainControl, "true");
  • 注意事项:该内置AEC依赖浏览器的音频流处理权限,Chrome扩展中需要在manifest.json中声明tabCapture或者audioCapture权限,同时要确保获取的麦克风音频流是经过浏览器默认音频预处理的流,不要手动关闭echoCancellation等媒体约束。

方案2:结合Chrome Web Audio API做前置回声消除

如果SDK内置AEC效果达不到会议场景要求,可以先通过Web Audio API对音频流做预处理:

  • 获取麦克风流的时候强制开启浏览器层面的回声消除:
const stream = await navigator.mediaDevices.getUserMedia({
  audio: {
    echoCancellation: true,
    noiseSuppression: true,
    autoGainControl: true
  }
});
  • 如果你的扩展需要同时捕获标签页内的会议音频+麦克风输入,可以将两路音频输入到Web Audio的MediaStreamAudioSourceNode,通过差分处理抵消回声之后再推送给Azure Speech SDK做识别。

方案3:适配会议场景的业务逻辑过滤

针对会议场景还可以叠加业务规则降低误识别概率:

  • 如果你的扩展本身可以获取会议的输出音频流(比如通过tabCapture获取当前会议标签页的播放音频),可以将该流作为回声参考信号传给Azure Speech SDK的音频处理配置,进一步提升回声抵消的准确率。
  • 可以针对识别结果增加匹配过滤规则:如果识别到的内容和当前会议公开的字幕、参会人输出内容高度匹配,直接判定为回声过滤即可。

内容的提问来源于stack exchange,提问作者Sulabha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 05:00:03