转自:https://www.zhihu.com/question/48537863

以amazon echo为首的一批智能硬件正在崛起,这些硬件实现语音识别功能时面临的一个挑战性的问题就是如何降低远场麦克风造成的噪音(noise)、回声(reverberation)和自回声(echo),希望有大牛来介绍一下这个领域的主流应用技术和发展方向。
作者:dahang feng
链接:https://www.zhihu.com/question/48537863/answer/149339740
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

我的研究领域是麦克风阵列信号处理,从2013年开始做远场语音识别的信号处理部分,目前也有了一些经验,分享下我的看法,欢迎指正。

我认为远场语音识别技术难点可以分为3个部分,第一个是多通道同步采集硬件研发,第二个是前端麦克风阵列降噪算法,第三个是后端语音识别与前端信号处理算法的匹配。

首先多通道同步采集硬件是研究前端降噪算法的前提,只有先拿到一些麦克风阵列的数据,才能根据实际采集的数据进行算法的研发和调优。目前市面上主流的codec芯片最多支持4通道同步采集,这对于麦克风阵列来说是不够的,比如echo音响,采用了7个麦克风,再加上一个喇叭的参考信号,所以它至少需要8通道同步采集,即2个4通道的codec芯片。为了使两个codec芯片同步,需要一颗FPGA芯片来协助完成,同时麦克风还需要一些配套的模拟滤波放大电路,中间有很多都是经验性的东西,并且在echo以前,消费电子上很少有集成4个麦克风的情况,所以研究的人很少,这也增加了该硬件的研发难度。当然如果仅仅是为了研究可以直接购买一些多通道同步采集设备,节省硬件研发周期。

其次是麦克风阵列降噪算法的研发。目前影响远场语音识别的难点是播放状态下打断,房间混响和非平稳噪声干扰等。播放状态下打断是指设备在播放音乐或tts的时候可以对它再次下达指令,这就需要回声消除技术,将设备自身播放的声音从麦克风接收到的信号除去,这个技术在手机上已经非常成熟了,比如上面@Kent Zhang提到的speex和webrtc的开源软件中都有该算法,但这两个开源软件为了达到更大的回声抑制效果,使用了大量的非线性处理手段,因此如果直接用在远场语音识别领域,效果并不好(我们已经做过测试)。在研究中我也发现,语音识别引擎对于语音信号的非线性处理非常敏感,简单的说就是语音失真少一些即使背景噪声有残留,也不会影响语音识别率。房间混响会造成麦克风接收到的信号有很长的拖尾,让人听起来感觉发闷,在实际中人耳具有自动解混响的能力,所以人在实际房间中相互交流并没有影响反而觉得声音饱满,但是这个对于语音识别来说是致命的,我觉得可能的原因是房间的冲击响应太长,一般有400ms-1000ms,而语音识别一帧的长度只有50ms,即使DNN有记忆能力,但也有限,所以在混响中语音识别率下降。远场语音识别以前,由于需求不大,对于去混响研究的不多,一般以倒谱平均、谱减法为主,但这类方法对远场语音识别率提升不大,目前比较好的去混响算法是日本NTT部门研究的多步线性预测方法,有兴趣的可以尝试一下。非平稳噪声干扰主要是利用波束形成去除,在做波束形成之前需要先知道说话人的方向,这就需要测向功能,即波达方向估计,学术上的论文一般研究如何提高测向的精度和分辨率,但这些指标在实际中意义不大,实际中更需要解决的是如何在混响的条件下提高波达方向估计的鲁棒性。知道方向之后,就可以做波束形成,抑制周围的非平稳噪声,由于消费产品价格和尺寸的限制,麦克风的个数间距有限,因此必须用自适应波束形成算法,简单说就是保护主方向说话人的同时,自动在噪声方向形成零点,对噪声进行抑制。经过测试,波束形成算法可以大幅提高语音识别率。

最后就是语音识别引擎要和前端降噪算法进行匹配。目前的识别算法还是训练数据和测试数据越匹配效果越好。目前各家的语音识别引擎主要是利用手机上收集的语音进行训练的,因此只适用于近讲情况。同样道理,为了提升远场语音识别,就需要用远场的语音数据训练声学模型,而远场语音数据又太复杂(混响、噪声),这就需要信号处理的手段让数据尽量变的单一一些,最佳的方法就是利用麦克风阵列采集的信号经过前端降噪算法后的数据去训练语音识别引擎,效果应该会有大幅提升。

