音频事件检测方法、装置及计算机可读存储介质与流程

文档序号:15391461发布日期:2018-09-08 01:12阅读:177来源:国知局

本发明涉及音频检测技术领域,尤其涉及一种音频事件检测方法、装置及计算机可读存储介质。



背景技术:

当今世界正处在信息爆炸的时代,信息正在以指数级的速度增长。多媒体技术和互联网技术的不断发展,使得对海量多媒体数据进行自动分析处理的必要性大大提高,且通过对多媒体数据进行分析,能够有效的满足用户的需求。例如,针对体育比赛来说,通过对喝彩声,鼓掌声、欢呼声、笑声之类的音频事件的检测,来在体育比赛的音频中提取精彩场景,使得用户能够更便捷的找到自己感兴趣的片段。

目前,常用的音频事件的检测方法包括:基于高斯混合模型(gaussianmixturemodel,gmm)检测音频中的音频事件,及使用支持向量机(supportvectormachine,svm)检测音频中的音频事件。然而,这两种方法的学习能力不强,当音频较为复杂或者包含的音频事件较多时,检测效果不佳。



技术实现要素:

本发明的主要目的在于提供一种音频事件检测方法、装置及计算机可读存储介质,旨在解决现有技术中利用gmm和svm检测音频中的音频事件时,由于gmm和svm的学习能力不强,带来的检测效果不佳的技术问题。

为实现上述目的,本发明第一方面提供一种音频事件检测方法,包括:

对待检测的音频进行分帧处理,并从分帧处理得到的各时刻的音频数据中分别提取指定特征向量;

将所述各时刻的音频数据的指定特征向量输入训练得到的rnn/bi-rnn模型中,得到所述各时刻的音频数据中各音频事件的后验概率,所述rnn/bi-rnn是基于训练音频及预置的所述各音频事件训练得到的;

根据所述各时刻的音频数据中各音频事件的后验概率及预置的音频解码算法,从所述各时刻的音频数据中检测音频事件的最佳音频数据序列。

为实现上述目的,本发明第二方面提供一种音频事件检测装置,包括:

第一分帧提取模块,用于对待检测的音频进行分帧处理,并从分帧处理得到的各时刻的音频数据中分别提取指定特征向量;

输入模块,用于将所述各时刻的音频数据的指定特征向量输入训练得到的rnn/bi-rnn模型中,得到所述各时刻的音频数据中各音频事件的后验概率,所述rnn/bi-rnn是基于训练音频及预置的所述各音频事件训练得到的;

检测模块,用于根据所述各时刻的音频数据中各音频事件的后验概率及预置的音频解码算法,从所述各时刻的音频数据中检测音频事件的最佳音频数据序列。

为实现上述目的,本发明第三方面提供一种终端设备,包括:存储器、处理器及存储在所述存储器上且在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如本发明实施例第一方面提供的音频事件检测方法中的各个步骤。

为实现上述目的,本发明第四方面提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如本发明第一方面音频事件检测方法中的各个步骤。

本发明提供一种音频事件检测方法,该方法包括:对待检测的音频进行分帧处理,并从分帧处理得到的各时刻的音频数据中分别提取指定特征向量,将各时刻的音频数据的指定特征向量输入训练得到的rnn/bi-rnn模型中,得到各时刻的音频数据中各音频事件的后验概率,并根据各时刻的音频数据中各音频事件的后验概率及预置的音频解码算法,从所述各时刻的音频数据中检测音频事件的最佳音频数据序列。相对于现有技术,使用训练得到的rnn/bi-rnn模型对音频事件进行检测,由于rnn模型在进行音频事件检测时除了使用当前时刻的信息,还将使用当前时刻之前时刻的信息,且bi-rnn模型除了使用当前时刻的信息和当前时刻之前时刻的信息以外,还将使用当前时刻之后时刻的信息,因此,rnn/bi-rnn模型的学习能力相对于gmm和svm更强,使用具有更强学习能力的rnn/bi-rnn模型对音频事件进行检测,具有更优的检测效果。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为一种终端设备的结构框图;

图2为本发明实施例中单层rnn模型的原理图;

图3a为本发明实施例中rnn模型的示意图;

图3b为本发明实施例中bi-rnn模型的示意图;

图4为本发明实施例中音频事件检测方法的一流程示意图;

图5为本发明实施例中音频事件检测方法的另一流程示意图;

图6为本发明实施例中音频事件检测方法的另一流程示意图;

图7为本发明实施例中rnn模型训练的流程示意图;

图8为本发明实施例中bi-rnn模型训练的流程示意图;

图9为本发明实施例中音频事件检测装置的程序模块的一结构示意图;

图10为本发明实施例中音频事件检测装置的程序模块的另一结构示意图;

图11为本发明实施例中音频事件检测装置的程序模块的另一结构示意图;

图12为本发明实施例中训练模块的细化程序模块的一结构示意图;

图13为本发明实施例中训练模块的细化程序模块的另一结构示意图。

具体实施方式

为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图1,图1为一种终端设备100的结构示意图。本发明实施例提供的音频事件检测方法可应用于如图1所示的终端设备100中,终端设备100可以但不限于包括:服务器、需依靠电池维持正常运行且支持网络及下载功能的智能手机、平板电脑等等。

如图1所示,移动终端100包括存储器102、存储控制器104,一个或多个(图中仅示出一个)处理器106、外设接口108、射频单元110、触控单元112、音频单元114以及显示单元116。这些组件通过一条或多条通讯总线/信号线122相互通讯。

可以理解,图1所示的结构仅为示意,其并不对移动终端100的结构造成限定。例如,移动终端100还可包括比图1所示更多或者更少的组件,或者具有与图1所示不同的配置。图1所示的各组件可以采用硬件、软件或其组合实现。

