一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于脉冲神经网络的语音唤醒方法、装置及电子设备与流程

2021-07-23 21:35:00 来源:中国专利 TAG:神经网络 人工智能 脉冲 电子设备 唤醒
基于脉冲神经网络的语音唤醒方法、装置及电子设备与流程

本公开涉及人工智能技术领域,更具体地,涉及一种基于脉冲神经网络的语音唤醒方法、装置、电子设备及计算机可读存储介质。



背景技术:

随着人工智能、自动控制等技术的快速发展,带有语音控制的设备越来越多的应用到工农业生产、建筑、物流、和日常生活等诸多领域,很多带有语音功能的设备都需要语音唤醒技术作为人和机器互动的开始或入口。一般来说,语音唤醒技术需要长时间保持设备处于待机状态。相关技术中的智能设备均采用的是传统芯片,并且需要传统芯片保持“休眠-唤醒”处于较高的频率,避免丢失随时可能发生的事件,当传统芯片的“休眠-唤醒”处于较高频率时,设备耗电严重,导致严重的功耗浪费。



技术实现要素:

有鉴于此,本公开提供了一种基于脉冲神经网络的语音唤醒方法、装置、电子设备及计算机可读存储介质。

本公开的第一方面提供了一种基于脉冲神经网络的语音唤醒方法,其中,所述脉冲神经网络包括特征提取层、学习分类层以及输出层,所述语音唤醒方法包括:获取语音信号,所述语音信号包括具有开始点和结束点的声波信号;通过所述特征提取层对所述语音信号进行特征提取,得到脉冲序列;通过学习分类层对所述脉冲序列进行分类,得到分类结果,并通过所述输出层输出所述分类结果;以及基于所述分类结果判断是否唤醒目标设备。

根据本公开的实施例,所述特征提取层包括预处理层、第一特征提取层以及第二特征提取层。

根据本公开的实施例,所述通过所述特征提取层对所述语音信号进行特征提取,得到脉冲序列包括:使用所述预处理层对所述语音信号进行预处理,得到时域信号;使用所述第一特征提取层对所述时域信号进行特征提取,得到梅尔频率信息;以及使用所述第二特征提取层对所述梅尔频率信息进行特征提取,得到所述脉冲序列。

根据本公开的实施例,所述使用所述预处理层对所述语音信号进行预处理,得到时域信号包括:采用一阶类高通滤波器对所述语音信号进行预加重处理,以提高所述语音信号中的高频部分;以及在所述预加重处理之后,对所述语音信号进行分帧,得到语音信号帧,使用窗函数对所述语音信号帧加窗处理,得到所述时域信号。

根据本公开的实施例,所述使用所述第一特征提取层对所述时域信号进行特征提取,得到梅尔频率信息包括:获取所述时域信号,对所述时域信号与所述窗函数的乘积进行短时傅里叶变换,以将所述时域信号转换为频域信号;将所述频域信号在时间上进行堆叠,以生成频谱图,其中,所述频谱图包含频率信息;以及将至少一个梅尔滤波器组应用于所述频谱图中,以将所述频谱图中的频率信息转换为梅尔频率信息。

根据本公开的实施例,所述使用所述第一特征提取层对所述时域信号进行特征提取,得到梅尔频率信息还包括:得到所述梅尔频率信息后,计算所述至少一个梅尔滤波器组中的每一个输出的对数能量。

根据本公开的实施例,所述使用所述第二特征提取层对所述梅尔频率信息进行特征提取,得到所述脉冲序列包括:通过时滞编码方式对所述梅尔频率信息进行编码,以将所述梅尔频率转换为脉冲信息;以及通过k-svd算法获得所述脉冲信息的字典,计算所述脉冲信息局部信息与所述字典之间的距离,通过所述距离确定最佳匹配码本,通过所述最佳匹配码本将所述脉冲信息转换为所述脉冲序列。

根据本公开的实施例,所述基于所述分类结果判断是否唤醒目标设备包括:若所述分类结果与多个预设关键词中的至少一个属于同一类别,则唤醒所述目标设备;以及若所述分类结果与多个预设关键词中每一个属于不同类别,则不唤醒所述目标设备。

