一种基于深度神经网络的特定声源检测方法与系统 |
|||||||
申请号 | CN201611099733.0 | 申请日 | 2016-12-02 | 公开(公告)号 | CN106710599A | 公开(公告)日 | 2017-05-24 |
申请人 | 深圳撒哈拉数据科技有限公司; | 发明人 | 蔡钢林; | ||||
摘要 | 本 发明 一种基于 深度神经网络 的特定声源检测方法与系统,其方法包括,提取实时声音 信号 的声学特征,生成声学 特征向量 ;利用深度神经网络方法对预设 声音信号 进行训练,建立DNN训练模型;使用所述DNN训练模型对所述声学特征向量进行检测判定,采用深度神经网络技术实现对不同声源信号的建模。由于深度神经网络有着更为精确的建模能 力 ,尤其是在数据较为充分的前提下,建模的准确性更高,可以处理一些特征空间很近似的声源检测问题。本项发明采用前后时间 帧 融合特征技术,可以实现较高的单帧检测准确率,实时性高,判定延迟不会大于0.5秒,实用性强。 | ||||||
权利要求 | 1.一种基于深度神经网络的特定声源检测方法,其特征在于,包括以下步骤: |
||||||
说明书全文 | 一种基于深度神经网络的特定声源检测方法与系统技术领域背景技术[0002] 随着智能硬件的广泛普及,智能机器人、玩具等相关技术日趋成熟。语音识别、特定声源检测等相关声音信号处理技术成为智能终端迫切需要的技术方案之一。所谓特定声源检测是指利用智能终端的麦克风实时采集应用环境中的声音信号,并及时检测是否出现用户感兴趣或者关注的声源信号,并及时反馈到用户。 [0003] 不同声源发出的声信号,比如人与机器、人与宠物发出的声音在频谱结构上存在差异,甚至不同的人发出的语音信号也存在差异。目前,比较典型的声源检测、分类应用包括,声纹识别、多媒体音乐分类、基于声信号处理鸟类/动物类识别技术、婴儿啼哭检测等应用。基于机器学习的分类方法是该项应用最成熟的技术,即在一定训练样本的基础之上,可以对不同类别的声音特征进行建模,以实现不同声信号检测的目的。此外,还有一些比较特殊的应用,可以采用更为简化的实现方案,比如语音识别前端的语音活动检测(Voice Activity Detection,VAD)技术,只需要区分出语音和静音两种类别,可以基于能量的突起检测,辅以过零率等特征,实现非监督性分类。 [0004] 基于高斯混合模型(Gaussian Mixture Model,GMM)的贝叶斯分类技术,是进行特定声源检测与分类的常用技术。该方法把实时应用环境中可能拾取的各种声音信号分成若干个类别,采用GMM对各个类别进行建模。比如,相对成熟的声纹识别技,即是对不同人的语音信号采用进行建模,并基于贝叶斯分类准则实现分类与声纹验证。此外,机器学习中其他比较成熟的机器学习技术,比如支持向量机(Support Vector Machine,SVM)也可以用于声音信号的分类与检测。 [0005] 在鲁棒语音识别中常用的语音活动检测技术也可以看作是一种特定声源检测,通过实时检测能量、过零率等特征实现语音、静音的分类。其基本思路是,假设环境中只存在语音和不存在任何声信号两种场景,可以设定一个阈值,当麦克风采集的声信号能量超过一定阈值时即判定为语音。 [0006] 语音活动检测技术只能用以区分存在声音信号和静音两种场景,实际应用远比这一假设复杂,比如真实应用环境下可能同时存在各种机器的声音(电视机、音响等等),该项技术区分性太差,无法泛化至比较一般性的声源检测问题。 [0007] 现有的机器学习方法在进行声源检测这一任务时主要存在两个缺陷:第一,模型对声源类型的建模精度差,分类准确率不高。在一些声源特征空间比较近似的应用中,这一缺陷尤其明显。比如,常规的贝叶斯方法无法有效区分由人所发出的语音信号和由音箱设备发出的声音信号。第二,实时性较差。在许多应用中,需要在出现特定声信号后立即作出正确的判定,比如孩子哭叫、警报等信号。然而,现有的统计学习方法,需要对很长一段声信号进行分析和判定,造成很长的判定延迟。 发明内容[0008] 本发明的主要目的为提供一种基于深度神经网络的特定声源检测方法与系统,解决声源检测精度差,实时性差的问题。。 [0009] 本发明提出一种基于深度神经网络的特定声源检测方法,包括以下步骤: [0010] 提取实时声音信号的声学特征,生成声学特征向量; [0011] 使用DNN训练模型对所述声学特征向量进行检测判定,所述DNN训练模型是利用深度神经网络方法对预设声音信号进行训练而建立的。 [0012] 优选地,所述提取声音信号的声学特征的步骤包括: [0013] 获取实时声音信号,对所述实时声音信号进行预处理; [0015] 取所述实时声音信号之前相邻的多个声音信号的声学特征,与所述声音信号的声学特征进行融合,生成声学特征向量。 [0016] 优选地,所述获取实时声音信号,对所述实时声音信号进行预处理的步骤包括: [0018] 结合上一个数据缓冲区指定时间数据,对包含两个指定时间数据进行加窗处理。 [0019] 优选地,所述DNN训练模型的建立过程包括: [0020] 预设多个声音数据,所述多个声音数据包括目标特定声源; [0021] 对每个声音数据进行特征提取,建立一个声音标定向量,该声音标定向量包括提取的声音特征和标定值; [0022] 采用DNN工具包Kaldi实现DNN权重更新。 [0023] 优选地,所述使用DNN训练模型对所述声学特征向量进行检测判定的步骤包括: [0024] 计算DNN输出概率; [0026] 通过平滑处理后的概率与设定阈值比较,判断出特定声源。 [0027] 优选地,所述计算DNN输出概率的步骤包括: [0029] a1=XC(n),XC(n)为所述实时声音信号的声学特征,a1为输入层; [0031] al-1=[1,al-1] [0032] zl=al-1×wl-1 [0033] al=ReLU(zl)=log(1+exp(zl)) [0034] 其中al-1表示第l-1层的激活输出, [0035] al表示第l层的激活输出, [0036] zl表示输入到第l层的加权和, [0037] wl-1表示第l-1层和第l层之间的连接权重, [0038] wl表示第l层和第l+1层之间的连接权重, [0040] aL-1=[1,aL-1] [0041] zL=aL-1×wL-1 [0042] [0043] 其中aL-1表示第L-1层的激活输出, [0044] aL表示第L层的激活输出, [0045] zL表示输入到第L层的加权和, [0046] wL-1表示第L-1层和第L层之间的连接权重, [0047] 输出层激活输出设定为该时间帧判定为特定声源的概率,即: [0048] P(y(n)=1|XC(n))=aL。 [0049] 优选地,所述利用前一帧的概率输出对DNN输出概率做平滑处理的步骤中,平滑概率计算公式如下: [0050] [0051] 其中,α为平滑因子。 [0052] 优选地,α的取值范围为0.75-0.85。 [0053] 优选地,所述设定阈值为0.5。 [0054] 本发明还提出了一种基于深度神经网络的特定声源检测系统,包括: [0055] 特征提取模块,用于提取实时声音信号的声学特征,生成声学特征向量; [0056] 建立DNN训练模型模块,用于利用深度神经网络方法对预设声音信号进行训练,建立DNN训练模型; [0057] 检测模块,用于使用所述DNN训练模型对所述声学特征向量进行检测判定。 [0058] 本发明一种基于深度神经网络的特定声源检测方法与系统,其方法包括,提取实时声音信号的声学特征,生成声学特征向量;利用深度神经网络方法对预设声音信号进行训练,建立DNN训练模型;使用所述DNN训练模型对所述声学特征向量进行检测判定,采用深度神经网络技术实现对不同声源信号的建模。由于深度神经网络有着更为精确的建模能力,尤其是在数据较为充分的前提下,建模的准确性更高,可以处理一些特征空间很近似的声源检测问题。本项发明采用前后时间帧融合特征技术,可以实现较高的单帧检测准确率,实时性高,判定延迟不会大于0.5秒,实用性强。附图说明 [0059] 图1为本发明基于深度神经网络的特定声源检测方法第一实施例的流程示意图; [0060] 图2为本发明基于深度神经网络的特定声源检测方法第二实施例的声学特征提取流程图; [0061] 图3为汉宁窗示意图; [0062] 图4为深度神经网络的结构图; [0063] 图5为本发明基于深度神经网络的特定声源检测方法第四实施例特定声源检测数据流程图。 [0064] 本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。 具体实施方式[0065] 应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。 [0066] 实施例1 [0067] 如图1所示,本发明提出一种基于深度神经网络的特定声源检测方法,包括以下步骤: [0068] S10、提取实时声音信号的声学特征,生成声学特征向量; [0069] S20、使用DNN训练模型对所述声学特征向量进行检测判定,所述DNN训练模型是利用深度神经网络方法对预设声音信号进行训练而建立的。 [0070] 步骤S10主要用于对声音信号进行特征提取。 [0071] 特征提取步骤旨在声信号的频谱结构上抽象、归纳出一组可以反映声源类别的特征向量。不同的分类任务听觉特征可能不同。可采用的特征包括梅尔倒谱特征(Mel-scale Frequency Cepstral Coefficients,MFCC),线性预测编码(linear predictive coding,LPC)等。在一些细致的声信号分类任务中,还可以采用主成分分析等技术对听觉特征进行选取。 [0072] 步骤S20中,包括两个方面的内容,包括建立DNN训练模型和使用DNN模型对声学特征向量检测。模型训练步骤旨在对不同类别的声信号的听觉特征进行统计归纳,建立不同类别的数学模型。该模型需要一定量的先验数据,通常来讲数据越充分模型越精确,分类、检测的效果越好。 [0073] DNN(即Deep Neural Networks,深度神经网络)训练模型,是近几年兴起的机器学习模型,在语音和图像等领域都取得了突破性的进展。深度神经网络起源于神经网络,在大数据,高性能计算和算法理论技巧突破的共同条件下,深度神经网络在神经网络的基础上取得重大的突破。深度神经网络利用多层次的非线性处理,能够自动挖掘数据中的抽象特征结构,从而为最终的监督性学习提供好的分类或者预测特征。深度神经网络擅长处理复杂高维结构性信号。 [0074] 而使用所述DNN训练模型对所述声学特征向量进行检测判定。 [0075] 面向鲁棒语音识别的语音唤醒应用可采用本发明提出的方法。语音识别应用在智能家居环境下,由于大部分时间内用户不会发出语音指令,如果智能终端采集到声音信号,一直调用服务器端的识别引擎,除了会造成大量的误识别、误触发以外,还会长时占用带宽。本发明可以作为语音唤醒功能,即只有系统检测到用户语音才会调用后端识别引擎。本发明采用10小时由用户发出的语音信号和各种环境噪声,训练DNN模型,并依据本项发明声源检测判定方法,时间帧虚检率小于12%,时间帧漏检率小于1%,有效支持鲁棒语音识别系统在真实环境下的应用。 [0076] 面向智能机器人的宠物叫声检测。采用本项发明方法可以使家居型机器人,实时检测出家居环境中是否有宠物狗、猫或者其他宠物的叫声,并作出反馈,提高机器人交互的智能性和娱乐性。本项发明采用20小时,共10类宠物狗的叫声,用以DNN模型训练,声源检测帧虚检率小于15%,时间帧漏检率小于5%。 [0077] 实施例2 [0078] 特征提取 [0080] 详细步骤如下所示: [0081] (1)获取实时录音字节流,按照16bit量化率转成数字信号,监测待处理缓冲区,如果缓冲区写满至16毫秒数据(如果采样率为16KHz,则为256个数据样本),则写入历史缓冲区,并进行特征提取。 [0082] (2)结合上一个数据缓冲区16毫秒数据,共32毫秒(如果采样率为16KHz,则为512个数据样本),进行加窗处理。本实施例采用长为512的汉宁窗函数。假设原时域信号为x(t),加窗后的数据为 汉宁窗函数如图3所示。 [0083] (3)进行快速傅立叶变换(Fast Fourier Transformation,FFT),把时域信号变换至频谱域,并求平方,变换过程如下所示: [0084] [0085] (4)采用23维梅尔滤波(MFCC)并变换到对数域,23维梅尔滤波器定义如下: [0086] [0087] 其中,f为对应频带的频率,m取值为1到23。经过梅尔滤波器并去对数后23维数据为: [0088] [0089] (5)离散余弦变换,以去除不同梅尔滤波器输出的相关性影响,计算过程如下所示: [0090] [0091] 本实施例只采用前12个离散余弦变换的系数作为特征,即n取值从1至12。 [0092] (6)特征融合。由于声信号有着显著的时序性,即前后时间帧有着很强的相关性,为了提高特定声源检测的准确性,本实施例综合考虑了前四个时间帧的声学特征,融合成为一个新的特征向量,即本实施例采用共60维特征。 [0093] 本实施例基于MFCC特征用以描述用户关注的特殊声源与其他声源的区别,并采用特征融合的策略,拓展了特征的维度,可以提高模型训练的精度。 [0094] 实施例3 [0095] 建立DNN训练模型 [0096] 深度神经网络一般由一个输入层,多个非线性隐含层和一个输出层组成,各隐含层堆叠起来形成一个深层次的结构,如图4所示。 [0097] DNN的各个层之间是全连接的,其连接权重我们定义为w,wl表示第l层和第l+1层之间的连接权重。al表示第l层的激活输出,zl表示输入到第l层的加权和。 是DNN的输出,其中 表示输入x属于第i类的概率,即 [0098] 训练过程包括数据准备与标定、DNN权重更新等步骤,具体如下: [0099] (1)数据准备,数据准备用以保证DNN模型的精确性,包括用户关注的特定声源和该声源之外的常见声源的若干信号。 [0100] (2)数据标定。对上一步骤的每个音频信号,进行特征提取,特征提取如上一章节公式(4)所示。建立一个新的向量,(XC(n),y(n))),其中y(n)为标定值。如果该帧信号为待检特定声源则取值为1,否则为其他声源信号,则取值为-1。 [0101] (3)DNN权重更新。权重更新为模型训练的关键步骤,本实施例采用常用的反向传播算法实现DNN权重更新。本实施例采用常用的DNN工具包Kaldi实现DNN权重更新。DNN设定为4个隐层,第一层节点数量和特征维度相同,即为60,其余隐层节点数为512,输出节点数量为1。 [0102] 实施例4 [0103] 声源检测判定 [0104] 利用实施例2所提取的特征向量和实施例3建立的DNN训练模型,首先对每一个时间帧做出判定概率,然后对概率输出做平滑处理,最后根据对比一个设定阈值做出最终声源检测判定。该模块处理流程如图4所示。 [0105] 其中数据分帧、缓冲与特征提取的方法和实施例2相同。DNN模型采用实施例3建立的DNN训练模型,即各隐藏层连接权重wl与激活输出al为模型参数。DNN概率计算、概率前向平滑、声源决策模块详细介绍如下: [0106] (1)DNN概率计算 [0107] (a)初始化输入层,即DNN第一层激活输出赋值以60维听觉特征数据:a1=XC(n)。 [0108] (b)计算隐藏层激活输出与前后层加权和,迭代计算公式如下所示: [0109] [0110] 其中ReLU代表折线激活函数。依次向后计算所有的隐藏层。 [0111] (c)计算输出层激活输出值,并作为DNN输出概率。输出层计算是根据最后一个隐藏层数据来计算,计算公式如下: [0112] [0113] 其中输出层激活输出设定为该时间帧判定为特定声源的概率, [0114] 即: [0115] P(y(n)=1|XC(n))=aL (7) [0116] (2)概率前向平滑,利用前一帧的概率输出做平滑处理,以避免单一帧概率输出误差造成的错误判定。平滑概率计算如下所示: [0117] [0118] 该平滑后的概率作为最终的判定概率。 [0119] α为平滑因子,本实施例设定平滑因子取值范围为0.75到0.85之间。 [0120] (3)特定声源检测决策。检测决策根据对平滑后的概率与设定阈值进行比较,即如果 大于阈值θ,则判定该帧为特定声源起始帧,否则判定在该时间帧没有检测到特定声源。通常阈值θ取值区间为0到1之间,如果阈值过小,会有过多的虚检,即许多并非是该特定声源信号时间帧被错误检测为该特定声源;如果阈值过高,则会有过多的漏检,即许多该特定声源时间帧不能被争取的检测到。本实施例采用折中的阈值设定θ= 0.5,以平衡虚检与漏检错误率。 [0121] 实施例5 [0122] 本发明还提出了一种基于深度神经网络的特定声源检测系统,包括: [0123] 特征提取模块10,用于提取实时声音信号的声学特征,生成声学特征向量; [0124] 建立DNN训练模型模块20,用于利用深度神经网络方法对预设声音信号进行训练,建立DNN训练模型; [0125] 检测模块30,用于使用所述DNN训练模型对所述声学特征向量进行检测判定。 [0126] 特征提取模块10可采用实施例2的方法进行构建,建立DNN训练模型模块20可采用实施例3的方法进行构建,检测模块30可采用实施例4的方法进行构建。 [0127] 面向儿童陪伴型的机器人应用,可以采用本实施例的系统及时检测出儿童哭叫的声音,反馈至监护人;面向智能安防的摄像头应用,可以采用本实施例的系统检测出是否有警报声音等等,提高安防系统的智能化水平。 [0128] 本发明一种基于深度神经网络的特定声源检测方法与系统,其方法包括,提取实时声音信号的声学特征,生成声学特征向量;利用深度神经网络方法对预设声音信号进行训练,建立DNN训练模型;使用所述DNN训练模型对所述声学特征向量进行检测判定,采用深度神经网络技术实现对不同声源信号的建模。由于深度神经网络有着更为精确的建模能力,尤其是在数据较为充分的前提下,建模的准确性更高,可以处理一些特征空间很近似的声源检测问题。本项发明采用前后时间帧融合特征技术,可以实现较高的单帧检测准确率,实时性高,判定延迟不会大于0.5秒,实用性强。 [0129] 本公开可在设备、系统、方法和/或计算机程序产品中体现。所述计算机程序产品可包括计算机可读存储媒介(或介质),其上具有计算机可读程序指令,用于致使处理器进行本公开的方面。 [0130] 计算机可读存储媒介可为可保持和存储指令供指令执行装置使用的有形装置。计算机可读存储媒介可例如为但不限于电子存储装置、磁性存储装置、光学存储装置、电磁存储装置、半导体存储装置,或前述各项的任何合适组合。计算机可读存储媒介的较具体实例的非详尽列表包括以下各项:便携式计算机软盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、静态随机存取存储器(SRAM)、便携式压缩光盘只读存储器(CD-ROM)、数字多功能磁盘(DVD)、存储棒、软磁盘、例如上面记录有指令的穿孔卡片或凹槽中的凸起结构等机械编码的装置,以及前述各项的任何合适组合。如本文所使用,并不将计算机可读存储媒介解释为暂时性信号本身,例如无线电波或其它自由传播的电磁波、传播穿过波导管或其它传输介质的电磁波(例如,穿过光纤缆线的光脉冲),或穿过电线传输的电信号。 [0131] 可将本文所描述的计算机可读程序指令从计算机可读存储媒介下载到相应的计算/处理装置,或经由例如因特网、局域网、广域网和/或无线网络等网络下载到外部计算机或外部存储装置。所述网络可包括铜传输缆线、光学传输光纤、无线传输、路由器、防火墙、交换器、网关计算机和/或边缘服务器。每一计算/处理装置中的网络适配卡或网络接口接收来自网络的计算机可读程序指令,并转发所述计算机可读程序指令,以供存储在相应计算/处理装置内的计算机可读存储媒介中。 [0132] 用于进行本公开的操作的计算机可读程序指令可为汇编程序指令、指令集架构(ISA)指令、机器指令、机器相关指令、微码、固件指令、状态设置数据,或以一个或多个编程语言的任何组合编写的任何源代码或目标代码,所述编程语言包括以目标为导向的编程语言,例如Smalltalk、C++等;以及常规程序编程语言,例如“C”编程语言或类似的编程语言。计算机可读程序指令可完全在用户的计算机上、部分地在用户的计算机上、作为独立软件封装、部分地在用户的计算机上和部分地在遥远计算机上或完全在遥远计算机或服务器上执行。在后者场景中,遥远计算机可通过任何类型的网络连接到用户的计算机,包括局域网(LAN)或广域网(WAN),或可进行到外部计算机的连接(例如,使用因特网服务提供商通过因特网)。在一些实施方案中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以个人化电子电路,以便执行本公开的方面。 [0133] 本文根据本公开的实施方案,参考方法、设备(系统)以及计算机程序产品的流程图说明和/或框图来描述本公开的方面。将理解,流程图说明和/或框图中的每个框,以及流程图说明和/或框图中的框的组合可由计算机可读程序指令实施。 [0134] 可将这些计算机可读程序指令提供给生产机器的通用计算机、专用计算机或其它可编程数据处理设备的处理器,使得经由所述计算机或其它可编程数据处理设备执行的指令创建用于实施流程图和/或框图框中所指定的功能/动作的构件。这些计算机可读程序指令也可存储在计算机可读存储媒介中,其可指导计算机、可编程数据处理设备和/或其它装置以特定方式起作用,使得里面存储有指令的计算机可读存储媒介包括制品,所述制品包括实施流程图和/或框图框中所指定的功能/动作的方面的指令。 [0135] 计算机可读程序指令也可加载到计算机、其它可编程数据处理设备或其它装置上,以致使一系列操作步骤在计算机、其它可编程设备或其它装置上执行,以产生计算机实施的过程,使得在计算机、其它可编程设备或其它装置上执行的指令实施流程图和/或框图框中所指定的功能/动作。 [0136] 图中的流程图和框图示出了根据本公开各种实施方案的系统、方法和计算机程序产品的可能实施方式的架构、功能性和操作。在这点上,流程图或框图中的每一框可表示指令的模块、片段或部分,其包括用于实施指定逻辑功能的一个或多个可执行指令。在一些替代实施方式中,框中所述的功能可以与图中所述的次序不同的次序发生。举例来说,连续示出的两个框事实上可大体上同时执行,或所述框可有时以反向次序执行,取决于所涉及的功能性。还将注意,框图和/或流程图说明的每一框,以及框图和/或流程图说明中的框的组合,可由执行指定功能或动作或进行专用硬件和计算机指令的组合的基于专用硬件的系统来实施。 |