此外,目前远场语音识别也分为两派,一派认为利用深度学习的办法也可以实现去混响降噪声的目的,另外一派是用麦克风阵列信号处理的方法去除混响和噪声,从目前的产品上看麦克风阵列信号处理的方式在实际中用的更多一些,echo用了7个麦克风,叮咚用了8个麦克风,google home也用了两个麦克风。个人觉得在远场语音识别这块,麦克风阵列信号处理还是一定需要的,因为人有这么聪明的大脑还长了两个耳朵,而目前DNN和人脑差别又很大,所以更需要多个麦克风做辅助,相信随着DNN的发展应该有一天可以只用两个麦克风就可以彻底解决远场语音识别问题,但这个时间估计还会很长。

-----------------------------------------------------

作者:Kent Zhang
链接:https://www.zhihu.com/question/48537863/answer/111526644
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

我不是大牛!我不是大牛!我不是大牛!

作为一个信号处理稍微接触过点的小白,我稍微来说两句。

远场麦克风是啥我不知道。
不过噪声,回声,自然回声坑我多惨我还是有切身体会的。
稍微说一句,传统国内IT人很有可能小看这些工业问题。至少我那边澳洲阿大硕士亮蛋老大是小看了的。差点挂在安卓的回声问题上。
这些信号处理技术,一直是核心技术。

就以我最熟悉的回声问题为例

目前开源的软件解决方案有两个,Speex和webrtc,其中webrtc是谷歌搞的,据说花大钱收购了GIPS的技术用在这里面,不过似乎开源版本还不够好,回声消除不够完善。
speex整个就不好使,似乎其中的dsp重采样器都不行。
于是当时我做项目的时候就去联系了下回声消除群里面那些真大神,其中第一家似乎很牛逼,他们的意思是,先别问回声消除技术要多少钱,先说说你们有多少钱 o(╯□╰)o
第二家还算实惠,做的demo我评测了下觉得不错,几十万的价。
但是,咱公司根本没钱,别tm说几十万了,几万余钱都没有,于是我改了下webrtc用进去,勉强摆平了部分安卓手机回声的问题。
还有,回声消除技术适配安卓手机是个大坑!webrtc就这问题难搞。

那么再说说硬件方案,硬件方案相比软件方案对小企业要便宜些,硬件直接卖芯片,几块钱到几十块钱不等,成本按出货量看,这方面略出名的,我们用了的就是Fortmedia富迪科技的芯片。他家的特色似乎就是语音处理技术,其中双麦克风进行固定空间位置音频降噪似乎是独有的,也就是就两麦克风正对着的一定区域声音可以进去,其他位置都能滤掉。
并且他家音频处理芯片一系列的,从低端纯模拟IO到高端数字IO都有。
但是不知道是不是做硬件的合作乙方没怎么使劲,回声消除的效果还是不行。

现在市面上的各种产品,做音频降噪,回声消除的行业领先的,似乎就是skype。
YY语音在这方面也有加点。

跟其他大牛聊过很多,可惜我不懂电声,只能从门外略窥一二。

Echo 为了实现远场语音识别,用了单独的麦克风阵列模块来拾取语音,阵列上有7颗麦克风,可以360度拾取语音。
国内其他语音识别公司也在推出自己的麦克风阵列模块,4麦克风,8麦克风,但基本上都通过以下方法来实现远场拾音:
1.Beamforming
2.DOA(声源定位)
3.降噪
4.回声抑制
5.De-Reverbration
6.(可能还有其他的,我不懂...)
然后将多路语音处理后合成一路,上传服务器或本地语音识别,再具体我就说不清楚了,毕竟不是搞这个的...

如果题主想做一个类似Echo的东西,可以买到现成的方案来做(避免广告嫌疑我就不提是哪家的),至少已经是已经可以用钱解决的问题,很多服务机器人上都已经在用了。

另外手动@Kent Zhang,我听说微信或者QQ回声消除确实消不干净,主要是因为时钟不同步的问题,大牛说麦克风阵列上消除回声的办法就是用ADC去采样喇叭功放,跟麦克风采用同一个时钟源,可以轻松解决采样率和时钟同步的问题,就消得很干净。

作者:Mile Tang
链接:https://www.zhihu.com/question/48537863/answer/112516548
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

从技术上来说基本上就是如下技术,统称为前处理技术:

1.Beamforming2.DOA(声源定位)3.降噪4.回声抑制5.De-Reverbration

因为现在语言识别基本上都是基于大数据学习提示识别率, 而且目前产品大多数集中在家庭和汽车中, 这些场景普通的平稳噪声基本上在训练数据中加入这些噪声训练就可以,所以噪声抑制基本上对识别率提升作用不会太大,其主要作用的是麦克风阵列进行空间指向性提升目标信号增益,并且同时也具备一定的去混响作用。 而回声抑制主要是针对智能音箱或者智能电视场景,可以得到参考信号场景效果明显。

如果前处理技术结合识别引擎一起,处理后的数据参与训练,整体效果最佳。