存储器102可用于存储计算机程序,如本发明实施例中的音频事件检测方法对应的程序指令或模块,处理器106在执行存储在存储器102内的计算机程序时,实现下述图2及图4所示的音频事件检测方法中的各个步骤。

存储器102,即计算机可读存储介质,可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器102可进一步包括相对于处理器106远程设置的存储器,这些远程存储器可以通过网络连接至移动终端100。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。处理器106以及其他可能的组件对存储器102的访问可在存储控制器104的控制下进行。

外设接口108将各种输入/输入装置耦合至处理器106以及存储器102。处理器106运行存储器102内的各种软件、指令以执行移动终端100的各种功能以及进行数据处理。

在一些实例中,外设接口108,处理器106以及存储控制器104可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。

射频单元110用于接收以及发送电磁波,实现电磁波与电信号的相互转换,从而与通讯网络或者其他设备进行通讯。射频单元110可包括各种现有的用于执行这些功能的电路元件,例如,天线、射频收发器、数字信号处理器、加密/解密芯片、用户身份模块(sim)卡、存储器等等。射频单元110可与各种网络如互联网、企业内部网、预置类型的无线网络进行通讯或者通过预置类型的无线网络与其他设备进行通讯。

触控单元112提供用户向移动终端100进行输入的接口,用户可以通过在触控屏上进行触控操作以使移动终端100执行不同的功能。

音频单元114向用户提供音频接口,其可包括一个或多个麦克风、一个或者多个扬声器以及音频电路。音频电路从外设接口108处接收声音数据,将声音数据转换为电信息,将电信息传输至扬声器。扬声器将电信息转换为人耳能听到的声波。音频电路还从麦克风处接收电信息,将电信号转换为声音数据,并将声音数据传输至外设接口108中以进行进一步的处理。音频数据可以从存储器102处或者通过射频单元110获取。此外,音频数据也可以存储至存储器102中或者通过射频单元110进行发送。在一些实例中,音频单元114还可包括一个耳机播孔,用于向耳机或者其他设备提供音频接口。

显示单元116在移动终端100与用户之间提供一个输出界面。具体地,显示单元116向用户显示视频输出,这些视频输出的内容可包括文字、图形、视频、及其任意组合。一些输出结果是对应于一些用户界面对象。

基于上述的终端设备描述本发明实施例中音频事件检测方法。

由于现有技术中gmm和svm的学习能力不强,利用gmm和svm检测音频中的音频事件时,存在检测效果不佳的技术问题。

为了解决上述问题,本发明提出一种音频事件检测方法,该方法中使用训练得到的循环神经网络/双向循环神经网络(recurrentneuralnetwork/bi-directionalrecurrentneuralnetwork,rnn/bi-rnn)模型对音频事件进行检测,由于rnn模型在进行音频事件检测时除了使用当前时刻的信息,还将使用当前时刻之前时刻的信息,且bi-rnn模型除了使用当前时刻的信息和当前时刻之前时刻的信息以外,还将使用当前时刻之后时刻的信息,因此,rnn/bi-rnn模型的学习能力相对于gmm和svm更强,使用具有更强学习能力的rnn/bi-rnn模型对音频事件进行检测,具有更优的检测效果。

为了更好的理解本发明实施例中的技术方案,下面将分别介绍rnn模型和bi-rnn模型。

其中,rnn/bi-rnn模型包含输入层、隐藏层及输出层。其中,隐藏层的层数可以是至少一层,若为一层,则可以称为单层rnn/bi-rnn模型,若为两层或两层以上,则可以称为多层rnn/bi-rnn模型。且需要说明的是,输入层包含的节点个数及隐藏层包含的节点个数可以根据实际的需要预先设置。

请参阅图2,为单层rnn模型的原理图,其中input代表输入层,rnn代表rnn模型的隐藏层,output代表输出层,如图2所示,输入层包含多个输入节点,隐藏层包含多个节点,输出层也包含多个输出节点,在使用rnn/bi-rnn模型检测音频事件时,待检测的音频的指定特征向量是确定为输入层的,且输入层的每一个节点都表示一帧音频数据及该音频数据的指定特征向量。请参阅图3a和图3b,图3a为本发明实施例中rnn模型的示意图,图3b为本发明实施例中bi-rnn模型的示意图。其中,i表示输入节点的输入参数,hid表示隐藏层,o表示输出层的输出。

其中,在rnn/bi-rnn模型中,输入层的多个输入节点依次对应不同时刻的输入参数,例如,对于n个时刻的输入参数,输入层中设置有n个输入节点,第1个时刻的输入参数输入第1个输入节点,第2个时刻的输入参数输入第2个输入节点,第3个时刻的输入参数输入第3个输入节点,并可以此类推其他时刻的输入参数的输入。其中,对于rnn模型,其输入层的输入节点对应的时刻的增长方向与隐藏层节点的箭头方向(传递方向)一致。其中,在利用rnn/bi-rnn模型检测音频事件时,上述输入参数可以是音频数据中的指定特征向量。

此外,在rnn/bi-rnn模型中,存在前向传递及后向传递,其中,前向传输是指从输入层至隐藏层至输出层的传递,与前向传递相反的方向的传递方式即为反向传递,且反向传递通常需要使用到反向传递(back-propagationthroughtime,bptt)算法。

如图3a所示,在rnn模型的前向传递的过程中,不仅使用本节点当前时刻的信息,还使用了本节点当前时刻之前时刻的信息,bi-rnn模型在时间上,在使用本节点当前时刻的信息的基础上,不仅使用了本节点当前时刻之前时刻的信息,还将使用本节点当前时刻之后时刻的信息。因此,在检测音频事件的效果上,bi-rnn模型要优于rnn模型,且rnn模型和bi-rnn模型分别具有利用当前时刻之前时刻的信息进行学习,及利用当前时刻之前的时刻和当前时刻之后的时刻的信息进行学习的能力,学习能力更强,本发明实施例即是基于上述理由将rnn/bi-rnn模型使用在音频事件的检测上的,具有更优的检测效果。

