(ICASSP 19)Hotword Cleaner: Dual-microphone Adaptive Noise Cancellation with Deferred Filter Coeffic

本文主要是介绍(ICASSP 19)Hotword Cleaner: Dual-microphone Adaptive Noise Cancellation with Deferred Filter Coeffic,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

会议:ICASSP 2019
论文:Hotword Cleaner: Dual-microphone Adaptive Noise Cancellation with Deferred Filter Coefficients for Robust Keyword Spotting
作者:Yiteng Arden Huang ; Turaj Z. Shabestary ; Alexander Gruenstein

ABSTRACT

本文提出了一种新颖的双麦克风语音增强算法,以提高热词(唤醒词)检测的噪声鲁棒性,作为关键字点播的一种特殊应用。它利用了热词的两个独特属性:它们是我们打算响应的有效语音查询的主要短语,并且持续时间短。因此,提出了一种基于STFT的自适应噪声消除方法,该方法经过修改以使用延迟滤波器系数,以从嘈杂的立体声麦克风信号中提取热词。新算法通过两个截然不同的神经词检测器进行了测试。当背景具有强烈的电视噪声时,这两种系统都大大降低了误剔除率。

CONCLUSIONS

在本文中,我们提出了一种双麦克风语音增强算法,代号为热词清除器,用于在嘈杂的环境中进行健壮的热词检测。它利用了与热词相关的两个独特属性:热词始终是有效语音查询中的主要短语,而热词的持续时间较短。因此,提出了一种基于STFT的具有递延滤波器系数的自适应噪声消除算法,以从嘈杂的立体声麦克风信号中提取热词。使用两个具有截然不同的架构的检测器测试了热字清洁器:CNN和E2E。在这两种情况下,相对于重新录制的带有强烈电视背景噪声的话语,清洁器都将FR率降低了66%以上。

INTRODUCTION

启用语音的界面不再是未来主义者的猜测。最近,它们已经发展成为战略解决方案,以增强用户体验和新的商机,例如Google Assistant和Amazon Alexa。这些解决方案都旨在通过使用关键字搜寻(KWS)方法来控制语音输入来提供完全的免提交互。KWS算法连续监视音频流中的预设短语(即诸如“ Ok / Hey Google”和“ Alexa”之类的关键字),并在检测到语音时启动语音识别和理解功能。

KWS系统运行在诸如移动电话或智能扬声器之类的客户端设备上,因此至关重要的是,它们必须以低延迟,小内存和计算资源运行。基于早期动态时间规整(DTW)的模板匹配方法在满足这些前提条件方面存在一些困难,并且其性能也很差[1],[2]。隐马尔可夫模型(HMM)的出现使KWS成为越来越受欢迎的研究主题[3],[4],[5]和[6]。迄今为止,该领域最令人兴奋的进步是由深度学习和大数据推动的[7]。据报道,许多成功的系统都建立在各种神经网络(NN)结构上,包括深度神经网络(DNN)[8],卷积神经网络(CNN)[9],深度残差网络(ResNet)[10],递归神经网络(RNN)[11],[12],长短时记忆(LSTM)[13],[14]。

语音助手必须在广泛的声学条件下可用。多样式训练(MTR)对于消除远场失真和中度非语音噪声非常有用[15]。但是类似语音的干扰(例如电视噪声)仍然是一个具有挑战性的问题。我们还研究了许多波束成形和多通道维纳滤波算法。尽管有帮助,但仅用两个麦克风组成的小阵列,它们只能产生很小的改善。值得注意的是,使用所谓的关键词筛[16]获得了一些有希望的结果。这种新方法通过自上而下的机制对KWS系统进行了补充,从而实现了选择性关注(又称为鸡尾酒会效应[17])可以被模仿。但是筛选器需要连续两次运行KWS分类器,这可能会增加延迟和CPU使用率。此外,还必须通过实验来调整附加参数,即激活筛选器的阈值,并且不可能有一个适合所有信噪比(SNR)的值。

在本文中,我们将热词检测(Google的唤醒词检测术语)作为KWS的特殊应用。KWS被认为是一种更通用的任务,其中关键字可以在任何地方的任何时间出现,而在检测到热门单词时,热门单词始终位于语音查询之前。通过利用这种独特的属性,我们开发了另一种有效而简单得多的语音增强算法,用于在具有两个麦克风的设备上进行单词检测。

HOTWORD CLEANER