作者:黄家典
链接:https://www.zhihu.com/question/48537863/answer/149204380
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

远场(far-field)语音识别的主流技术有哪些相关推荐

  1. 远场(far-field)语音识别的主流技术有哪些?

    我的研究领域是麦克风阵列信号处理,从2013年开始做远场语音识别的信号处理部分,目前也有了一些经验,分享下我的看法,欢迎指正. 我认为远场语音识别技术难点可以分为3个部分,第一个是多通道同步采集硬件研 ...

  2. 论语音识别三大关键技术

                                                                              论语音识别三大关键技术                ...

  3. 中文信息处理的主流技术是什么?

    中文信息处理的主流技术是什么? 从20世纪50年代初机器翻译课题被提出算起,自然语言处理(NLP)的研发历史至少也有50年了.90年代初,NLP的研究目标开始从小规模受限语言处理走向大规模真实文本处理 ...

  4. 彝文计算机,计算机彝文信息处理主流技术的分析与探讨

    摘要:本文以彝文信息处理的特点作为出发点,从N元模型.语音识别和语法分析等方面分析了彝文信息处理的主流技术. 关键词:彝文:信息处理:N元模型:语音识别:语法分析 一.引言 当今世界已经进入信息网络时 ...

  5. Java处理XML的三种主流技术及介绍

    Java处理XML的三种主流技术及介绍(1) 2012-08-15 10:44 顾彬/冯晨/乔彬 IBM developerWorks 我要评论(0) 字号:T | T XML (eXtensible ...

  6. 云计算将成为金融服务业的主流技术

    本文讲的是云计算将成为金融服务业的主流技术,短短几年内,云计算已经从神秘的技术管理模式转变成为能够改变企业业务模式.领导企业评估以及支撑业务增长的主导力量.特别是在金融市场,目前,服务供应商尚未明确定 ...

  7. java websocket修改为同步_初级Java程序员需要掌握哪些主流技术才能拿25K?

    某天,小五看到小丽愁眉苦脸的,于是问了她有什么心事~ 公司的社区网站访问越来越慢了,特别是搜索功能,这该怎么优化呀? 你们都用了啥技术搭建的呀? springboot+mybatis,数据库mysql ...

  8. INTERSPEECH 2017系列 | 语音识别之语言模型技术

    编者:今年的INTERSPEECH于8月20日至24日在瑞典的斯德哥尔摩顺利召开,众多的高校研究机构和著名的公司纷纷在本次会议上介绍了各自最新的技术.系统和相关产品,而阿里巴巴集团作为钻石赞助商也派出 ...

  9. java web开发技术大_2021年六大javaweb开发主流技术

    作为历史最为悠久的编程语言--java,历经数十年依然盘踞在编程榜最前面的位置,这与它的技术和应用范围是分不开的,同时呢,javaweb开发主流技术更是java开发者时时刻刻关注的问题,接下来我们一起 ...

最新文章

  1. PHP--isset()和unset()函数的用法
  2. runaway深度递归函数测试及相关汇编指令
  3. Keras图数据学习
  4. 如何datagrid分页保持每页先前选择的checkbox的状态?
  5. 通过销售订单领用到成本中心,FI替代实现不同成本中心记账科目不同
  6. bit索引 mysql_Mysql优化之索引实现原理
  7. mysql导出表数据
  8. 艾媒2018年度手机输入法报告出炉:百度输入法是语音识别最准的输入法
  9. python爬取妹子图片1_利用爬虫爬取清纯妹子图片
  10. 八皇后-韩顺平java
  11. 如何正确的制定目标?(只需4步)
  12. 555定时器的工作原理
  13. 变限积分求导公式总结_积分变限函数求导的基本方法
  14. python if并列条件_Python中if有多个条件怎么办
  15. EPP-域名映射(RFC5731翻译)
  16. 钉钉网页版入口,存档
  17. 微信公众号简易入门教程
  18. 【正点原子I.MX6U-MINI应用篇】1、编写第一个应用App程序helloworld
  19. 世界人口你未必知道的事实
  20. Word中如何在同一个页面下设置两个不同的页码

热门文章

  1. 免费易混实词辨析456组(1)
  2. 超简单安装Win10!不用U盘!保留原应用快速纯净!安装Window10系统,Windows7升级到Windows10。(亲测有效)
  3. 3 什么是linux磁盘分区,3. Linux系统磁盘分区介绍
  4. 视频处理指定颜色的提取
  5. 鼓励与信任让人变得强大
  6. 习题3.6 阅读下面程序,分析其执行过程,写出输出结果
  7. denoiser降噪实例
  8. EXCEL列乱序后内容重新对应
  9. pm2启动node项目
  10. java 求指数、对数