博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
即时通讯开发----回音消除技术
阅读量:7210 次
发布时间:2019-06-29

本文共 1010 字,大约阅读时间需要 3 分钟。

在即时通讯应用中,需要进行双方,或是多方的实时语音交流,在要求较高的场合,通常都是采用外置音箱放音,这样必然会产生回音,即一方说话后,通过对方的音箱放音,然后又被对方的Mic采集到回传给自己(如下图所示)。如果不对回音进行处理,将会影响通话质量和用户体验,更严重的还会形成震荡,产生啸叫。

 

回音的形成

回声消除就是在Mic采集到声音之后,将本地音箱播放出来的声音从Mic采集的声音数据中消除掉,使得Mic录制的声音只有本地用户说话的声音。

 传统的回声消除都是采用硬件方式,在硬件电路上集成DSP处理芯片,如我们常用的固定电话、手机等都有专门的回音消除处理电路,而采用软件方式实现回声消除一直存在技术难点,包括国内应用最广泛的QQ超级语音,便是采用国外的GIPS技术,由此可见一般。

 回声消除已经成为即时通讯中提供全双工语音的标准方法。声学回声消除是通过消除或者移除本地话筒中拾取到的远端的音频信号来阻止远端的声音返回去的一种处理方法。这种音频的移除都是通过数字信号处理来完成的。回声消除技术是数字信号处理的典型应用之一。

 回声消除的基本原理是以扬声器信号与由它产生的多路径回声的相关性为基础,建立远端信号的语音模型,利用它对回声进行估计,并不断修改滤波器的系数,使得估计值更加逼近真实的回声。然后,将回声估计值从话筒的输入信号中减去,从而达到消除回声的目的。

 佰锐科技技术人员长期致力于语音技术的研发,在回音消除技术领域不断的优化与创新,拥用国内屈指可数,为数不多的音频技术研发团队。

 AnyChat回音消除效果

A用户说话

B用户Mic录制声音(包含A的声音+B的声音)

A听到B的声音(进行了回音消除,只保留B的声音)

 

关于噪音抑制(ANS)

AnyChat的噪音抑制技术原理是将实时采样的数字信号进行频谱分析,这样我们就能分析背景噪声响应的强度和频谱分布,然后根据这个模型就能设计一个滤波器,当有人讲话的时候,同时做信号分析,根据分析,ANC就能分析出讲话者的频谱,那么根据这些背景噪音和讲话者的频谱,这个滤波器根据两个信号的对比实时的改变,让讲话者声音频谱通过,对背景噪声的频谱进行抑制,降低其能量,比如说降低15到20个分贝,就很明显可以感觉体验到噪音抑制的效果。

本文转自 fanxiaojun 51CTO博客,原文链接:http://blog.51cto.com/2343338/998540,如需转载请自行联系原作者

你可能感兴趣的文章
线程池 Threadlocal 使用注意
查看>>
CSS的width:100%和width:auto区别
查看>>
大道至简,系统设计和模块划分的实用经验之谈
查看>>
怎么保存退出vi编辑
查看>>
mysql删除sql表添加别名及删除sql的注意事项
查看>>
tmux 基本用法
查看>>
iOS:使用NSRegularExpression正则去掉一串字符串中所有的特殊字符和标点
查看>>
腾讯工程师带你深入解析 MySQL binlog
查看>>
C指针操作ip地址以4个字节的int类型作为传输对象
查看>>
怎样在注冊表禁用或打开windows系统右键菜单
查看>>
项目管理学习笔记之四.风险管理
查看>>
Cisco VPP(1) 简单介绍
查看>>
RxJS -- Subscription
查看>>
关于TF(词频) 和TF-IDF(词频-逆向文件频率 )的理解
查看>>
析构函数
查看>>
手写体识别中用到的Tensorflow函数复习
查看>>
php中str_repeat函数
查看>>
MSSQL sql server 2005/2008 row_number()函数应用之–删除表中重复记录,只保留一条不重复数据...
查看>>
深入浅出理解linux inode结构【转】
查看>>
MySQL 误操作后数据恢复(update,delete忘加where条件)【转】
查看>>