语音增强研究历程(安创芯视野18期回顾语音增强技术工程挑战)

语音增强研究历程(安创芯视野18期回顾语音增强技术工程挑战)(1)

《安创“芯”视野》是由安创加速器开设的系列线上直播品牌活动。

活动邀请了硬科技领域技术大咖和咨询专家,围绕技术探索、财税政策、投研分享、行业发展等多维度、全方面进行深度解读。

旨在为遭遇疫情“黑天鹅”之后再度踏上征程的创新创业者们,提供新的行业思考和内容分享。

语音增强研究历程(安创芯视野18期回顾语音增强技术工程挑战)(2)

第十八期回顾

现实生活中,语音不可避免会受到各种干扰,从而使语音质量下降,通信质量受到很大的影响。为能提高语音质量,就产生了各种解决噪声污染的方法,其中一种有效的方法就是语音增强。它的首要目标就是接收端尽可能从带噪语音信号中提取出纯净的语音信号,改善其质量。

《安创“芯”视野》第18期邀请Sugr 深圳米唐科技有限公司技术市场总监李海进,他将从语音增强技术工程挑战、方案及案例解析等方面,为我们解读语音增强技术的发展现状。

(以下是分享内容整理)

大家好,感谢大家在忙碌的工作中抽出时间来参加今天的技术分享会。我是来自深圳米唐科技有限公司的技术市场部的李海进,目前负责我们公司的技术和市场对接工作,也是客户和公司研发的桥梁。同时,我也重点关注语音交互领域的市场变化和技术发展,为我们公司的产品开发提供一些方案和方向的参考。

今天我准备和大家分享的是语音交互里最前端也是最基本的一个技术:语音降噪和语音增强技术。说到降噪和增强,就一定存在噪声,那我们是怎么定义噪声的呢?其实对音频来说,我们所需要的信号以外的干扰信号基本都定义为噪声。不管是周围环境引入的或者是传输介质引入的,我们不希望听到的声音都可以认为是噪声。

语音增强研究历程(安创芯视野18期回顾语音增强技术工程挑战)(3)

在我们统计模型上,第一种噪声是周期性噪声。比如,工频60赫兹是电网60赫兹的噪声;GSM通信里的 TDD Noise(时分双工的传导或者辐射的217Hz的噪声);还有我们听到的警报声也都属于周期性噪声。这些干扰的表现主要在于有比较离散的比较窄的窄频干扰。

第二种噪声是宽带噪声。宽带噪声的特点是频带特别宽,基本可以覆盖到大部分我们人耳可听的语音频带。比如说白噪声、雪花噪声,就像 FM没台或者电视没台时的白噪声或者其它有色噪声。

第三种噪声是加性或乘性噪声。对加性噪声来说,这一般都是热噪声,是系统里本身就已经存在的一种噪声——不管信号在不在,它都会在。另外一种是乘性噪声,它是由信道的不理想引起的,或者说内部信号的互调(intermodulation)噪声就是乘性噪声;表现在有信号时它就会出现,没信号时就不会出现。第四种噪声是冲击噪声,比如汽车点火的火花声、放电噪声等。一般来说,冲击噪声可以是声学的冲击噪声也可以是电路引入的冲击噪声,这些都是信号处理上的一些分法。但是,实际生活中听到的基本上是在各个场景所听到的噪声。比如说公共场所、车站、地铁、办公室里的各种各样的噪声以及工厂的工业噪声、路边的交通噪声、建筑工地的各种机械噪声等等,其实这些都是我们统计模型里面的噪声的混合和叠加。

那对于这些噪声的处理我们有哪些方法呢?一般来说,周期性的噪声都会用一些滤波器来做声音处理,比如采用一些固定的滤波器或者自适应的滤波器在频域上做一定的处理。这个是我们所说的噪声的定义和方案分类。

我们来看一个小视频,这是我们一个产品在车内的路测。(播放视频)这是我们其中一个产品在样品阶段的路测。车里的噪声是各种噪声叠加的结果,比如说发动机噪声、车轮和地面摩擦的胎噪、路边其它车辆的噪声、车内的空调噪声以及开窗时较大的风噪,甚至是车内的音乐,对于我们的设备来说都是噪声。唯有语音指令才是设备想要捕捉的信号。所以,在这么复杂的环境里我们是需要一定的语音处理能力、一定的语音增强技术来去增强产品声音输入的清晰度,从而提高产品的用户体验满意度。

那么,在提高语音的可懂程度和质量方面,我们有哪些降噪技术可以应用呢?

语音增强研究历程(安创芯视野18期回顾语音增强技术工程挑战)(4)