根据本公开的实施例,在所述获取语音信号之前,所述唤醒方法还包括:采用端点检测方法检测接收声波信号,确定所述声波信号中包含语音内容的开始点和结束点,并对非语音内容进行删除,得到所述语音信号。

根据本公开的实施例,所述学习分类层通过tempotron算法对所述脉冲序列进行分类。

本公开的第二方面提供了一种基于脉冲神经网络的语音唤醒装置,所述脉冲神经网络包括特征提取层、学习分类层以及输出层,所述语音唤醒方法包括:信号获取模块,配置为获取语音信号,所述语音信号包括具有开始点和结束点的声波信号;特征提取模块,配置为通过所述特征提取层对所述语音信号进行特征提取,得到脉冲序列;分类模块,配置为通过学习分类层对所述脉冲序列进行分类,得到分类结果,并通过所述输出层输出所述分类结果;以及唤醒模块,配置为基于所述分类结果判断是否唤醒目标设备。

根据本公开的实施例,所述特征提取模块包括预处理子模块、第一特征提取子模块、第二特征提取子模块。所述预处理子模块配置为使用所述预处理层对所述语音信号进行预处理,得到时域信号;所述第一特征提取子模块配置为使用所述第一特征提取层对所述时域信号进行特征提取,得到梅尔频率信息;所述第二特征提取子模块配置为使用所述第二特征提取层对所述梅尔频率信息进行特征提取,得到所述脉冲序列。

在本公开的实施例中,所述预处理子模块配置为采用一阶类高通滤波器对所述语音信号进行预加重处理,以提高所述语音信号中的高频部分;以及在所述预加重处理之后,对所述语音信号进行分帧,得到语音信号帧,使用窗函数对所述语音信号帧加窗处理,得到所述时域信号。

在本公开的实施例中,所述第一特征提取子模块配置为获取所述时域信号,对所述时域信号与所述窗函数的乘积进行短时傅里叶变换,以将所述时域信号转换为频域信号;将所述频域信号在时间上进行堆叠,以生成频谱图,其中,所述频谱图包含频率信息;以及将至少一个梅尔滤波器组应用于所述频谱图中,以将所述频谱图中的频率信息转换为梅尔频率信息。

在本公开的实施例中,所述第一特征提取子模块配置为得到所述梅尔频率信息后,计算所述至少一个梅尔滤波器组中的每一个输出的对数能量。

在本公开的实施例中,所述第二特征提取子模块配置为通过时滞编码方式对所述梅尔频率信息进行编码,以将所述梅尔频率转换为脉冲信息;以及通过k-svd算法获得所述脉冲信息的字典,计算所述脉冲信息局部信息与所述字典之间的距离,通过所述距离确定最佳匹配码本,通过所述最佳匹配码本将所述脉冲信息转换为所述脉冲序列。

本公开的第三方面提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储可执行指令,所述可执行指令在被所述处理器执行时,实现根据上文所述的语音唤醒方法。

本公开的第四方面提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时,实现根据上文所述的语音唤醒方法。

本公开的第五方面提供了一种计算机程序产品,其中,所述产品存储有计算机程序,所述计算机程序在被执行时能够实现根据上文所述的语音唤醒方法。

根据本公开的实施例,基于脉冲神经网络的语音唤醒通过将语音信号转换为脉冲序列,对脉冲序列进行分类,其功耗更低,能够有效节省功耗。此外,采用脉冲神经网络对脉冲序列进行分类,可以获得更准确的分类结果,提高语音唤醒的准确性。

附图说明

通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:

图1示意性示出了根据本公开实施例的可以应用基于脉冲神经网络的语音唤醒方法的示例性系统架构;

图2示意性示出了根据本公开实施例的脉冲神经网络的结构示意图;

图3a示意性示出了根据本公开实施例的语音唤醒方法的流程图;

图3b示意性示出了根据本公开实施例的语音唤醒方法在操作s320的流程图;

图3c示意性示出了根据本公开实施例的语音唤醒方法在操作s321的流程图;

图3d示意性示出了根据本公开实施例的语音唤醒方法在操作s322的流程图;

图3e示意性示出了根据本公开实施例的语音唤醒方法在操作s323的流程图;

