首页 > 编程知识 正文

2021金鹏科技论坛官网(深度融合探索成果奖)

时间:2023-05-05 08:28:27 阅读:80500 作者:2585

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

活动邀请了硬技术领域的技术专家和咨询专家进行了技术探索、财税政策、投研共享、行业发展等多维度、全面深入的解读。

目的是为遭受疫情“黑天鹅”后,再次踏上征程的创新创业者们提供新行业的思考和内容共享。

第十八期评论

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

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

(以下是共享内容的整理)

你好。 感谢您在百忙之中参加今天的技术分享会。 我来自深圳美唐科技有限公司技术市场部的dddls,目前负责本公司的技术与市场的对接,也是客户与公司研发的桥梁。 同时,我将重点关注语音对话领域的市场变化和技术发展,为我们的产品开发提供一些方案和方向参考。

今天和大家分享的是语音交互中最先进最基本的技术之一——语音噪声消除和语音增强技术。 说到噪声消除和强调,一定存在噪声。 那么,我们怎么定义噪音呢? 其实对音响来说,我们需要的信号以外的干扰信号基本上被定义为噪声。 不管是从周围环境引入的,还是从传输介质引入的,我们不想听到的声音都被认为是噪音。

在我们的统计模型中,第一个噪声是周期性噪声。 例如,工频60赫兹是电网60赫兹的噪声; GSM通信中的TDD噪声; 我们听到的警报音也是周期性的噪音。 这些干扰的表现主要在于较离散的较窄的窄带干扰。

第二个噪声是宽带噪声。 宽带噪声的特点是频带特别宽,可以覆盖绝大多数人耳能听到的语音频带。 例如白噪声、雪片噪声,就像没有调频或者没有电视时的白噪声和其他有色噪声一样。

第三种噪声是加法性或乘法性噪声。 对加性噪声来说,这通常是热噪声,是系统中已经存在的噪声——,无论有无信号,都存在。 另一种是乘法噪声,这是由于信道的不理想,或者内部信号的互调噪声是乘法噪声; 有信号时出现,但没有信号时不出现。 第四种噪声是冲击噪声,如汽车点火的火花音、放电噪声等。 通常,冲击噪声可以是声冲击噪声或引入到电路中的冲击噪声,这些是信号处理上的几种方法。 但是,在实际生活中听到的基本上是各场景中听到的噪声。 例如,公共场所、车站、地铁、办公室里的各种噪声和工厂的工业噪声、路边的交通噪声、建筑工地上的各种机械噪声等等,其实这些都是我们统计模型中的噪声混合和叠加。

那么,处理这些噪声有什么方法? 一般来说,周期性噪声使用几个滤波器进行语音处理。 例如,使用几个固定滤波器和自适应滤波器在频域中进行一定的处理。 这是我们所说的噪声的定义和方案的分类。

让我们来看一个小视频。 这是我们产品在车内的负载测试。 (播放视频)这是我们的产品之一在样品阶段的负载测试。 车里的噪音是发动机噪音、车轮与地面摩擦的轮胎噪音、路边其他车辆的噪音、车内的空调噪音、开窗时的大风噪、甚至车内的音乐等各种噪音叠加的结果,对我们的设备来说也是噪音。 只有声音命令是设备想捕捉的信号。 因此,在这样复杂的环境中,需要一定的语音处理能力、一定的语音增强技术来提高产品语音输入的清晰度,提高产品的用户体验满意度。

那么,在提高语音的理解度和质量方面,可以应用什么样的噪声消除技术呢?

总的来说,语音增强技术包括三种应用手段。 第一个是消除声音引起的混响。 混响存在于所有的空间环境中。 类似于通信中的多路径干扰。 也就是说,信号从不同的传播方向和传播路径到达麦克风。 所以,车内和会议室都有很大的语音室。 其中,由于说话人的声音在环境中来回的反射

同一个声音在不同的时间到达麦克风,从而产生混响。因此,语音处理的时候很大一部分工作是需要先把混响解决掉、把多径效应解决掉。第二种是语音降噪。这个主要是去除来源于各种环境里的和不被需要的人的噪声干扰。第三种是语音分离。它能分离出来源于其他说话人或者外界音源的声音信号,通过去除噪声或者非目标人声来提高语音的质量。语音增强和降噪技术其实现实生活中已经有了很广泛的应用,比如说电话的远端降噪、语音识别或者助听器的降噪等等。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。