程序员

【技术揭秘】解决“鸡尾酒会问题”的利器-基于盲源分离的前端信

作者:admin 2021-07-09 我要评论

来源 阿里语音AI 公众号 设想在一个“鸡尾酒会”上,不同客人的说话声、脚步声、音乐声等各种声音混合在一起。对于宴会中的客人来说,即使处于嘈杂的环境中,他...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)
来源 阿里语音AI 公众号

设想在一个“鸡尾酒会”上,不同客人的说话声、脚步声、音乐声等各种声音混合在一起。对于宴会中的客人来说,即使处于嘈杂的环境中,他们也能够很轻松的理解同伴说话的内容,然而对于计算机来说,例如语音识别程序,却很难在这样一个有干扰的环境下将接收到的声音信号准确的识别成文字。但是,如果能用某种算法首先将各种声源所产生的声音信号从麦克风接收到的混合信号中分离开来,再选择所需的声源进行识别,由于消除了其它声源的干扰,所以语音识别的准确率将会显著提高。以上就是著名的“鸡尾酒会问题(The Cocktail Party Problem)”。在人们的日常生活中,类似于“鸡尾酒会问题”的例子还很多,这类问题有着共同的特点,即人们实际观测得到的是多个源信号混合而成的结果,而各个源信号事先却无法得知,但是在后续的处理中往往需要用到某个或某几个源信号。

盲源分离(Blind Source Separation, BSS)是解决“鸡尾酒会问题”的利器之一,其目的就是要将各个源信号,或后续问题中需要用到的某个或某些源信号从观测得到的混合信号中分离出来。所谓“盲源”,指的是源信号本身的波形、源信号的数目、信号源的位置等关于源信号的先验知识,以及观测点的位置、混合环境的信息等关于混合环境的先验知识未知,需要仅从观测信号中进行分离。

随着计算机、互联网、移动互联网、物联网的发展,人们所常用的智能设备也在从过去的电脑、手机,向着更多样化、小型化、可穿戴的方向发展。过去基于键盘鼠标、遥控器等单一的人机交互方式已经不能满足日益多样化的智能设备的需求。语音是人与人之间交互的最自然的方式,所以也必然会成为未来最有效的人机交互方式之一。

然而,在典型的远讲语音交互场景中,除了目标说话人的语音外,通常还存在设备回声、非目标说话人的语音、外界噪声干扰、房间混响等多种不利声学因素的影响。所以,需要一个音频前端(Front-End)来对智能设备采集到的原始音频信号进行增强,提高目标语音的信噪比,以达到提高语音唤醒成功率、识别准确率,提高人机语音交互效率的目的。远讲语音交互场景就是一种典型的“鸡尾酒会问题”,各种不利声学因素可以看作是“鸡尾酒会”上的各种噪声和干扰。所以,可以使用盲源分离技术对设备回声、干扰噪声、房间混响等分别进行处理,最后得到分离后的语音信号,达到语音增强的目的,而“盲源”的特性使得基于盲源分离技术的音频前端具有使用更加灵活,语音增强效果较好等优点。

image.png

使用盲源分离技术实现语音分离的基本原理如下图所示:假设环境中一共有两个声源,两个麦克风,若声源和麦克风的位置在一段时间内是相对稳定的,则两个麦克风在各个时刻观测得到的数据就可以看作是二维平面上的点x,点x由向量a1和a2经过某个尺度缩放并叠加而成。向量a1和a2叫做导向向量(Steering Vector),分别建模了两个源信号的传播路径信息,所以,x是两个声源混合后的结果。而分离的过程就相当于求向量b1和b2,使得b1和a2正交,而b2和a1正交,所以b1和b2分别和x做内积的话,由于正交性消掉了另一个声源的信息,从而实现了声源的分离。

image.png