总的来说,语音增强技术包括了3种应用手段。第一种是语音解混响。混响存在于所有的空间环境里。它类似于在通讯里的多径干扰,也就是说信号会从不同的传播方向和传播路径到达麦克风。所以,车内和会议室里就是一个大的语音腔体。在里面,说话人的声音会通过环境来回的反射使得同一个声音在不同的时间到达麦克风,从而产生混响。因此,语音处理的时候很大一部分工作是需要先把混响解决掉、把多径效应解决掉。第二种是语音降噪。这个主要是去除来源于各种环境里的和不被需要的人的噪声干扰。第三种是语音分离。它能分离出来源于其他说话人或者外界音源的声音信号,通过去除噪声或者非目标人声来提高语音的质量。语音增强和降噪技术其实现实生活中已经有了很广泛的应用,比如说电话的远端降噪、语音识别或者助听器的降噪等等。

那语音降噪和增强技术又有哪些主流的处理方式呢?

其实统归下来有4种。前面两种都是比较传统的过滤技术。过滤技术可以分为三个基本类别:一种是频谱差减法,第二种是维纳滤波(这是滤波中的一种,统归为滤波),第三种是模型化。频谱差减法,又叫谱减法,主要是将估计的噪声功率谱从嘈杂的语音中减去。这种方式比较简单,一般来说是在假设语音信号和噪声信号是独立统计的且服从特定的数学分配的前提上开展的。另外一种是维纳滤波,是统归为一种滤波的处理方式,会从语谱里滤除一些特定频谱的噪声。信号子空间的方法也是假设干净的信号子空间和噪声的信号子空间是正交的,但是这种正交的假设在实际情况中是比较少见的。实际情况主要是在短期的冲击噪声处理上,这样一来,信号子空间方法的处理效果就没那么好了。这些方法都能提高语音的信噪比,相对于稳态噪声的抑制会比较好。因为它的假设和数学模型是建立在比较稳定的噪声上,所以对稳态的噪声抑制是比较好的;但是对于非稳态的噪声它的处理效果就稍差,也容易引起语音信号的失真,从而影响整个语音信号的质量和可懂度。

此外,语音增强还会根据语音输入通道的不同分为单通道和多通道。多通道语音输入就是我们常说的麦克风阵列,即用麦风阵列的方法做语音增强和降噪。麦克风阵列是通过麦克风不同的结构排列来捕获语音的空间信息,并通过这些信息去估计一些参数以及提取我们感兴趣的信号。 其实这套理论在天线上应用得特别广泛,像军事飞机上的有源相控阵雷达、民用的多天线的路由器以及4g/5g通信站的天线阵列等。但是,实际上在麦克风阵列里遇到的问题会更复杂一些。因为通信网络里的阵列都是基于一些窄带信号做的阵列,但是麦克风是一个宽带的信号,而且室内产生的混响也都比普通环境里的要高,环境和信号都是非稳态的,所以噪声可能和期望的信号具有相同的空间谱特性,要是做分离的话相同的特性就不太好分离出来。跟单麦克风的语音增强算法不同的是,运用麦克风阵列是要在保证信号不失真的情况下尽可能地衰减噪声信号。麦克风阵列在处理时会采用我们经常听到的波束成形技术让阵列指定一个方向去衰减其它方向的噪声。还有一种就是独立的成分分析,也就是我们常说的盲源分离。波束成形又分成好几种类型:固定的波束成形、自适应的波束成形等等。这里就不单独解释这些具体的处理技术了。

我们重点讲的是第4种技术,即语音模型。这是近年来特别火的一种技术,是深度学习方法在增强技术上的应用。其实深度学习最主要的一种处理方式就是会将声音分帧,然后加窗,再做傅立叶变换,然后再做Mel滤波得到Mel频谱就是我们想分离的语音型号。它的核心是输入使用场景上的噪声模型,然后通过深度学习算法来训练这些噪声以此来区别噪声信号和语音信号,做到两种信号的最大相干性的分离。核心是通过深度神经网络的 training来分离有用信号和噪声信号。

传统的降噪技术从信号本身出发的话,音频处理其实就是挖掘它的时频特性。这是传统的降噪算法和语音增强算法所做的,即通过挖掘它的时频特性,然后做出假设和建立物理模型。这种情况下,很多参数都需要人工进行精细化地微调,比较费时费力。而深度神经网络通过机器学习的方式来提取这些参数并进行微调和优化,这很大程度上减少了人力。其实神经网络和深度学习方法可以抛开以前传统的理论模型的语音信号处理,用真实的录音数据去训练我们的神经网络,让神经网络自己找出真实语音和真实噪音的区别。只要训练数据有很好的代表性和多样性且训练方法恰当,训练出来的神经网络就可以更准确地区分语音信号和噪音信号,从而实现分离和增强语音。以上就是信号处理时采用的主流降噪技术的简单介绍。