请参阅图4,为本发明实施例中音频事件检测方法的流程示意图,该方法包括:

步骤401、对待检测的音频进行分帧处理,并从分帧处理得到的各时刻的音频数据中分别提取指定特征向量;

在本发明实施例中,音频事件是指不同类别的声音,例如:男声、女生、噪声、歌唱声、汽车鸣笛声、动物叫声、喝彩声等等。

其中,若需要对音频进行音频事件的检测,则需要对待检测的音频进行分帧处理,具体的,可以以n秒的时间间隔对音频进行分帧处理,其中,该n为正整数,且可根据实际应用的需要进行设置。例如,对于一段10秒的音频,分帧的时间间隔可以设置为1秒,则在进行分帧处理之后,将得到10段均为1秒的音频数据,且该10段音频数据将按照在音频中的时间顺序排列,并按照顺序依次编号为不同的时刻。

其中,还将从分帧处理得到的各时刻的音频数据中分别提取指定特征向量,其中,该指定特征向量是由至少一个预先指定的特征构成的向量。该指定的特征包括:fbank特征、能量特征、基频特征及本征音特征等。可以理解的是:通过多种类别的特征组合成向量的方式进行音频事件的检测,相对于使用单一类别的特征进行音频事件的检测,更加适应于具有复杂环境的音频的检测,便于更加准确的检测音频事件,避免混淆相似的音频事件。

步骤402、将所述各时刻的音频数据的指定特征向量输入训练得到的rnn/bi-rnn模型中,得到所述各时刻的音频数据中各音频事件的后验概率。

在本发明实施例中,音频事件是指不同类别的声音,例如:男声、女生、噪声、歌唱声、汽车鸣笛声、动物叫声、喝彩声等等。

在本发明实施例中,需要使用已经训练的rnn/bi-rnn模型,该rnn/bi-rnn模型是基于训练音频及预置的各音频事件训练得到的。其中,训练音频是用于对rnn/bi-rnn模型进行迭代训练的,各音频事件也是预先设置的,例如,可以设置为男声、女声、歌唱声等等。其中,在使用训练音频进行rnn/bi-rnn模型的训练时,也需要对该训练音频进行分帧及从分帧得到的各时刻的训练音频数据中提取指定特征向量,可以理解的是,训练时使用的指定特征向量包含的特征的类型,与对待检测音频进行音频事件检测时使用的指定特征向量包含的特性的类型是相同的。且关于rnn/bi-rnn模型训练的过程将在后续实施例中进行详细描述,此处不做赘述。

其中,将各时刻的音频数据的指定特征向量按照时刻递增的顺序依次输入rnn/bi-rnn模型中,且该rnn/bi-rnn模型将输出各时刻的音频数据中各音频事件的后验概率,其中,音频事件的类型是预先设置的。

其中,后验概率是一种条件概率,在已经设置rnn/bi-rnn模型中的输入层、隐藏层及输出层、及预先设置各种不同的音频事件的条件下,将音频数据的指定特征向量输入后,预先设置的各种不同的音频事件出现的概率。

步骤403、根据所述各时刻的音频数据中各音频事件的后验概率及预置的音频解码算法,从所述各时刻的音频数据中检测音频事件的最佳音频数据序列。

在本发明实施例中,将进一步的利用各时刻的音频数据中各音频事件的后验概率及预置的音频解码算法,从各时刻的音频数据中检测音频事件的最佳音频数据序列。

在本发明实施例中,使用训练得到的rnn/bi-rnn模型对音频事件进行检测,由于rnn模型在进行音频事件检测时除了使用当前时刻的信息,还将使用当前时刻之前时刻的信息,且bi-rnn模型除了使用当前时刻的信息和当前时刻之前时刻的信息以外,还将使用当前时刻之后时刻的信息,因此,rnn/bi-rnn模型的学习能力相对于gmm和svm更强,使用具有更强学习能力的rnn/bi-rnn模型对音频事件进行检测,具有更优的检测效果。

基于图4所示实施例,请参阅图5,为本发明实施例中音频事件检测方法的另一流程示意图,该方法包括:

步骤501、对待检测的音频进行分帧处理,并从分帧处理得到的各时刻的音频数据中分别提取指定特征向量;

步骤502、将所述各时刻的音频数据的指定特征向量输入训练得到的rnn/bi-rnn模型中,得到所述各时刻的音频数据中各音频事件的后验概率;

可以理解的是,步骤501及步骤502分别与图4所示实施例中步骤401及步骤402描述的内容相似,此处不做赘述。

步骤503、依次确定所述各时刻的音频数据中后验概率最大的音频事件,且将后验概率最大的音频事件确定为相应时刻的初始音频事件;

步骤504、按照预置的viterbi解码算法对所述各时刻的初始音频事件进行纠错处理,得到所述各时刻的目标音频事件;

步骤505、基于所述各时刻的目标音频事件的连续性,从所述各时刻的音频数据中提取所述目标音频事件的最佳音频数据序列。

在本发明实施例中,在将各时刻的音频数据的指定特征向量输入训练得到的rnn/bi-rnn模型之后,该rnn/bi-rnn模型的输出层将输出各时刻的音频数据中各音频事件的后验概率。

其中,将依次确定各时刻的音频数据中后验概率最大的音频事件,并将该后验概率最大的音频事件确定为相应时刻的初始音频事件。例如,若t时刻的音频数据中,音频事件a的后验概率为a,音频事件b的后验概率为b,音频事件d的后验概率为d,则将比较后验概率a、b、d的大小,若音频事件a的后验概率最大,则确定t时刻的初始音频事件为a。