图4示意性示出了根据本公开实施例的语音唤醒装置的方框图;

图5示意性示出了根据本公开实施例的电子设备的方框图。

具体实施方式

以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。

在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。

在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。

在使用类似于“a、b和c等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有a、b和c中至少一个的系统”应包括但不限于单独具有a、单独具有b、单独具有c、具有a和b、具有a和c、具有b和c、和/或具有a、b、c的系统等)。本领域技术人员还应理解,实质上任意表示两个或更多可选项目的转折连词和/或短语,无论是在说明书、权利要求书还是附图中,都应被理解为给出了包括这些项目之一、这些项目任一方、或两个项目的可能性。例如,短语“a或b”应当被理解为包括“a”或“b”、或“a和b”的可能性。

需要说明的是,在本文中,表述“对数能量”可以表示一帧内语音信号的平方和,再取以10为底的对数值,再乘以10。

在本文中,表述“tempotron算法”可以表示可以进行单脉冲输入,其通过单个tempotron神经元完成二分类任务的算法,通过神经元标记发放或不发放脉冲。

本公开的实施例提供了一种基于脉冲神经网络的语音唤醒方法。其中,脉冲神经网络包括特征提取层、学习分类层以及输出层,语音唤醒方法包括:获取语音信号,语音信号包括具有开始点和结束点的声波信号;通过特征提取层对语音信号进行特征提取,得到脉冲序列;通过学习分类层对脉冲序列进行分类,得到分类结果,并通过输出层输出分类结果;以及基于分类结果判断是否唤醒目标设备。根据本公开的实施例,基于脉冲神经网络的语音唤醒通过将语音信号转换为脉冲序列,对脉冲序列进行分类,其功耗更低,能够有效节省功耗。此外,采用脉冲神经网络对脉冲序列进行分类,可以获得更准确的分类结果,提高语音唤醒的准确性。

图1示意性示出了根据本公开实施例的可以应用基于脉冲神经网络的语音唤醒方法的示例性系统架构100。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。需要说明的是,本公开实施例提供的基于脉冲神经网络的语音唤醒方法、装置、电子设备以及计算机可读存储介质可用于人工智能技术领域、金融领域的语音唤醒的相关方面,也可用于金融领域之外的其他领域,本公开实施例提供的基于脉冲神经网络的语音唤醒方法、装置、电子设备以及存储介质对应用领域不作限定。

如图1所示,根据该实施例的系统架构100可以包括终端设备101、102、103、104,网络105和服务器106。网络105用以在终端设备101、102、103、104和服务器106之间提供通信链路的介质。网络105可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

用户可以使用终端设备101、102、103、104通过网络105与服务器106交互,以接收或发送消息等。终端设备101、102、103、104上可以安装有各种语音控制类应用以及通讯客户端应用,例如输入法应用、购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例),可以通过语音唤醒或语音指令的形式实现对应用的操作控制。

终端设备101、102、103、104可以是具有语音唤醒或语音控制功能的各种电子设备,其可以通过接收环境中的语音对电子设备进行操作控制,包括但不限于智能音箱、智能手机、智能电视、智能手环、电子称、平板电脑、膝上型便携计算机和台式计算机等等。

服务器106可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103、104所调取的信息或浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户的语音指令或者用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。

需要说明的是,本公开实施例所提供的语音唤醒方法一般可以由服务器106执行。相应地,本公开实施例所提供的语音唤醒装置一般可以设置于服务器106中。本公开实施例所提供的语音唤醒方法也可以由不同于服务器106且能够与终端设备101、102、103、104和/或服务器106通信的服务器或服务器集群执行。相应地,本公开实施例所提供的语音唤醒装置也可以设置于不同于服务器106且能够与终端设备101、102、103、104和/或服务器106通信的服务器或服务器集群中。此外,本公开实施例所提供的语音唤醒方法也可以仅仅由终端设备101、102、103、104执行。

应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。

图2示意性示出了根据本公开实施例的脉冲神经网络的结构示意图。