当我们使用相距一小段距离的两个麦克风来捕获来自周围扬声器和环境噪声源的声音时,两个麦克风信号是一致的。如果像在自适应噪声消除(ANC)中那样,将自适应滤波器应用于一个麦克风信号,并从另一麦克风信号中减去结果,则为[18],残留误差的幅度较小。但这不可避免地消除了噪音,也消除了语音。由于语音和噪声信号可能在两个麦克风处保持不同的相干性,因此一种用于消除噪声的有用的自适应滤波器是仅补偿噪声相干性的一种。这就需要一种机制来监督自适应滤波的操作:理想情况下,应该在语音不存在时执行自适应,否则必须停止。关键字筛选器[16]依靠神经KWS分类器来计算这种语音/噪声掩码。在本文中,我们提出了一种完全基于信号处理的简单替代方案,即单词清除器。

热词清理器进行以下两个假设:

1、一个热词是领先的一个有效的语音查询的词组,这意味着立即启动指令之前的短段不包含从启动指令扬声器,但只有噪音或其他竞争演讲者的演讲。

2、快捷字的持续时间很短,通常少于1 s。

如图1所示,清洁器由两个处理层组成,一个处理层在另一个处理层之上。底层的工作方式类似于传统的ANC系统,该系统反复调整滤波器系数,以最小化两个麦克风信号之间的预测误差e(n)的均方根。但是,我们不将e(n)作为清洁器的输出。底层将估计的滤波器系数保存到先进先出(FIFO)缓冲区中。在顶层,缓冲输出是一组具有d帧延迟的滤波器系数,用于处理两个麦克风信号并产生清除后的信号输出ε(n)。
在这里插入图片描述
让我们简要解释为什么清洁器能够实现语音增强的目标。在热门单词的前沿,用于顶层的滤波器系数是在当前时间之前的d帧中估计的,根据上述第一个假设,说热门单词的人还没有说话。这意味着滤波器系数无法补偿两个麦克风之间的热词连贯性,因此只有噪声被消除,而热词仍保留在清洁器的输出中。由于第二个假设我们上面做,因为启动字词通常很短,这是直接的选择一个值d这样的时间跨度d帧几乎总是大于热词的持续时间。结果,即使到了到达字尾的时间,从缓冲区弹出的系数也不会受到字尾的影响,也不会发生信号消除。

与关键字筛选器类似,清洁器的重要设计参数是d,即滤波器系数的缓冲区长度。如果d远小于热词的长度,则清洁器输出处的许多经过过滤的热词样本将在其尾部周围经历严重的信号消除,导致识别其最后几部手机的信心不足。但是,相反,如果d太大,则跨麦克风噪声的相干性可能会在这段时间内发生显着变化。使用延迟的滤波器系数只能降低噪声。在我们检测“ Ok Google”和“ Hey Google”的研究中,将d设置为等效延迟为768 ms的值。

FAST-RLS WITH DEFERRED FILTER COEFFICIENTS

一般而言,可以修改任何自适应滤波器以允许延迟的滤波器系数。作为示例,表1中呈现我们到傅立叶变换(STFT)域的快速递归最小二乘(RLS)算法在短时间进行的修改(见比较表1的[16] )。由于我们遵循了[16]中的相同符号,因此为了简洁起见,此处不再重复变量的详细定义。
在这里插入图片描述

NEURAL DETECTORS

众所周知,语音增强算法在改善SNR的同时会引入失真。一些热词检测器可能比其他检测器对语音失真更敏感。因此,我们用两个具有截然不同的架构的检测器测试了所提出的单词清理器。它们具有相同的前端特征提取器,但声学模型(AM)和解码​​器不同。在第一个检测器中,AM由CNN完成,并且解码器仅搜索热字的音素序列的最佳路径。第二个检测器具有端到端(E2E)结构,并将NN用于AM和解码器[19]。

为了进行特征提取,首先将单通道音频信号分割为25 ms长的帧,跳数为10 ms。对于每帧,使用每通道能量归一化(PCEN)计算并归一化40通道对数-mel-滤波器组能量(LMFBE)[20]。
在这里插入图片描述
CNN模型将堆叠的LMFBE特征向量作为输入,具有24个左上下文框架和15个右上下文框架。卷积层在时间和频率上扫描了92个不重叠的8×8个色块,并生成92×(40/8)×(40/8)= 2300个输出。以下三个隐藏层是具有整流线性单元(ReLU)的完全连接的密集层,并产生512个输出。最后一层也是致密层,但是激活函数是softmax。输出是7个电话类别的后验概率(“ Ok / Hey Google”中有6个电话,其他包括沉默)。