其中,viterbi解码算法是用于对各时刻的目标音频事件进行纠错的,该算法将依次对各时刻的初始音频事件进行判断,可以避免使用当前时刻的最大后验概率对应的音频事件作为最终结果确定最佳音频数据序列出现误判的请。例如,在t-1时刻、t时刻及t+1时刻,男声的后验概率分别为0.3、0.6、0.3,女声的后验概率分别为0.5、0.5、0.5,则该三个时刻的初始音频事件分别为女声、男声、女声,然而通常情况下,三个相连的时刻,音频事件的类别应该是连续的,女声、男声、女声的类别不符合真实情况,在这种情况下,使用viterbi算法之后,该三个时刻的目标音频事件将分别为女声、女声、女声。可以理解的是,如何使用viterbi算法进行纠错是现有技术,此处不做赘述。

在本发明实施例中,将基于各时刻的目标音频事件的连续性,从各时刻的音频数据中提取目标音频事件的最佳音频数据序列,例如,在10个时刻的音频数据中,其对应的目标音频事件分别为aaaaaabbbb,则将前6个时刻的音频数据确定为目标音频事件a的最佳音频数据序列,将后4个时刻的音频数据确定为目标音频事件b的最佳音频数据序列。

在本发明实施例中,在利用训练后的rnn/bi-rnn模型得到各时刻的初始音频事件之后,通过利用viterbi解码算法对各时刻的初始音频事件进行纠错处理,得到各时刻的目标音频事件,使得能够避免对某个时刻的音频事件的误判,使得音频事件的检测效果更好。

需要说明的是,上述图4及图5所示实施例描述的利用已训练的rnn/bi-rnn模型进行音频事件的检测,为了更好的理解本发明实施例中的技术方案,下面将着重介绍rnn/bi-rnn模型的训练方法,请参阅图6,为本发明实施例中音频事件检测方法的另一流程示意图,包括:

步骤601、对所述训练音频进行分帧处理,并从分帧处理得到的各时刻的训练音频数据中分别提取指定特征向量;

步骤602、将所述各时刻的训练音频数据的指定特征向量输入待训练的rnn/bi-rnn模型中,并基于预置的各音频事件进行迭代训练,得到训练后的rnn/-bi-rnn模型;

步骤603、对待检测的音频进行分帧处理,并从分帧处理得到的各时刻的音频数据中分别提取指定特征向量;

步骤604、将所述各时刻的音频数据的指定特征向量输入训练得到的rnn/bi-rnn模型中,得到所述各时刻的音频数据中各音频事件的后验概率;

步骤605、根据所述各时刻的音频数据中各音频事件的后验概率及预置的音频解码算法,从所述各时刻的音频数据中检测音频事件的最佳音频数据序列。

可以理解的是,上述步骤603至步骤605分别与图4所示实施例中的步骤401至步骤403描述的内容相似,且步骤605的内容可以进一步参考图5所述实施例中的步骤503至步骤505,此处不做赘述。

在本发明实施例中,需要先训练rnn/bi-rnn模型,训练时需要使用的是训练音频,对该训练音频进行分帧处理,并从分帧处理得到的各时刻的训练音频数据中分别提取指定特征向量,其中,图6所述实施例中的指定特性向量包含的特征的类型与图4所示实施例中的指定特征向量包含的特征的类型是相同的。

其中,若训练的是rnn模型,则将各时刻的训练音频数据的指定特征向量输入待训练的rnn模型中,并基于预置的各音频事件进行迭代训练,得到训练后的rnn模型,具体的,请参阅图7,为本发明实施例训练rnn模型的流程示意图,包括:

步骤701、将所述各时刻的训练音频数据的指定特征向量输入待训练的rnnm模型中,并对前向隐层进行前向传递训练,得到所述rnnm模型输出的所述各时刻的训练音频数据中各音频事件的训练概率;

在本发明实施例中,未开始训练的rnn模型可以称为初始待训练模型,且可以标记为rnn0模型,其中,0表示已经训练的次数为0,若已训练的次数为m,则将得到训练m次后的rnnm模型,且m的初始值为0。需要说明的是,已经预先设置了rnn0模型中各节点的权重。

其中,将各时刻的训练音频数据的指定特征向量输入待训练的rnnm模型中,并对前向隐层进行前向传递训练,得到rnnm模型输出的各时刻的训练音频数据中各音频事件的训练概率。

其中,以t时刻的前向传递为例,前向传递训练具体可以使用以下公式实现:

其中,表示t时刻处于第h个节点的值,i表示t时刻的指定特征向量的维度的总数,wih表示第i个维度在第h个节点的权重,表示t时刻的指定特征向量中第i个维度的特征值,h表示rnn/bi-rnn模型中隐藏层的节点的总个数,wh'h表示第h'个节点到第h个节点的权重,表示t时刻的指定特征向量在第h个节点的输出值,k表示预先设置的音频事件的总个数。

步骤702、基于所述各时刻的训练音频数据中各音频事件的训练概率及预置的bptt算法对所述rnnm模型的前向隐层进行后向传递训练,对所述rnnm模型中各节点的权重进行更新,得到更新后的rnnm+1模型;

在本发明实施例中,将基于各时刻的训练音频数据中各音频事件的训练概率及预置的bptt算法对rnnm模型的前向隐层进行后向传递训练,对rnnm模型中各节点的权重进行更新,得到更新后的rnnm+1模型。

其中,以t时刻为例,反向传递训练对节点的权重进行更新可以通过以下公式实现:

bptt算法:

权重的梯度算法:

权重的更新算法:

其中,表示基于bptt算法得到的t时刻在第h个节点的输出值,f'表示预置的激励函数,表示在前向传递训练中t时刻处于第h个节点的值,k表示预置的音频事件的总个数,表示t时刻处于输出层时第k个音频事件的输出值,whk表示第h个节点处第k个音频事件的权重,h表示rnn/bi-rnn模型中隐藏层的节点的总个数,wh'h表示第h'个节点到第h个节点的权重;

