首先我们要了解一下回声是怎么产生的:从通讯回音产生的原因看,可以分为声学回音(Acoustic Echo 如上图)和线路回音(Line Echo),相应的回声消除技术就叫声学回声消除(Acoustic Echo Cancellation,AEC)和线路回声消除(Line Echo Cancellation, LEC)。
声学回音是由于在免提或者会议应用中,扬声器的声音多次反馈到麦克风引起的(比较好理解);线路回音是由于物理电子线路的二四线匹配耦合引起的(一般硬件厂商来保证,不做具体阐述)。
为什么回声在音频里面这么严重?我们怎么做?在发送时,把不需要的回音从语音流中间去掉。
试想一下,对一个至少混合了两个声音的语音流,要把它们分开,然后去掉其中一个,难度何其之大。
就像一瓶蓝墨水和一瓶红墨水倒在一起,然后需要把红墨水提取出来,这恐怕不可能了。
所以回声消除被认为是神秘和难以理解的技术也就不奇怪了。
实际上,算法只获取麦克风采集的混合信号是无法做回声消除的,因为算法并不清楚混合的信号里面哪些部分是回声哪些是本端的人说的话。
但是回声其实播放的声音经过空间的墙面,地面,桌面反射回麦克风的信号,而播放的信号SDK其实是可以获取的,这就有了参考信号帮助算法来确定哪些是回声哪些是本端声音。
来看下面的AEC声学回声消除框图尽管回声消除是非常复杂的技术,但我们可以简单的描述这种处理方法: 1、假设设备播放的声音是Y,经过空间反射产生的回声是Y',近端说话的声音是X,那么麦克风采集的信号就是 X+ Y'。
2、AEC 算法的输入需要 麦克风的信号(X+ Y')以及播放的声音Y,理想的输出是X。
3、算法的过程可以简单理解成用滤波器去模拟空间的反射变化,假设滤波器是f,那么就是希望f(Y) = Y'。
这样我们就得到了Y'再在输入信号里面去掉。
4、上述是理想情况,实际情况是空间反射,以及采集播放的性能决定Y到Y'基本都是非线性的变化,然而因为计算量的限制,一般的实时系统都是使用的线性的滤波器,所以滤波器即使处在最理想的情况下也只能处理线性部分,对于非线性部分(很多情况下非线性回声是主要部分)还要有非线性的处理Nonlinear Process。
5、又因为回声的反射路径随着空间环境的变化随时都会变化,一般滤波器会设计成自适应的去跟踪环境回声路径的变化。
以上内容结合网易云信音频算法专家以及技术博主碧海银沙的回声消除要点简介。
网易云信,你身边的即时通讯和音视频技术专家,了解我们,请戳网易云信官网想要阅读更多行业洞察和技术干货,请关注网易云信博客更多精彩内容,关注网易云信知乎机构号哦。
- 夏天的风 姑娘 老男孩 理想三旬 月半小夜曲 生日快乐 其实 那些年 光阴的故事 少年 后来遇见他 那女孩对我说 世界这么大还是遇见你 火红的萨日朗 想见你想见你想见你 冬眠 关键词 芒种 往后余生 关山酒 年轮说 小镇姑娘 烟雨行舟 记念 你笑起来真好看 来自天堂的魔鬼 学猫叫 你的酒馆对我打了烊 不仅仅是喜欢 浪人琵琶 卡路里 带你去旅行 红昭愿 纸短情长 最美的期待 体面 小跳蛙 悬溺 侧脸 山楂树之恋 我的名字 失眠飞行 有可能的夜晚 追光者 请先说你好 流浪 东西 星球坠落 我的将军啊 烟火里的尘埃 答案 心如止水 我们不一样 嘴巴嘟嘟 晴天 成都 告白气球 南山南 女儿情 天空之城
报歉!评论已关闭。