如图2所示,脉冲神经网络200包括特征提取层210、学习分类层220以及输出层230。其中,语音信号a输入至特征提取层210后,特征提取层210用于对输入的语音信号a进行处理,例如进行预加重处理、分帧加窗处理、傅里叶变换处理、滤波处理、时滞编码处理以及稀疏脉冲编码处理等。学习分类层210用于对语音信号的学习分类,通过学习嵌入在时空脉冲模式中的信息,使得神经元可以进行有效地学习和决策,神经元可以高达突触数量的好几倍的脉冲模式进行分类。输出层230用于将经过脉冲神经网络处理后的脉冲序列输出,输出层230可以根据分类的不同个数进行调整,一般设置神经元的个数为需要分类类别的10倍(比如,要对10类样本进行分类,需100个输出神经元),对于输出神经元而言,每个类都包含脉冲信号,并且在时间窗口内仅发放一次,每个输出神经元仅发放一个脉冲。

在本公开的实施例中,如图2所示,特征提取层210包括预处理层211、第一特征提取层212以及第二特征提取层213。

预处理层210用于对语音信号进行预加重处理以及分帧加窗处理。预加重处理主要目的是对语音的高频部分进行加重处理,增加高频的分辨率,减少低频部分对声音信号的干扰,使得声音信号的频率谱更加均匀。分帧加窗处理用于对语音信号进行窗口化处理,不仅可以处理减少频谱的泄漏,也能更好地反映语音信号的特性变化。

第一特征提取层212用于对预处理层210处理后的信息进行处理。例如,将经预处理得到的时域信号转换为梅尔频率信息。

第二特征提取层213用于对第一特征提取层212处理后的信息进行进一步处理。例如,将梅尔频率信息转换为脉冲序列。

图3a示意性示出了根据本公开实施例的语音唤醒方法的流程图。图3b示意性示出了根据本公开实施例的语音唤醒方法在操作s320的流程图。图3c示意性示出了根据本公开实施例的语音唤醒方法在操作s321的流程图。图3d示意性示出了根据本公开实施例的语音唤醒方法在操作s322的流程图。图3e示意性示出了根据本公开实施例的语音唤醒方法在操作s323的流程图。

如图3a所示,本公开实施例的基于脉冲神经网络的语音唤醒方法300包括操作s310至操作s340。

在操作s310中,获取语音信号,语音信号包括具有开始点和结束点的声波信号。

在本公开的实施例中,语音信号是由信号获取传感器(例如麦克风)从环境中获取的声波,该声波信号存在一定的环境噪音,环境噪音对于后述的特征提取造成干扰,同时对环境噪音进行识别处理时需要耗费大量时间,不利于快速准确的处理分类。因此,需要将不属于说话者声音的无用片段及空白片段或者环境噪音进行去除。

在本公开的实施例中,在获取了包含环境噪音的声波信号后,采用端点检测方法检测接收的声波信号,确定声波信号中包含语音内容的开始点和结束点,并对非语音内容进行删除,得到语音信号。该语音信号中不包含环境噪音或背景音,是具有人物语音的开始点和结束点的声波信号。

根据本公开的实施例,通过利用端点检测方法去掉干扰片段得到真正有效的语音片段,防止干扰信号造成的对识别准确率的影响。端点检测通常检测出语音的起始端点和结束端点,减少后续计算量,有利于提高处理性能和识别效率。

在操作s320中,通过特征提取层对语音信号进行特征提取,得到脉冲序列。

在语音识别任务中,由于声学信号数据较为繁杂,转换为数字语音信号后通常很难直接表达发音信息。同时语音信号会受到上下文的影响、发音人及口音的影响以及环境和信道等因素都会导致语音信号失真,而这种差异性信息通常会导致模型在训练和学习过程中不匹配,从而导致系统识别准确率降低。为了提取出语音信号中特定有效信息,需要对语音信号进行处理从而为后续的识别等工作提供便利。对语音信号进行特征提取的主要目的是在声学信号转换为数字信号之后,提取出其中能够表达声学特征的特征序列向量。声音信号必须具有两点特征,一是尽可能去除环境中的噪声和杂声,保留声音中的有效信息;二是声学特征要尽可能的具有可区分性,从而保证在后续的分类和识别中起到良好作用。在本公开的实施例中,特征可以是短时过零率、短时帧能量、梅尔倒谱系数或者倒谱系数等。