表示t时刻的指定特征向量的第i个维度在第h个节点的权重的梯度;

t表示时刻的总个数,表示t时刻的指定特征向量的第i个维度在第h个节点的输出值,表示t+1时刻的指定特性向量的第i个维度在第h个节点更新后的权重,η表示学习率;其中,t的值从t开始依次减小。

其中,

表示t时刻处于输出层时第k个音频事件的输出值,bt表示与t时刻的输出节点相邻的隐藏层中的节点输出至该输出节点的第k个音频事件的训练概率,表示预先设置的t时刻的输出节点的第k个音频事件的目标概率。即也表示是一个误差值。

需要说明的是,o表示目标函数,目标函数可以是最小均方误差或者最大交互熵,本发明实施例中使用的交互熵,其中交互熵的定义为:

其中,k表示预先设置的音频事件的总个数,zk表示预先设置的各时刻的输出节点输出的各音频事件的目标概率的集合,bk表示前向传递最后输出的第k个音频事件的训练概率的集合。

步骤703、若基于所述rnnm+1模型确定停止迭代训练,则将所述rnnm+1模型确定为训练后的rnn模型;

步骤704、若基于所述rnnm+1模型确定继续迭代训练,则令m=m+1,返回执行步骤701。

在本发明实施例中,在得到rnnm+1模型之后,将确定是否要停止迭代训练,具体的,使用标准音频,对该标准音频进行分帧处理,得到各时刻的标准音频数据,并从该各时刻的标准音频数据中提取指定特征向量,将各时刻的标准音频数据的指定特征向量输入rnnm+1模型中,得到输出的各时刻的各音频事件的输出值,将该各时刻的各音频事件的输出值分别与预置的各时刻的各音频事件的标准值求差值,将所有差值的绝对值中的最大值与预设差值进行比较,若大于或等于该预设差值,则确定需要继续迭代训练,若小于该预设差值,则确定停止迭代训练。

其中,若基于rnnm+1模型确定停止迭代训练,则表明已经完成训练过程,将该rnnm+1模型确定为训练后最终的rnn模型,且使用该rnn模型对待检测的音频进行音频事件的检测。

若基于rnnm+1模型确定继续迭代训练,则令m=m+1,返回执行步骤701中的内容。

在本发明实施例中,通过对rnn模型进行迭代训练,使得能够通过多次迭代的方式得到更优的rnn模型,使得利用该rnn模型进行音频事件检测时具有更好的检测效果。

其中,若训练的是bi-rnn模型,则将各时刻的训练音频数据的指定特征向量输入待训练的bi-rnn模型中,并基于预置的各音频事件进行迭代训练,得到训练后的bi-rnn模型,具体的:请参阅图8,为本发明实施例中训练bi-rnn模型的流程示意图,包括:

步骤801、将所述各时刻的训练音频数据的指定特征向量输入待训练的bi-rnnm模型中,分别对前向隐层进行前向传递训练,及对后向隐层进行前向传递训练,得到所述bi-rnnm模型输出的所述各时刻的训练音频数据中各音频事件的第一训练概率和第二训练概率;

其中,未开始训练的bi-rnn模型可以称为初始待训练模型,且可以标记为bi-rnn0模型,其中,0表示已经训练的次数为0,若已训练的次数为m,则将得到训练m次后的rnnm模型,且m的初始值为0。需要说明的是,已经预先设置了rnn0模型中各节点的权重。

其中,前向隐层是指从1时刻至t时刻传递时的隐藏层,回退隐层是指从t时刻至1时刻传递时的隐藏层。

其中,将利用各时刻的训练音频数据的指定特征向量,从t=1至t=t对前向隐层进行前向传递训练,得到各时刻的训练音频数据中各音频事件的第一训练概率,及从t=t至t=1对回退隐层进行前向传递训练,得到各时刻的训练音频数据中各音频事件的第二训练概率。

其中,不论是对前向隐层的前向传递训练还是对回退隐层的前向传递训练,均可以使用如下公式实现:

其中,表示t时刻处于第h个节点的值,i表示t时刻的指定特征向量的维度的总数,wih表示第i个维度在第h个节点的权重,表示t时刻的指定特征向量中第i个维度的特征值,h表示rnn/bi-rnn模型中隐藏层的节点的总个数,wh'h表示第h'个节点到第h个节点的权重,表示t时刻的指定特征向量在第h个节点的输出值,k表示预先设置的音频事件的总个数。

步骤802、基于所述各时刻的训练音频数据中各音频事件的第三训练概率及预置的bptt算法对所述bi-rnnm模型进行后向传递训练,分别对所述前向隐层中各节点的权重进行更新,及对所述后向隐层中各节点的权重进行更新,得到更新后的bi-rnnm+1模型;

其中,将各时刻的训练音频数据中各音频事件的第一训练概率与对应的第二训练概率相加,将和确定为各时刻的训练音频数据中各音频事件的实际输出概率,可称为第三训练概率。

其中,不论是对前向隐层的后向传递训练还是对回退隐层的后向传递训练,以t时刻为例,均可以使用如下公式实现对节点的权重的更新:

bptt算法:

权重的梯度算法:

权重的更新算法:

其中,表示基于bptt算法得到的t时刻在第h个节点的输出值,f'表示预置的激励函数,表示在前向传递训练中t时刻处于第h个节点的值,k表示预置的音频事件的总个数,表示t时刻处于输出层时第k个音频事件的输出值,whk表示第h个节点处第k个音频事件的权重,h表示rnn/bi-rnn模型中隐藏层的节点的总个数,wh'h表示第h'个节点到第h个节点的权重。

表示t时刻的指定特征向量的第i个维度在第h个节点的权重的梯度。

