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

2023-11-04

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


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

以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
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • 如何自学Python爬虫? 零基础入门教程

    如何自学Python爬虫 在大家自学爬虫之前要解决两个常见的问题 一是爬虫到底是什么 二是问什么要用Python来做爬虫 爬虫其实就是自动抓取页面信息的网络机器人 至于用Python做爬虫的原因 当然还是为了方便 本文将为大家提供一份详细的
  • Docker笔记1 基础概念和镜像

    基础概念 开发环境deepin linux 15 11 安装docker之后 执行命令 sudo usermod aG docker USER NAME 让docker和当前用户在一个组中 可以每次不用执行sudo命令了 三个核心的概念 镜
  • 【电路补习笔记】10、电感式开关电源(BUCK 降压电路)

    目录 分类 封装 焊线式 覆晶式 开关电源 三种基本的非隔离开关电源 纹波 ripple 开关电源的元件构成 有源开关 肖特基二极管或快恢复二极管 不使用普通硅二极管的原因 电感 电容 分压电阻 输出电压设置 工作原理 工作模式 连续模式
  • laya快捷键

    Ctrl F6 构建html Ctrl F7 实时编译 Ctrl F8 实时编译 F11 UI导出 不导出图集 图集不变的情况用这个会快很多
  • 分类和标注词汇(基于nltk)

    早在小学你就学过名词 动词 形容词和副词之间的差异 这些 词类 不是闲置的文法家的发明 而是对许多语言处理任务都有用的分类 正如我们将看到的 这些分类源于对文本中词的分布的简单的分析 本章的目的是要回答下列问题 什么是词汇分类 在自然语言处
  • sql-labs 闯关 5~10

    sql labs 闯关 5 10 友善爱国平等诚信民主友善公正敬业爱国友善爱国公正友善自由友善敬业爱国平等 复习笔记1 内容 盲注步骤思维导图 sql labs第五关 GET请求 双注入 单引号字符型 sql labs第六关 GET请求 双
  • Windows下Sqlmap环境安装教程详解

    更多编程教程请到 菜鸟教程 https www piaodoo com Sqlmap安装 Sqlmap gt gt 基于Python的自动化渗透测试工具 安装工具前需要进行Python的环境准备 Python环境的安装 1 1 下载与安装
  • 软件安全测试包含哪些内容和方法?安全测试报告的必要性

    软件安全测试是一种通过模拟真实攻击的方式 对软件系统进行全面的安全性评估和测试 以发现潜在的安全漏洞和弱点 是确保软件系统安全性的重要措施 在进行软件安全测试时 我们需要了解测试的内容和方法 以及为什么进行安全测试报告的必要性 一 软件安全
  • 2021-05-24

    JDBC 目录 JDBC 一 idea下创建JDBC项目 1 下载所需JDBC驱动 2 连接数据库 3 创建JDBC项目 二 JDBC常用类及常用方法介绍 1 DrivaerManger 驱动管理对象 2 Connection 数据库连接对
  • Chat GPT Access denied——最新解决方法

    前几天没怎么捣鼓ChatGpt 看到网上铺天盖地的被封号的消息 心想我不会也被封了吧 立马上线一探究竟 结果喜提Access denied 难道我要告别Chatgpt了 不 我不甘心 然后就是一顿操作根据网上各路大神帖子提供的方案 都一一失
  • Nginx参数配置详细说明【全局、http块、server块、events块】【已亲测】

    Nginx重点参数配置说明 本文包含Nginx参数配置说明全局块 http块 server块 events块共计30多个参数配置与解释 其中常见参数包含配置错误出现的错误日志 能让你更快的解决问题 该文的所有参数大部分经过单独测试 错误都是
  • Vue修改数据页面不更新的问题解决

    第一种场景 动态给对象新增属性或者删除属性是不会触发视图刷新的 Vue识别不到 第二种场景 通过数组下标修改数组中的元素或者手动修改数组的长度 Vue识别不到 解决方法1 静默刷新 使用v if的特性 在修改值之后将元素销毁 然后在修改后的
  • Java GUI编程(Swing)(窗口 面板 弹窗)

    目录 一 窗口 面板 Swing 重点 重点 重点 如果想给窗口进行背景颜色 必须要给窗口JFrame实例化 否则其他没有颜色 例如 jframe setBackground Color BLUE 背景无颜色 Container conta
  • Minio 部署

    minio 官网 https www minio org cn 部署文档 https www minio org cn docs minio container operations install deploy manage deploy
  • SQL中JOIN和UNION

    join 是两张表做交连后里面条件相同的部分记录 可以是不同字段 产生一个记录集 union是产生的两个记录集 字段要一样的 并在一起 成为一个新的记录集 JOIN用于按照ON条件联接两个表 主要有四种 INNER JOIN 内部联接两个表
  • Vision Transformer(ViT)

    1 前言 本文讲解Transformer模型在计算机视觉领域图片分类问题上的应用 Vision Transformer ViT 本人全部文章请参见 博客文章导航目录 本文归属于 计算机视觉系列 2 Vision Transformer Vi
  • Linux rootfs(根文件系统讲解)

    rootfs 其实就是 针对特定的操作系统的架构 一种实现的形式 具体表现为 特定的目录 就理解为windows的文文件夹 目录之间的关系 即组织架构 以及特定的各种文件 boot 系统启动的相关文件 如内核 initrd 以及grup b
  • proxy_set_header Host $host;

    server listen 80 server name www yuetai net cn 核心代码 rewrite https server name 1 permanent location proxy set header X Re
  • HC-02蓝牙串口模块的配置和使用

    HC 02蓝牙串口模块是基于蓝牙2 0并兼容BLE的双模蓝牙数传模块 带底板的蓝牙模块如下图 模块可以作为从机与HC 05或HC 06的主机设备通信 也可以和手机通信 模块在上电未连接蓝牙的时候LED快闪指示 这时可使用串口助手AT指令配置
  • 远场(far-field)语音识别的主流技术有哪些

    转自 https www zhihu com question 48537863 远场 far field 语音识别的主流技术有哪些 以amazon echo为首的一批智能硬件正在崛起 这些硬件实现语音识别功能时面临的一个挑战性的问题就是如