在操作s330中,通过学习分类层对脉冲序列进行分类,得到分类结果,并通过输出层输出分类结果。

在本公开的实施例中,使用tempotron算法进行对脉冲序列进行分类。具体地,通过输出神经元是否发放脉冲从而对输入模式进行分类。例如,针对不同的脉冲序列,判定脉冲序列的类别,并通过输出层输出分类结果。

在操作s340中,基于分类结果判断是否唤醒目标设备。

在本公开的实施例中,若分类结果与多个预设关键词中的至少一个属于同一类别,则唤醒目标设备,以及若分类结果与多个预设关键词中每一个属于不同类别,则不唤醒目标设备。

例如,只要分类结果与一个关键词属于同一类别,则唤醒设备。分类结果的类别不在关键词的类别之内,则不唤醒目标设备。

在本公开的实施例中,如图3b所示,本公开的语音唤醒方法在操作s320的流程图。其包括操作s321至操作s323。

在操作s321中,使用预处理层对语音信号进行预处理,得到时域信号。

在本公开的实施例中,如图3c所示,本公开的语音唤醒方法在操作s321流程包括操作s3211至操作s3212。

在操作s3211中,采用一阶类高通滤波器对语音信号进行预加重处理,以提高语音信号中的高频部分。预加重处理的主要目的是对语音的高频部分进行加重处理,增加高频的分辨率,减少低频部分对声音信号的干扰,使得声音信号的频率信息更加均匀。

例如,由于语音信号自身的特性,语音信号的高频部分成分较小,而低频部分的成分较多,因此,为了减少低频的干扰,在预处理过程中需要对信号进行预加重(premphasis)处理。预加重处理可以提升语音信号高频部分的质量,为后续的参数分析工作提供保障。预加重的辐射模型为一阶类高通滤波器的形式,传递函数通常表示为:

h(z)=1-az-1

其中,a为预加重的系数,一般取值范围为0.9~1之间。

若为处理前的语音信号s(n),经过预加重操作后的信号可以表示为:

其中,a取值为0.98。

在操作s3212中,在预加重处理之后,对语音信号进行分帧,得到语音信号帧,使用窗函数对语音信号帧加窗处理,得到时域信号。

例如,在预加重操作之后,就需要对语音信号进行分帧加窗处理,帧长一般为10-30ms之间。在分帧过程中主要采用交叠分段的方式,目的是为了使得帧与帧之间保持平滑过度,从而维持信号的连续性,两个连续帧之间的重叠部分称为帧移。在系统构造中,将连续的语音分段为25ms长度的语音信号帧,相邻帧之间有10ms的帧移。为了更好地捕获语音信号间的时间变化,在系统中使用窗函数对语音信号帧进行窗口化处理,得到时域信号。该种处理不仅可以减少频谱的泄漏,也能更好地反映语音信号的特性变化。在本公开的实施例中,窗函数例如可以包括矩形窗、汉明窗(hamming)和汉宁窗(hanning),在时间域内通常采用不同窗函数截断信号,从而减少能量谱泄漏。

例如,可以选用下式的汉明窗的窗函数进行加窗处理:

在操作s322中,使用第一特征提取层对时域信号进行特征提取,得到梅尔频率信息。

在本公开的实施例中,如图3d所示,本公开的语音唤醒方法在操作s322流程包括操作s3221至操作s3223。

在操作s3221中,获取时域信号,对时域信号与窗函数的乘积进行短时傅里叶变换,以将时域信号转换为频域信号。

例如,利用短时傅里叶变换(stft)对时域信号进行处理,通常将某一时刻的信号特征通过时间窗口内的一段信号来表达。短时傅里叶变换将时域信号与窗函数相乘后进行一维的傅里叶变换,随着窗函数的滑动得到一系列的傅里叶变换,最后得到结果。短时傅里叶通过以下公式实现:

其中,z(t)是要处理的信号,g(t)为使用的窗函数。

在操作s3222中,将频域信号在时间上进行堆叠,以生成频谱图,其中,频谱图包含频率信息。