t表示时刻的总个数,表示t时刻的指定特征向量的第i个维度在第h个节点的输出值,表示t+1时刻的指定特性向量的第i个维度在第h个节点更新后的权重,η表示学习率;其中,t的值从t开始依次减小。

其中,

表示t时刻处于输出层时第k个音频事件的输出值,bt表示与t时刻的输出节点相邻的隐藏层中的节点输出至该输出节点的第k个音频事件的第三训练概率,表示预先设置的t时刻的输出节点的第k个音频事件的目标概率。即也表示是一个误差值。

需要说明的是,o表示目标函数,目标函数可以是最小均方误差或者最大交互熵,本发明实施例中使用的交互熵,其中交互熵的定义为:

其中,k表示预先设置的音频事件的总个数,zk表示预先设置的各时刻的输出节点输出的各音频事件的目标概率的集合,bk表示前向传递最后输出的第k个音频事件的训练概率的集合。

步骤803、若基于所述bi-rnnm+1模型确定停止迭代训练,则将所述bi-rnnm+1模型确定为训练后的bi-rnn模型;

步骤804、若基于所述bi-rnnm+1模型确定继续迭代训练,则令m=m+1,返回执行步骤801。

在本发明实施例中,在得到bi-rnnm+1模型之后,将确定是否要停止迭代训练,具体的,使用标准音频,对该标准音频进行分帧处理,得到各时刻的标准音频数据,并从该各时刻的标准音频数据中提取指定特征向量,将各时刻的标准音频数据的指定特征向量输入bi-rnnm+1模型中,得到输出的各时刻的各音频事件的输出值,将该各时刻的各音频事件的输出值分别与预置的各时刻的各音频事件的标准值求差值,将所有差值的绝对值中的最大值与预设差值进行比较,若大于或等于该预设差值,则确定需要继续迭代训练,若小于该预设差值,则确定停止迭代训练。

其中,若基于bi-rnnm+1模型确定停止迭代训练,则表明已经完成训练过程,将该bi-rnnm+1模型确定为训练后最终的rnn模型,且使用该bi-rnn模型对待检测的音频进行音频事件的检测。

若基于bi-rnnm+1模型确定继续迭代训练,则令m=m+1,返回执行步骤801中的内容。

在本发明实施例中,通过对bi-rnn模型进行迭代训练,使得能够通过多次迭代的方式得到更优的bi-rnn模型,使得利用该bi-rnn模型进行音频事件检测时具有更好的检测效果。

请查阅图9,为本发明实施例中音频事件检测装置的程序模块的结构示意图,包括:

第一分帧提取模块901,用于对待检测的音频进行分帧处理,并从分帧处理得到的各时刻的音频数据中分别提取指定特征向量;

输入模块902,用于将所述各时刻的音频数据的指定特征向量输入训练得到的rnn/bi-rnn模型中,得到所述各时刻的音频数据中各音频事件的后验概率,所述rnn/bi-rnn是基于训练音频及预置的所述各音频事件训练得到的;

检测模块903,用于根据所述各时刻的音频数据中各音频事件的后验概率及预置的音频解码算法,从所述各时刻的音频数据中检测音频事件的最佳音频数据序列。

在本发明实施例中,音频事件是指不同类别的声音,例如:男声、女生、噪声、歌唱声、汽车鸣笛声、动物叫声、喝彩声等等。

其中,若需要对音频进行音频事件的检测,则需要对待检测的音频进行分帧处理,具体的,可以以n秒的时间间隔对音频进行分帧处理,其中,该n为正整数,且可根据实际应用的需要进行设置。例如,对于一段10秒的音频,分帧的时间间隔可以设置为1秒,则在进行分帧处理之后,将得到10段均为1秒的音频数据,且该10段音频数据将按照在音频中的时间顺序排列,并按照顺序依次编号为不同的时刻。

其中,该指定特征向量是由至少一个预先指定的特征构成的向量。该指定的特征包括:fbank特征、能量特征、基频特征及本征音特征等。可以理解的是:通过多种类别的特征组合成向量的方式进行音频事件的检测,相对于使用单一类别的特征进行音频事件的检测,更加适应于具有复杂环境的音频的检测,便于更加准确的检测音频事件,避免混淆相似的音频事件。

在本发明实施例中,使用训练得到的rnn/bi-rnn模型对音频事件进行检测,由于rnn模型在进行音频事件检测时除了使用当前时刻的信息,还将使用当前时刻之前时刻的信息,且bi-rnn模型除了使用当前时刻的信息和当前时刻之前时刻的信息以外,还将使用当前时刻之后时刻的信息,因此,rnn/bi-rnn模型的学习能力相对于gmm和svm更强,使用具有更强学习能力的rnn/bi-rnn模型对音频事件进行检测,具有更优的检测效果。

请参阅图10,为本发明实施例中音频事件检测装置的程序模块的示意图,包括如图9所示实施例中的第一分帧提取模块901、输入模块902及检测模块903,且与图9所示实施例中描述的内容相似,此处不做赘述。

在本发明实施例中,检测模块903包括:

确认模块1001,用于依次确定所述各时刻的音频数据中后验概率最大的音频事件,且将后验概率最大的音频事件作为相应时刻的初始音频事件;

纠错模块1002,用于按照预置的viterbi解码算法对所述各时刻的初始音频事件进行纠错处理,得到所述各时刻的目标音频事件;

序列提取模块1003,用于基于所述各时刻的目标音频事件的连续性,从所述各时刻的音频数据中提取所述目标音频事件的最佳音频数据序列。

其中,viterbi解码算法是用于对各时刻的目标音频事件进行纠错的,该算法将依次对各时刻的初始音频事件进行判断,可以避免使用当前时刻的最大后验概率对应的音频事件作为最终结果确定最佳音频数据序列出现误判的请。例如,在t-1时刻、t时刻及t+1时刻,男声的后验概率分别为0.3、0.6、0.3,女声的后验概率分别为0.5、0.5、0.5,则该三个时刻的初始音频事件分别为女声、男声、女声,然而通常情况下,三个相连的时刻,音频事件的类别应该是连续的,女声、男声、女声的类别不符合真实情况,在这种情况下,使用viterbi算法之后,该三个时刻的目标音频事件将分别为女声、女声、女声。可以理解的是,在使用viterbi算法进行纠错的方式是现有技术,此处不做赘述。