在实际应用中,只有观测信号x是已知的,源信号和信道信息a1,a2都未知。为了能从有限的条件中求出b1与b2,必须对当前问题做进一步的假设和限定。其中最常用的一种假设即独立性假设:由于不同的源信号是不同的物理过程产生的,所以可以假设各个源之间是相互独立的。将各个源信号看成是相互独立的随机过程所产生的随机变量,根据概率论中的“中心极限定理”:多个相互独立的随机变量相互叠加,其结果越趋近于高斯分布。所以观测信号比源信号就更趋近于高斯分布,而分离的过程就是不断调整b1和b2,使得输出信号的非高斯性,以及各个输出分量的独立性达到最大的过程。这类与独立性为前提的方法也叫做独立成分分析(Independent Component Analysis, ICA),是最典型的盲源分离方法之一。使用盲源分离技术进行噪声抑制,最大的好处就在于其“盲源”的特性,即不需要对声源位置及麦克风阵列拓扑结构做过多的要求就可以实现对声源的分离,所以极大的拓宽了该技术的应用场景。

为了实现更好的人机/人人交互体验,智能设备上通常同时装有麦克风阵列和扬声器,设备既可以录音,也可以放音。所以,智能设备自己播放的声音将被其自身的麦克风采集到,即我们通常说的声学回声(Acoustic Echo),而回声消除(Acoustic Echo Cancellation, AEC)技术通常用于抑制回声,减小其对有用信号造成的影响。传统的回声消除算法,例如NLMS(Normalized Least Mean Square),其信号模型一般建立在单讲模型(即只有回声或将近端信号建模为高斯噪声的情形)之上,并结合梯度下降法在单讲段进行更新。对于双讲情况(即近端语音和回声同时出现),为了防止有用的近端语音被抑制,通常采用的方法是暂停滤波器更新或者减小迭代步长以放慢更新速度。

对于回声消除问题,如果将回声信号也看成是一种噪声的话,观测信号相当于是有用的近端语音与需要抑制的回声信号的混合,而近端语音和回声路径未知。所以,回声消除问题也满足盲源分离的信号模型,所以也可以用盲源分离的相关技术进行求解。与传统方法相比,基于盲源分离的回声消除方法其最大的优点就在于盲源分离模型本身就是一个双讲模型,在模型中对近端信号有着明确建模,所以该方法在双讲段,甚至持续双讲场景中也能具有较好的表现。另外,传统回声消除所使用的梯度下降法中,迭代步长是一个非常关键的参数,步长过大时收敛速度快,但是容易造成迭代发散或在最优点处振荡,而步长过小时迭代稳定,但收敛速度慢。在实际应用中很难使得算法稳定性和收敛速度都同时达到最优。而基于盲源分离的回声消除方法中没有迭代步长参数,同时保证了算法稳定性和收敛速度。去混响与回声消除技术非常类似,如果将延时后的麦克风信号看作是参考信号,则可以套用回声消除的框架来进行处理。

本文中所介绍的噪声抑制、回声消除、去混响技术统一到了基于盲源分离技术的理论框架中,并且在智能电视、投影仪、会议室智能面板等项目的音频前端系统中都用应用。典型设备端的音频系统如下图所示,其中主要分为前端和唤醒两个大模块。前端模块主要负责语音增强,该模块输出增强和分离后的多通道音频,而唤醒模块主要负责根据唤醒词判断是否有人在发起交互,并选择目标说话人的信号送给后续的语音识别。基于盲源分离技术的前端信号处理框架中,“盲源”的特性使得该技术在作为音频前端中的噪声抑制模块使用时具有对麦克风阵列结构和说话人位置限制较少的优点。而对于回声消除来说,该方法的好处在于其信号模型本身就属于双讲模型,所以对双讲场景,甚至是持续双讲场景具有对近端语音造成的失真较小,并且收敛速度快的优点。

image.png

智能语音产品官网链接:
https://ai.aliyun.com/nls

image.png


本文转自网络,原文链接:https://developer.aliyun.com/article/785176

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 【技术揭秘】解决“鸡尾酒会问题”的利

    【技术揭秘】解决“鸡尾酒会问题”的利

  • 【技术揭秘】解锁声纹技术中的说话人日

    【技术揭秘】解锁声纹技术中的说话人日

  • 【技术揭秘】可控时延语音识别文本后处

    【技术揭秘】可控时延语音识别文本后处

  • 【技术揭秘】高性能粤语语音识别模型构

    【技术揭秘】高性能粤语语音识别模型构

腾讯云代理商
海外云服务器