例如,经过短时傅里叶变换之后,将得到一个时频矩阵,根据该时频矩阵,把时域信号转换为频域信号,频域信号在时间上进行堆叠产生频谱图,频谱图采用二维的图片形式表示三维的信息。同时短时傅里叶变换频谱图具有等长的频率成分分布间隔,在低频处设置较多的滤波器,高频处采用较少滤波器,可以更加合理地进行特征提取,同时对噪声具有较强的鲁棒性。

在操作s3223中,将至少一个梅尔滤波器组应用于频谱图中,以将频谱图中的频率信息转换为梅尔频率信息。

根据本公开的实施例,将不同个数的梅尔滤波器组应用于操作s3222中生成的频谱图中以提取不同的频带信息,将频率信息转换为梅尔频率信息。

例如,使用梅尔滤波器对每一帧的功率谱滤波,再把每一帧滤波后的能量相加,梅尔滤波的过程可以通过如下式表达:

f=700(10m/2595-1)

其中,滤波器组由许多不同的三角形滤波器组成,在中心处的频率响应为1,并朝着两边逐渐线性减小到0,直到到达另外相邻的滤波器的中心频率处。通过滤波后的频率响应可以通过以下方程表示:

在本公开的实施例中,操作s322的流程还可以包括操作s3224。

在操作s3224中,得到梅尔频率信息后,计算至少一个梅尔滤波器组中的每一个输出的对数能量。

例如,使用对数可以降低提取的特征对输入声音能量变化的敏感度。每个滤波器的对数能量是:

在操作s323中,使用第二特征提取层对梅尔频率信息进行特征提取,得到脉冲序列。

在本公开的实施例中,如图3e所示,本公开的语音唤醒方法在操作s323流程包括操作s3231至操作s3232。

在操作s3231中,通过时滞编码方式对梅尔频率信息进行编码,以将梅尔频率转换为脉冲信息。

例如,在获得了上文所述的梅尔频率后,使用时滞编码(latencycode)将滤波器组的输出转化为脉冲模式。对于至少一个梅尔滤波器中的每一个滤波器i,梅尔滤波器的输出系数ci,从而脉冲发放时间ti可以表示为:

其中,ti代表神经元i的发放时间,tmax代表脉冲窗口的大小,α代表归一化因子的大小,分别代表滤波器i对语音相应的最大输出系数和最小输出系数。在具体实现过程中,可以选择不同的参数进行实验。例如,将α大小设置为0.95,将tmax设置为1。

在本公开的其他实施例中,也可以将滤波器的输出归一化为相同的尺度比例,由于不同的输入样本间的信号强度不同,因此必须对同一样本中的所有帧进行归一化操作。使用线性变换后,保证结果范围始终处于0-1之间。

在操作s3232中,通过k-svd算法获得脉冲信息的字典,计算脉冲信息局部信息与字典之间的距离,通过距离确定最佳匹配码本,通过最佳匹配码本将脉冲信息转换为所述脉冲序列。

例如,稀疏编码技术作为一种新的信号表示方法,其采用一种过完备字典来代替原来的线性分辨率变换方法。字典中包含各种原子,即字典中的大量元素信号。通过稀疏编码,每个信号都可以由原子的线性组合表示出来,因此,可以把每个信号看作多个原子的线性组合,而且在实际过程中,过完备字典中所拥有的原子个数远远大于信号中所需的原子个数。因此,在编码过程中选取合适的稀疏分析算法,可以更好的提取语音信号的非线性特征,从而提高语音识别的准确率。

例如,为了生成码本字典,采用基于k-svd的系数表法算法用于进一步提取语音信号的判别特征。k-svd算法通过字典更新训练,最小化每个原子的误差,从而找到最合适的匹配字典。k-svd算法的目标是通过更新得到能稀疏表达信号集的冗余字典及它相对应的稀疏矩阵。通过交替进行稀疏编码和字典的更新从而实现对信号的稀疏表达。初始训练的字典可以从训练样本中随机抽取。k-svd包括稀疏编码和字典更新两个步骤迭代进行:(1)如果字典d已知,求解出信号的稀疏系数;(2)得到稀疏系数以后,再更新字典中原子。

例如,使用训练的样本为x(t)∈rl×n,每个样本的列向量都有相应的训练样本字典表示为d∈rl×k,原子表示为样本在字典上进行分解,是矩阵的列向量相应的语音在字典d上分解的系数。则k-svd训练字典的函数为:

例如,利用训练样本y训练字典的具体步骤是:

(1)先初始化字典,初始化过程可以随机选择样本将字典矩阵d初始设置。

(2)初始化字典后,将y在字典上分解得到稀疏系数x。此时可将上述的训练字典的函数改写为:可以利用不同的追踪算法对该式求解,例如,使用omp算法,从而对信息进行稀疏表达获得相应稀疏系数。

(3)利用svd算法对字典中的原子和相应的稀疏系数逐一更新,更新时保持其他原子系数不变。更新第k个原子进行稀疏表达的误差ek:

此时惩罚项为:

(4)对样本稀疏表达的原子dk所对应yi限定为索引集合ωk,并称为

(5)对进行svd分解,再用分解u的第一列替换字典中的第k个原子dk,矩阵的第一列与δ(1,1)相乘得到新的系数

重复步骤(2)-(5),直至达到迭代终止条件,就可以训练获得过完备字典d。

例如,为了生成脉冲序列,根据上述k-svd算法生成字典,对于字典中的每个条目,通过欧式距离作为相似性的度量单位,并通过一个局部噪声掩码来减少在码书匹配上的噪声的影响。将脉冲发放的局部特征(f,t)与字典之间的距离计算为:

yz=||d-k(f,t)r||

最佳的匹配条目会在脉冲模式对应的地方p(x,t)发放一个脉冲,其中x确定为:

x=(f-1)×z zbest

最佳匹配单元zbest计算为:

经过多次迭代后,与每个延迟编码的语音帧对应的最佳匹配码本(bmu),在给定的时间窗口内触发了一个脉冲,并且将之前时滞编码得到的脉冲被转换为输出脉冲模式。每个bmu对应延迟编码的语音帧将在给定的时间窗口内触发脉冲,对每个语音信号随时间触发的所有脉冲进行排序,以形成时空尖峰序列然后,k-svd的bmu在时域和空域中生成脉冲序列,可以用来表示语音信号的声学特性。

在本公开的实施例中,为了识别脉冲序列,采用tempotron算法进行对语音信号的学习分类,该算法具有生物解释性的架构产生输出脉冲。tempotron学习算法是一种具有生物可行性的有监督的突触学习规则,通过学习嵌入在时空脉冲模式中的信息,使得神经元可以进行有效地学习和决策,神经元可以高达突触数量的好几倍的脉冲模式进行分类。

例如,tempotron学习算法的神经元模型由lif神经元构成,神经元由多个突触产生的突触电流驱动,神经元的亚阈值膜电压可以表示为所有输入神经元的突触后电位的加权和:

其中ti代表第i个脉冲的传入时间,k(t-ti)是每个输入脉冲的突触后电位加权和的归一化,τ和τs分别代表细胞膜和突触电流的时间衰减常数。当v(t)超过阈值时神经元就会发放一个脉冲,然后恢复到静息电位并进入一个不应期。

例如,tempotron算法通过输出神经元是否发放脉冲从而对输入模式进行分类,因此输出神经元只对应两种状态:发放脉冲和不发放脉冲,定义发放脉冲为正模式,不发放脉冲为负模式。当神经元收到脉冲输入时膜电位会发生相应变化,为了实现分类任务,输出神经元会针对结果进行权重的相应修改。权重修改规则如下:

其中,p 对应该模式应该发放脉冲但是没有发放,p-对应该模式不该发放脉冲但是发放了脉冲,δωij代表第i个输入神经元与第j个输出神经元之间相连接的权重,tmax是第j个输出神经元达到最大膜电压的时刻,tij是第i个输入神经元上在未到达最大膜电压就进行脉冲发放的时刻,λ是模型的学习率并且λ>0。该学习规则可以理解为针对两种不同的脉冲模式,当负模式p-中不该发放脉冲但是进行了发放,就减少神经元之间的权重从而抑制它的发放;但当正模式p 中神经元应该发放脉冲但没有发放时,就增大神经元之间的权重从而促进脉冲发放。

图4示意性示出了根据本公开实施例的语音唤醒装置的方框图。