在本发明实施例中,在利用训练后的rnn/bi-rnn模型得到各时刻的初始音频事件之后,通过利用viterbi解码算法对各时刻的初始音频事件进行纠错处理,得到各时刻的目标音频事件,使得能够避免对某个时刻的音频事件的误判,使得音频事件的检测效果更好。

请参阅图11,为本发明实施例中音频事件检测装置的程序模块的示意图,包括如图9所示实施例中的第一分帧提取模块901、输入模块902及检测模块903,且与图9所示实施例中描述的内容相似,此处不做赘述。

该装置还包括:

第二分帧提取模块1101,用于对所述训练音频进行分帧处理,并从分帧处理得到的各时刻的训练音频数据中分别提取指定特征向量;

训练模块1102,用于将所述各时刻的训练音频数据的指定特征向量输入待训练的rnn/bi-rnn模型中,并基于预置的各音频事件进行迭代训练,得到训练后的rnn/-bi-rnn模型。

进一步的,请参阅图12,为本发明实施例中训练模块1102的细化程序模块的结构示意图,包括:

第一前向训练模块1201,用于将所述各时刻的训练音频数据的指定特征向量输入待训练的rnnm模型中,并对前向隐层进行前向传递训练,得到所述rnnm模型输出的所述各时刻的训练音频数据中各音频事件的训练概率,其中,m的初始值为0,且rnn0模型为初始待训练模型;

在本发明实施例中,未开始训练的rnn模型可以称为初始待训练模型,且可以标记为rnn0模型,其中,0表示已经训练的次数为0,若已训练的次数为m,则将得到训练m次后的rnnm模型,且m的初始值为0。需要说明的是,已经预先设置了rnn0模型中各节点的权重。

其中,将各时刻的训练音频数据的指定特征向量输入待训练的rnnm模型中,并对前向隐层进行前向传递训练,得到rnnm模型输出的各时刻的训练音频数据中各音频事件的训练概率。

其中,以t时刻的前向传递为例,前向传递训练具体可以使用以下公式实现:

其中,表示t时刻处于第h个节点的值,i表示t时刻的指定特征向量的维度的总数,wih表示第i个维度在第h个节点的权重,表示t时刻的指定特征向量中第i个维度的特征值,h表示rnn/bi-rnn模型中隐藏层的节点的总个数,wh'h表示第h'个节点到第h个节点的权重,表示t时刻的指定特征向量在第h个节点的输出值,k表示预先设置的音频事件的总个数。

第一后向训练模块1202,用于基于所述各时刻的训练音频数据中各音频事件的训练概率及预置的反向传递bptt算法对所述rnnm模型的前向隐层进行后向传递训练,对所述rnnm模型中各节点的权重进行更新,得到更新后的rnnm+1模型,其中,所述rnn0模型中各节点的权重为预先设置的值;

其中,以t时刻为例,反向传递训练对节点的权重进行更新可以通过以下公式实现:

bptt算法:

权重的梯度算法:

权重的更新算法:

其中,表示基于bptt算法得到的t时刻在第h个节点的输出值,f'表示预置的激励函数,表示在前向传递训练中t时刻处于第h个节点的值,k表示预置的音频事件的总个数,表示t时刻处于输出层时第k个音频事件的输出值,whk表示第h个节点处第k个音频事件的权重,h表示rnn/bi-rnn模型中隐藏层的节点的总个数,wh'h表示第h'个节点到第h个节点的权重。

表示t时刻的指定特征向量的第i个维度在第h个节点的权重的梯度。

t表示时刻的总个数,表示t时刻的指定特征向量的第i个维度在第h个节点的输出值,表示t+1时刻的指定特性向量的第i个维度在第h个节点更新后的权重,η表示学习率;其中,t的值从t开始依次减小。

其中,

表示t时刻处于输出层时第k个音频事件的输出值,bt表示与t时刻的输出节点相邻的隐藏层中的节点输出至该输出节点的第k个音频事件的训练概率,表示预先设置的t时刻的输出节点的第k个音频事件的目标概率。即也表示是一个误差值。

需要说明的是,o表示目标函数,目标函数可以是最小均方误差或者最大交互熵,本发明实施例中使用的交互熵,其中交互熵的定义为:

其中,k表示预先设置的音频事件的总个数,zk表示预先设置的各时刻的输出节点输出的各音频事件的目标概率的集合,bk表示前向传递最后输出的第k个音频事件的训练概率的集合。

第一确定模块1203,用于若基于所述rnnm+1模型确定停止迭代训练,则将所述rnnm+1模型作为训练后的rnn模型;

第一迭代返回模块1204,用于若基于所述rnnm+1模型确定继续迭代训练,则令m=m+1,返回所述前向训练模块1201。

在本发明实施例中,在得到rnnm+1模型之后,将确定是否要停止迭代训练,具体的,使用标准音频,对该标准音频进行分帧处理,得到各时刻的标准音频数据,并从该各时刻的标准音频数据中提取指定特征向量,将各时刻的标准音频数据的指定特征向量输入rnnm+1模型中,得到输出的各时刻的各音频事件的输出值,将该各时刻的各音频事件的输出值分别与预置的各时刻的各音频事件的标准值求差值,将所有差值的绝对值中的最大值与预设差值进行比较,若大于或等于该预设差值,则确定需要继续迭代训练,若小于该预设差值,则确定停止迭代训练。