当然,算法虽然很好,但是在整个产品落地过程中我们还会面临一系列的挑战。第一种是工程到产品的挑战,例如算法在工程上的实时性。很多算法是很好,可是它的处理时间比较长,这会导致用户在工程上会体验到一定的延时,比如我说完话后要等一段时间才能听得到你说的话。这就是算法处理的实时性。在普通的通话算法上,我们的要求是高实时性,比如要求小于20毫秒的处理延迟或者小于4~5毫秒的传输延迟等等。另外一种挑战是算法仿真和工程实现上效果的差异。通常情况下,我们在开发算法的时候首先注重的是它的性能,但同时就会容易忽略在运算量和运算资源上的要求。所以仿真平台上的效果跟实际产品的运行效率的差异也会造成它在结果上的一些差异。还有的挑战是算法对硬件的容错。

一般来说麦克风阵列对麦克风的各个单元有一致性的要求,特别是Beam Forming算法对麦克风的单体或麦克风阵列中的阵元是有比较高的要求的。如果使用过程中器件性能下降或者不恰当地使用造成某一个麦克风被堵掉,那算法上就要考虑到对硬件的一些容错,尤其是对于可移动产品,在算法选择时更需要严格考虑。最后一种挑战是产品的功耗。可移动设备对产品功耗的要求是特别高的,也就是说为了达到更长时间的续航、更好的用户体验,在产品功耗上我们就要求算法不仅能够最大程度地发挥性能又能最大程度地降低运算量来减少算法在系统中的资源消耗。这种是需要在解决功耗问题上即在硬件选择和电源管理以及算法运算量管理上下一些功夫。以上就是算法工程上的挑战。

第二种是声学结构的挑战。声学结构上的挑战分为麦克风的摆放以及麦克风的声腔设计。麦克风的摆放这个要求包括了麦克风的间距、麦克风腔体设计原则。比如说在产品里不能设计一个L型的麦克风,也不能让麦克风藏得很深。这些腔体的设计都会直接影响到麦克风的拾音频响,从而影响到整个麦克风阵列的效果。另外一个挑战是speaker 的腔体设计。speaker的腔体设计也会直接影响到输出的音效,同时也会特别影响通话的AEC效果。第三个挑战是麦克风跟speaker的隔离以及产品整体设计上的减震和气密性的设计。因为漏气或者震动都会引入一些非线性的噪声,这个会直接影响到算法处理的效果以及用户体验。

第三种挑战是工程上会面临到的一些调试和测试环境上的挑战。调试和测试环境主要指的是硬性环境。在调试过程中需要一些特殊的环境比如消声的环境去定性地分析产品中的问题,也会定义不同环境的模拟噪声来测试系统是不是能够提供很好的用户体验。对于识别来说,还有测试语料和测试统计方法上的定义的区别。对于识别算法来说,我们还需要收集特定的对应测试语料以及采用定义统计方法来统计我们的识别效果。

第四种挑战是商业规模化的挑战。任何产品如果只是作为样机或者一个特定的数学研究或者工程研究,它都是针对特定少量的样机或者产品来做优化的,这个都不是特别大的问题。我们常遇见的问题是在量产的过程中,我们要追求产品量产测试的一致性就是交付给终端用户的一致性。所以对于声学产品来说,对应的产测、环境以及检验标准都是我们所要求的,也是我们面临的挑战之一。另外一方面是算法对硬件的容错。刚才说到产品卖出去之后,如果硬件器件的性能下降,也有可能造成算法的处理效果下降。这个就会直接影响到产品的 performance,有可能会造成产品的退货。

第五种挑战来源于应用场景。产品有可能会面临多种应用场景,而不同的应用场景就会有各式各样的噪声。比如,家居环境虽然会相对安静些,但它同样会有像微波炉或者吸尘器等等这些家用电器的噪声;户外移动环境就有更多噪声了,像运动过程中可能会有的风噪、马路的交通噪声等各种各样的无法预测的噪声;再一个就是办公环境,办公环境大部分是交谈的噪声,因为这些都是语音的噪声,所以做到区别和分离也有一定的难度;以及还有交通车内环境的噪声。这些都是不同环境下我们会面对的不同噪声的挑战。

