专栏名称: 移动开发前线
专注于分享移动开发前沿和一线技术。
目录
相关文章推荐
前端早读课  ·  【第3523期】程序员专属提示词工程实战手册 ·  9 小时前  
前端早读课  ·  【第3522期】扩展 React 服务端渲染的能力 ·  昨天  
前端早读课  ·  【招聘】抖音生活服务商品团队招前端实习生 ·  昨天  
程序员好物馆  ·  别再给所有函数起名叫 ... ·  2 天前  
程序员好物馆  ·  别再给所有函数起名叫 ... ·  2 天前  
前端早读课  ·  【第3521期】如何在 React 中构建一个库 ·  2 天前  
51好读  ›  专栏  ›  移动开发前线

音视频社交中回声消除技术是如何实现的

移动开发前线  · 公众号  · 前端  · 2017-07-06 23:33

正文

请到「今天看啥」查看全文


fe=f(fs)

其中,

fs=far-end signal(远端信号);

fe=far-end echo (远端回声);

如果能够对这个函数求解,那么就可以根据远端声音信号和远端回声之间的相关性进行建模。这个模型是对回声馈路 LRM 的模拟,会高度逼近回声馈路 LRM。

等到这个模型稳定时,输入远端声音信号 fs,就可以输出高度接近远端回声的信号 fe。通过滤波器生成反相的信号,和采集到的声音信号进行叠加,就可以把回声信号消除掉。这就是回声消除 AEC 的基本原理。

这个函数求出来的解不大可能和远端回声完全一致,只能高度逼近。该函数求出来的解和远端回声越逼近,回声消除的效果就越好。

静音、单讲和双讲

虽然实时语音的通话是双工模式,但是可以分为不同的情形:静音、单讲和双讲。针对不同的情形要采取不同的回声消除策略。

1)静音

即没有人说话的情形。

在语音段才需要做回声消除,在非语音段不会有回声,不需要做回声消除,甚至不需要发送语音信息,从而可以降低码率,节约带宽成本。

因此,准确探测语音活动十分重要。语音的探测算法叫 VAD(Voice Activity Detection)。不同的厂商有不同的 VAD 实现方法。我们是利用基音周期实现 VAD,有效地提高 VAD 判断的准确性,避免将非语音段误判为语音段。

2)单讲

即只有远端说话的情形。

由于只有远端说话,从麦克风采集进来的语音信号只包含远端的回声,而不包含近端的语音。单讲情形下的回声消除相对比较容易处理,可以采取比较激进的处理策略。

如果确定单讲是高概率事件的情况下,可以直接地把所有语音信号都干掉,然后适当地填充舒适噪音。一般来说,在单讲情形下,用线性自适应滤波器跟踪回声馈路,可以很好地消除回声,大概能够抑制掉 18dB 的回声。







请到「今天看啥」查看全文