在本发明实施例中,通过对rnn模型进行迭代训练,使得能够通过多次迭代的方式得到更优的rnn模型,使得利用该rnn模型进行音频事件检测时具有更好的检测效果。

和/或,

请参阅图13,为本发明实施例中训练模块1102的细化程序模块的结构示意图,训练模块1102包括:

第二前向训练模块1301,用于将所述各时刻的训练音频数据的指定特征向量输入待训练的bi-rnnm模型中,分别对前向隐层进行前向传递训练,及对后向隐层进行前向传递训练,得到所述bi-rnnm模型输出的所述各时刻的训练音频数据中各音频事件的第一训练概率和第二训练概率,其中,m的初始值为0,且bi-rnn0模型为初始待训练模型;

其中,未开始训练的bi-rnn模型可以称为初始待训练模型,且可以标记为bi-rnn0模型,其中,0表示已经训练的次数为0,若已训练的次数为m,则将得到训练m次后的rnnm模型,且m的初始值为0。需要说明的是,已经预先设置了rnn0模型中各节点的权重。

其中,前向隐层是指从1时刻至t时刻传递时的隐藏层,回退隐层是指从t时刻至1时刻传递时的隐藏层。

其中,将利用各时刻的训练音频数据的指定特征向量,从t=1至t=t对前向隐层进行前向传递训练,得到各时刻的训练音频数据中各音频事件的第一训练概率,及从t=t至t=1对回退隐层进行前向传递训练,得到各时刻的训练音频数据中各音频事件的第二训练概率。

其中,不论是对前向隐层的前向传递训练还是对回退隐层的前向传递训练,均可以使用如下公式实现:

其中,表示t时刻处于第h个节点的值,i表示t时刻的指定特征向量的维度的总数,wih表示第i个维度在第h个节点的权重,表示t时刻的指定特征向量中第i个维度的特征值,h表示rnn/bi-rnn模型中隐藏层的节点的总个数,wh'h表示第h'个节点到第h个节点的权重,表示t时刻的指定特征向量在第h个节点的输出值,k表示预先设置的音频事件的总个数。

第二后向训练模块1302,用于基于所述各时刻的训练音频数据中各音频事件的第三训练概率及预置的bptt算法对所述bi-rnnm模型进行后向传递训练,分别对所述前向隐层中各节点的权重进行更新,及对所述后向隐层中各节点的权重进行更新,得到更新后的bi-rnnm+1模型,所述第三训练概率为第一训练概率与第二训练概率的和,所述rnn0模型中各节点的权重为预先设置的值;

其中,不论是对前向隐层的后向传递训练还是对回退隐层的后向传递训练,以t时刻为例,均可以使用如下公式实现对节点的权重的更新:

bptt算法:

权重的梯度算法:

权重的更新算法:

其中,表示基于bptt算法得到的t时刻在第h个节点的输出值,f'表示预置的激励函数,表示在前向传递训练中t时刻处于第h个节点的值,k表示预置的音频事件的总个数,表示t时刻处于输出层时第k个音频事件的输出值,whk表示第h个节点处第k个音频事件的权重,h表示rnn/bi-rnn模型中隐藏层的节点的总个数,wh'h表示第h'个节点到第h个节点的权重;

表示t时刻的指定特征向量的第i个维度在第h个节点的权重的梯度。

t表示时刻的总个数,表示t时刻的指定特征向量的第i个维度在第h个节点的输出值,表示t+1时刻的指定特性向量的第i个维度在第h个节点更新后的权重,η表示学习率;其中,t的值从t开始依次减小。

其中,

表示t时刻处于输出层时第k个音频事件的输出值,bt表示与t时刻的输出节点相邻的隐藏层中的节点输出至该输出节点的第k个音频事件的第三训练概率,表示预先设置的t时刻的输出节点的第k个音频事件的目标概率。即也表示是一个误差值。

需要说明的是,o表示目标函数,目标函数可以是最小均方误差或者最大交互熵,本发明实施例中使用的交互熵,其中交互熵的定义为:

其中,k表示预先设置的音频事件的总个数,zk表示预先设置的各时刻的输出节点输出的各音频事件的目标概率的集合,bk表示前向传递最后输出的第k个音频事件的训练概率的集合。

第二确定模块1303,用于若基于所述bi-rnnm+1模型确定停止迭代训练,则将所述bi-rnnm+1模型确定为训练后的bi-rnn模型;

第二迭代返回模块1304,用于若基于所述bi-rnnm+1模型确定继续迭代训练,则令m=m+1,返回执行所述第二前向训练模块1301。

在本发明实施例中,在得到bi-rnnm+1模型之后,将确定是否要停止迭代训练,具体的,使用标准音频,对该标准音频进行分帧处理,得到各时刻的标准音频数据,并从该各时刻的标准音频数据中提取指定特征向量,将各时刻的标准音频数据的指定特征向量输入bi-rnnm+1模型中,得到输出的各时刻的各音频事件的输出值,将该各时刻的各音频事件的输出值分别与预置的各时刻的各音频事件的标准值求差值,将所有差值的绝对值中的最大值与预设差值进行比较,若大于或等于该预设差值,则确定需要继续迭代训练,若小于该预设差值,则确定停止迭代训练。

在本发明实施例中,通过对bi-rnn模型进行迭代训练,使得能够通过多次迭代的方式得到更优的bi-rnn模型,使得利用该bi-rnn模型进行音频事件检测时具有更好的检测效果。

本发明实施例中还提供一种终端设备,包括存储器、处理器及存储在存储器上且在处理器上运行的计算机程序,其特征在于,处理器执行计算机程序时,实现如图4至图6所示实施例中的音频事件检测方法中的各个步骤。

本发明实施例中还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如图4至图6所示实施例中的音频事件检测方法的各个步骤。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。

所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。

以上为对本发明所提供的一种音频事件检测方法、装置及计算机可读存储介质的描述,对于本领域的技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1