总体来说,这些环境噪声都会有一些非平稳的噪声,这给算法和工程上带来了一些挑战。针对这些挑战,我们会有哪些应对措施呢?

语音增强研究历程(安创芯视野18期回顾语音增强技术工程挑战)(5)

其实对于音频来说结构的设计是最关键的。结构的设计在音频的整个效果上是最关键的一环。结构要是设计不好,收音的频响可能会变化,播出的声音可能会有一些非线性的即无法预知的噪声,例如震动的噪声以及机器本体的可能处理不当的结构摩擦噪声等等。所以在声学结构设计上我们要遵循一定的设计法则,比如对麦克风的孔径孔深比、麦克风腔体的气密性、可能涉及到的防水防尘等方面要有一定的要求;对于喇叭腔体的气密性要做到很好的气密;对于喇叭本体的失真也都要求有很好的的频响特性。

第二个措施是算法在硬件产品上的去耦合。刚才也提到了,卖出去的产品可能会面临硬件器件的性能下降,这可能是用户的一些习惯造成了某些信号上的遮挡从而导致整体算法性能的下降,进而影响到用户最终的语音交互体验或者通话体验。我们在算法设计和硬件设计的过程中要考虑到这点,比如选择麦克风时,我们需要选择一致性比较好的而且摆放的位置尽量不是用户触摸到或紧握的位置。还有硬件的寿命即它的整个性能的衰落曲线,也是我们需要考虑的。如果麦克风使用了半个到1个月后,它的performance就降低了2~3个dB,这会对产品的质量造成致命的影响。

第三个是算法和硬件资源的平衡。其实所有产品都会有硬件资源的限制,特别是现在那种可移动的音箱或者是会议系统里的 DSP,都会有硬件资源的限制。所以,我们就需要裁剪算法或者优化算法的运算量去平衡硬件资源和算法的效果。

第四个是特定场景应用的工程化。比如,在家居环境里,可能处理的噪声会相对简单一点,算法处理上就可以做一些工程特定噪声的优化;在工业上,在特定的工厂里,比如说在切纸机等等产品上应用的话就需要针对特定的机器去消除特定的噪声。这就是特定场景上的工程优化。

其实语音降噪经历了这么多年的演变后,现在来看,未来最主要的一个趋势是传统的语音降噪处理和深度学习方法进行结合。通过这两方面的结合,我们能够看到,在未来遇见的各种非稳态噪声在各种噪声场景下都会得到很好地处理,实现语音和噪声信号的分离。

语音增强研究历程(安创芯视野18期回顾语音增强技术工程挑战)(6)

我这里准备了两个音频,分别是基于我们的循环深度神经网络来处理风噪的情况以及基于我们的 blind source的Beam Forming的处理的语音信号效果。我们先来听一下音乐场景下的噪声和语音信号。(播放音频)。这个是处理之前的效果。我们来听一下处理之后的效果。(播放音频)。通过处理前和处理后的效果比较,我们可以比较清楚地分离出人声和音乐信号。可能音乐信号在这个处理里不是特别干净,因为它是语音频谱里的一部分,已经是做了最大程度的分离。再来听一下风噪场景。(播放音频)这个是在路边的风噪的场景,噪声会比较大。

这个是经过AI算法处理风噪之后的效果。这是我们现在采用的两种主流处理方式。其实从效果上看,我们是可以很好地分离语音信号和噪声信号,所以现在成为了一种主流处理方式。

其实这里我们主要是用到深度神经网络来处理风噪,也就是说我们会先把常用的风噪信号录下来,然后再送到training网络里去训练出一个模型来,再应用到算法里去优化、去提取噪声信号、去做分离。其实在音乐的场景里,我们是做了阵列的Beam Forming,再通过盲源分离的方法把语音信号和音乐信号做分离,从而提取出有用的语音信号。

语音增强研究历程(安创芯视野18期回顾语音增强技术工程挑战)(7)

上图是Sugr算法的架构,它分成两个piple,一个是延时要求很高的通话的piple,另外一个是延迟相对较低的识别的piple。其实两个piple里都有传统的算法,也有基于神经网络的机器学习算法。

这边我们benchmark到一些市面上的产品,比如说Amazon的 Echo设备和哈曼的智能音箱设备。这两个图主要的参数是唤醒率:目前在识别上的唤醒率、在AEC场景上的唤醒率,这两种场景在Sugr的算法表现都是很优秀的。

这个是我今天主要分享的内容。 谢谢大家!


语音增强研究历程(安创芯视野18期回顾语音增强技术工程挑战)(8)

语音增强研究历程(安创芯视野18期回顾语音增强技术工程挑战)(9)

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页