如图4所示,基于脉冲神经网络的语音唤醒装置400包括信号获取模块410、特征提取模块420、学习分类模块430以及唤醒模块440。

信号获取模块410配置为获取语音信号,所述语音信号包括具有开始点和结束点的声波信号。

特征提取模块420配置为通过所述特征提取层对所述语音信号进行特征提取,得到脉冲序列。

学习分类模块430配置为通过学习分类层对所述脉冲序列进行分类,得到分类结果,并通过所述输出层输出所述分类结果。

唤醒模块440配置为基于所述分类结果判断是否唤醒目标设备。

在本公开的实施例中,特征提取模块420包括预处理子模块421、第一特征提取子模块422、第二特征提取子模块423。

预处理子模块421配置为使用预处理层对语音信号进行预处理,得到时域信号。第一特征提取子模块422配置为使用第一特征提取层对时域信号进行特征提取,得到梅尔频率信息。第二特征提取子模块423配置为使用第二特征提取层对梅尔频率信息进行特征提取,得到脉冲序列。

在本公开的实施例中,预处理子模块421配置为采用一阶类高通滤波器对语音信号进行预加重处理,以提高语音信号中的高频部分;以及在预加重处理之后,对语音信号进行分帧,得到语音信号帧,使用窗函数对语音信号帧加窗处理,得到时域信号。

在本公开的实施例中,第一特征提取子模块422配置为获取时域信号,对时域信号与窗函数的乘积进行短时傅里叶变换,以将时域信号转换为频域信号;将频域信号在时间上进行堆叠,以生成频谱图,其中,频谱图包含频率信息;以及将至少一个梅尔滤波器组应用于频谱图中,以将频谱图中的频率信息转换为梅尔频率信息。

在本公开的实施例中,第一特征提取子模块422配置为得到梅尔频率信息后,计算至少一个梅尔滤波器组中的每一个输出的对数能量。

在本公开的实施例中,第二特征提取子模块423配置为通过时滞编码方式对梅尔频率信息进行编码,以将梅尔频率转换为脉冲信息;以及通过k-svd算法获得脉冲信息的字典,计算脉冲信息局部信息与字典之间的距离,通过距离确定最佳匹配码本,通过最佳匹配码本将脉冲信息转换为脉冲序列。

根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

例如,信号获取模块410、特征提取模块420、学习分类模块430、唤醒模块440、预处理子模块421、第一特征提取子模块422、第二特征提取子模块423中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,信号获取模块410、特征提取模块420、学习分类模块430、唤醒模块440、预处理子模块421、第一特征提取子模块422、第二特征提取子模块423中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,信号获取模块410、特征提取模块420、学习分类模块430、唤醒模块440、预处理子模块421、第一特征提取子模块422、第二特征提取子模块423中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

图5示意性示出了根据本公开实施例的适于实现上文描述的方法的电子设备的方框图。图5示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

如图5所示,根据本公开实施例的电子设备500包括处理器501,其可以根据存储在只读存储器(rom)502中的程序或者从存储部分508加载到随机访问存储器(ram)503中的程序而执行各种适当的动作和处理。处理器501例如可以包括通用微处理器(例如cpu)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(asic)),等等。处理器501还可以包括用于缓存用途的板载存储器。处理器501可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。

在ram503中,存储有电子设备500操作所需的各种程序和数据。处理器501、rom502以及ram503通过总线504彼此相连。处理器501通过执行rom502和/或ram503中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除rom502和ram503以外的一个或多个存储器中。处理器501也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。

根据本公开的实施例,电子设备500还可以包括输入/输出(i/o)接口505,输入/输出(i/o)接口505也连接至总线504。电子设备500还可以包括连接至i/o接口505的以下部件中的一项或多项:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至i/o接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。

本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。

根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的rom502和/或ram503和/或rom502和ram503以外的一个或多个存储器。

本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行本公开实施例所提供的方法的程序代码,当计算机程序产品在电子设备上运行时,该程序代码用于使电子设备实现本公开实施例所提供的语音唤醒方法。

在该计算机程序被处理器501执行时,执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。

在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分509被下载和安装,和/或从可拆卸介质511被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。

根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如java,c ,python,“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。

附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。

以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。

再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文章

  • 日榜
  • 周榜
  • 月榜