E2E模型以流模式运行。其输入特征向量仅包含3个LMFBE帧以及1个左上下文帧和1个右上下文帧。为了使模型更小,部署了SVDF层[21]。AM NN包含4个这样的层,每个层之后是具有线性激活功能的瓶颈层。最后一个AM层还输出7个电话类别的后验概率。解码器NN具有3个SVDF层,但没有瓶颈层。最后一层是密集层,使用softmax产生找到热门单词的后验概率。注意,两个神经网络是连续训练的,而不是联合训练的[19]。

表2给出了CNN和E2E模型在大小和算术复杂度方面的比较:E2E模型比CNN模型小5倍以上,快11倍。

SYSTEM INTEGRATION STRATEGIES

对于两麦克风音频系统,如果可以分别对每个麦克风信号执行热词检测,则就像要求两个听众共同监视相同的声场:如果有任何一个听众识别出一个热词,则认为该词被识别。这种方法可以减少错误拒绝(FR),但也可以增加错误接受(FA)。因此,一对大致相同精度并共同工作的检测器可能不会明显优于每个检测器。但是,如果他们拥有多样化但互补的优势/劣势,我们可以从深思熟虑的整合策略中受益。

图2描绘了用于更清洁的系统集成的三种策略。的基线策略是两个麦克风系统,其计算逻辑或每个输入音频信道的两个独立的启动指令检测结果。“ 仅清除程序”策略仅在清除程序输出上运行检测。最后,混合策略对清除后的音频和原始音频的一个通道进行逻辑或热词检测。
在这里插入图片描述
尽管仅清洁器策略通常是语音增强算法的应用方式,但混合策略有一个关键优势:延迟。应用清理器会大大增加128 ms(STFT窗口大小)的音频流的延迟。在“ 仅清除程序”策略中,所有热门单词检测都将遭受这种增加的延迟。但是,在混合策略中,如果热字检测器在未清洗的音频通道上触发,则不需要任何额外的延迟。因此,热词清除器将仅在没有热词检测失败的话语上增加检测延迟。混合策略的第二个优势是用户在说出热门词之前先进行交谈的特殊情况。在这种情况下,热字检测很可能在已清除的通道上失败,但在未清除的通道上成功。

另一方面,仅使用清理程序的方法的潜在优点是:(1)清理程序可以减少由于诸如电视之类的噪声源而引起的误报,以及(2)仅运行单个单词检测程序。

EXPERIMENTS

6.1. Experimental Setup
我们使用真实的重新记录数据来评估建议的单词清理器。实验设置类似于[16]中描述的设置,但是该研究包括具有较长前同步码的更大数据集。由于空间的限制,阳性数据集仅考虑两个条件:远场清洁和背景中的电视噪声。负数据集由录制在远场Google Home上的电视音频组成。表3汇总了数据。

再次,使用Google的TensorFlow™库实现了神经网络[22],并通过深度学习算法对日志进行了训练,并从具有各种口音的志愿者中收集了性别均衡的数据[23]。
在这里插入图片描述
在本文中,我们为热字清除程序使用了以下参数:16 kHz采样率,具有50%重叠的128 ms窗口,d = 12,L = 3,λ = 0.993和δ = 0.1。对于关键字筛选器,参数与[16]中使用的参数相同–特别是将近触发阈值设置为NN模型阈值的1%。

6.2. Cleaned Sample Utterance
首先,我们想介绍一下由热词清洁器处理的样本话语,以使读者直观地了解清洁器如何帮助消除背景电视噪声。如图3(a)和(b)所示,发声持续了16秒,并且被电视噪声严重污染。该热词出现在8.5 s左右,输入SNR约为0 dB。图3(c)绘制了清除后的信号。简单地通过视觉检查,很明显,热门单词已经脱颖而出,并且输出SNR大大提高了。有趣的是,吸尘器跟随声学场景变化大约1.5 s的延迟。

6.3. Receiver Operating Curves (ROCs)
对于热门单词检测,最有用的性能度量是ROC,它可以将FR率(每个实例的FR数)可视化为FA率(每小时的FA数)的函数。图4给出了5个测试系统的ROC。基线在图2(a)所描述的之后。仅清洁器和仅过滤器系统遵循图2(b)的策略。清洁混合动力系统和筛混合动力系统遵循图2(c)的策略。在远场清理数据集上,无论使用和不使用hotword清理器,这两个模型的性能均相当。但是,清洁器显着降低了电视噪声数据集上的帧频率:在固定阈值的工作点上,两种型号的帧频相对提高了66%。在这些实验中,清洁器的性能也优于关键字过滤器。在这些数据集上,使用混合策略而不是仅使用清洁器的策略所导致的性能下降只是微不足道的。

这篇关于(ICASSP 19)Hotword Cleaner: Dual-microphone Adaptive Noise Cancellation with Deferred Filter Coeffic的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/206056

相关文章

react笔记 8-19 事件对象、获取dom元素、双向绑定

1、事件对象event 通过事件的event对象获取它的dom元素 run=(event)=>{event.target.style="background:yellowgreen" //event的父级为他本身event.target.getAttribute("aid") //这样便获取到了它的自定义属性aid}render() {return (<div><h2>{

Deferred shading技术简介

参考文章:http://blog.sina.com.cn/s/blog_458f871201017i06.html Deferred shading是这样一种技术:将光照/渲染计算推迟到第二步进行计算。我们这样做的目的是为了避免多次(超过1次)渲染同一个像素。 其基本思想如下: 1、在第一步中,我们渲染场景,但是与通常情况下应用反射模型计算片断颜色不同的是,我们只是简单的将几何信息(位置

Hbase Filter+Scan 查询效率优化

Hbase Filter+Scan 查询效率问题 众所周知,Hbase利用filter过滤器查询时候会进行全表扫描,查询效率低下,如果没有二级索引,在项目中很多情况需要利用filter,下面针对这种情况尝试了几种优化的方案,仅供参考,欢迎交流。 根据业务要求,作者需要根据时间范围搜索所需要的数据,所以作者设计的rowKey是以时间戳为起始字符串的。 正确尝试: 1.scan 设置 开始行和结

Filter基本原理和使用

https://www.cnblogs.com/xdp-gacl/p/3948353.html 一、Filter简介   Filter也称之为过滤器,它是Servlet技术中最激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控

系统架构师考试学习笔记第三篇——架构设计高级知识(19)嵌入式系统架构设计理论与实践

本章考点:         第19课时主要学习嵌入式系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分)。在历年考试中,案例题对该部分内容都有固定考查,综合知识选择题目中有固定分值的考查。本课时内容侧重于对知识点的记忆、理解和应用,按照以往的出题规律,嵌入式系统架构设计基础知识点基本来源于教材内。本课时知识架构如图19.1所示。 一、嵌入式系统发展历程

C++笔记19•数据结构:红黑树(RBTree)•

红黑树 1.简介:         红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或 Black。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路 径会比其他路径长出俩倍,因而是接近平衡的。 当搜索二叉树退化为单支树时,搜索效率极低,为了使搜索效率高,建立平衡搜索二叉树就需要"平衡树"来解决。上一篇博客介绍了AVL树,这

在UE的内容浏览器中添加自定义的Filter

目标需求 在UE的内容浏览器中,可以使用Filter来过滤资源: 目标需求是在这之中添加一个自定义的Filter。 其代码上是非常简单的,在本文末尾。 然而我觉得找到方法的过程也是挺有意思的,因此我也记录了下来。 探索过程 1. 在哪定义? 首先,我猜测Other Filters下的各个项目,也都是通过代码添加的。因此,我调了其中一项,比如Show Redirectors,然后对代码进

Flink实例(六十八):布隆过滤器(Bloom Filter)的原理和实现

什么情况下需要布隆过滤器? 先来看几个比较常见的例子 字处理软件中,需要检查一个英语单词是否拼写正确在 FBI,一个嫌疑人的名字是否已经在嫌疑名单上在网络爬虫里,一个网址是否被访问过yahoo, gmail等邮箱垃圾邮件过滤功能 这几个例子有一个共同的特点: 如何判断一个元素是否存在一个集合中? 常规思路 数组链表树、平衡二叉树、TrieMap (红黑树)哈希表 虽然上面描述的

ModuleNotFoundError: No module named ‘diffusers.models.dual_transformer_2d‘解决方法

Python应用运行报错,部分错误信息如下: Traceback (most recent call last): File “\pipelines_ootd\unet_vton_2d_blocks.py”, line 29, in from diffusers.models.dual_transformer_2d import DualTransformer2DModel ModuleNotF

张飞硬件11~19-电容篇笔记

电容作用 作为源,对后级电路提供能量,对源进行充电。简单讲就是放电和充电。在电路设计中,源往往与负载相隔很远,增加电容就可以起到稳定作用。电容两端的电压不能激变,增加电容可以稳定电压。 电容可以类比为水坝,来让水保持一个供给量稳定。 提供能量时容量要偏大 滤波时容量要偏小 电容特性 电容的电场相吸,正负极电子增多,电场的形成就越快越强大。 相等电量(q)电容越大,则电压值