vad模型的训练方法及装置、语音端点检测方法及装置
技术领域
1.本发明涉及计算机技术领域,具体涉及一种vad模型的训练方法及装置、语音端点检测方法及装置。
背景技术:2.目前呼叫中心需要实时面对用户表达的语音信息做出回复,这就要求在系统对用户源源不断的音频流进行识别检测,当检测到用户说话停顿时,及时地切断音频并传输到后续的模块,当前常见的做法是使用基于过零率或者短时能量的语音活性检测技术。但是现在用户使用场景中,往往会存在较大的噪音或者混响,信噪比较低,使得现有的方法无法有效的工作,使得通话音频无法被及时切割,也无法联系上下文。
技术实现要素:3.本发明要解决的技术问题是为了克服现有技术中无法将环境噪音与人声检测,且无法联系上下文的缺陷,提供一种语音vad(voice activity detection,语音端点检测)模型的训练方法及装置、语音端点检测方法及装置。
4.本发明是通过下述技术方案来解决上述技术问题:
5.一种vad模型的训练方法,包括以下步骤:
6.获取训练样本,其中,所述训练样本包括若干帧音频数据和每帧音频数据对应的人声标签或非人声标签;
7.将目标帧音频数据以及与所述目标帧音频数据相邻的至少一帧音频数据输入vad模型,得到所述目标帧音频数据的检测结果;其中,所述目标帧音频数据为若干帧音频数据中的任一帧音频数据;
8.根据所述目标帧音频数据对应的人声或非人声标签以及所述检测结果计算损失,并根据所述损失调整所述vad模型的参数,直至满足收敛条件,得到训练好的vad模型。
9.优选地,所述将目标帧音频数据以及与所述目标帧音频数据相邻的至少一帧音频数据输入vad模型的步骤具体包括:
10.将目标帧音频数据、所述目标帧音频数据之前的至少一帧音频数据以及所述目标帧音频数据之后的至少一帧音频数据输入vad模型。
11.优选地,每帧音频数据对应的人声标签或非人声标签根据每帧音频数据的音素标签得到。
12.优选地,在将目标帧音频数据以及与所述目标帧音频数据相邻的至少一帧音频数据输入vad模型步骤之前还包括:
13.对所述训练样本中的音频数据进行加噪增强处理。
14.作为本发明提供的第二个方面,本发明提供一种vad模型的训练装置,包括:
15.第一获取模块,用于获取训练样本,其中,所述训练样本包括若干帧音频数据和每帧音频数据对应的人声标签或非人声标签;
16.第一检测模块,用于将目标帧音频数据以及与所述目标帧音频数据相邻的至少一帧音频数据输入vad模型,得到检测结果;其中,所述目标帧音频数据为若干帧音频数据中的任一帧音频数据;
17.模型训练模块,用于根据所述目标帧音频数据对应的人声或非人声标签以及所述检测结果计算损失,并根据所述损失调整所述vad模型的参数,直至满足收敛条件,得到训练好的vad模型。
18.作为本发明提供的第三方面,本发明提供一种语音端点检测方法,获取待检测的音频数据;
19.将目标帧音频数据以及与所述目标帧音频数据相邻的至少一帧音频数据输入vad模型,得到所述目标帧音频数据的检测结果;其中,所述vad模型利用上述训练方法训练得到,所述目标帧音频数据为所述待检测的音频数据中的任一帧音频数据。
20.优选地,所述将目标帧音频数据以及与所述目标帧音频数据相邻的至少一帧音频数据输入vad模型的步骤具体包括:
21.将目标帧音频数据、所述目标帧音频数据之前的至少一帧音频数据以及所述目标帧音频数据之后的至少一帧音频数据输入vad模型。
22.作为本发明提供的第四个方面,本发明提供一种语音端点检测装置,包括:
23.第二获取模块,用于获取待检测的音频数据;
24.第二检测模块,用于将目标帧音频数据以及与所述目标帧音频数据相邻的至少一帧音频数据输入vad模型,得到所述目标帧音频数据的检测结果;其中,所述vad模型利用上述的训练方法训练得到,所述目标帧音频数据为所述待检测的音频数据中的任一帧音频数据。
25.作为本发明的第五个方面,提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述的vad模型的训练方法或者语音端点检测方法。
26.作为本发明的第六个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的vad模型的训练方法或者语音端点检测方法。
27.本发明的积极进步效果在于:结合音频数据的上下文信息训练vad模型,使得训练得到的vad模型能够将人声与非人声进行准确地区分,提高了语音检测的准确性。
附图说明
28.图1为本发明实施例1的vad模型的训练方法流程示意图。
29.图2为本发明实施例1中的vad模型的结构示意图。
30.图3为本发明实施例1中的vad模型的示意图。
31.图4为本发明实施例2的vad模型的训练装置的结构示意图。
32.图5为本发明实施例3的语音端点检测方法的流程示意图。
33.图6为本发明实施例4的语音端点检测装置的结构示意图。
34.图7为本发明实施例4的语音端点检测装置的另一种示意图。
35.图8为本发明实施例5的电子设备的结构示意图。
具体实施方式
36.下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
37.实施例1
38.请参见图1,本实施例提供一种vad模型的训练方法,包括以下步骤:
39.s101、获取训练样本;
40.其中,训练样本包括若干帧音频数据和每帧音频数据对应的人声标签或非人声标签;
41.在本实施例中,对训练样本中的音频数据进行分帧处理。可以使用hmm-gmm(hidden markov model-gaussian mixture mode,隐马尔科夫链模型-混合高斯模型)模型,并对音频数据对应的文本建立模型,利用该模型可获取每一帧音频数据对应的音素标签,音素标签包括人声标签以及非人声标签。
42.请参见图2,本实施例中的vad模型中可以包括三层cnn(convolutional neural networks,卷积神经网络)网络(即图2中的卷积层)以及两层tdnn(time-delay neural network,时延神经网络)网络(即图2中的tdnn层),cnn网络用于将训练样本进行特征进行提取,tdnn网络用于对提取的特征进行建模。其中,卷积层包括convolution_1层、convolution_2层、convolution_3层、relu_1层、relu_2层、relu_3层、batchnorm_1层、batchnorm_2层、batchnorm_3层,tdnn层包括tdnn_1层、tdnn_2层、tdnn_3层、relu_1层、relu_2层、relu_3层、renorm_1层、renorm_2层。本实施例中的vad模型采用三层cnn网络以及两层tdnn网络进行连接,可以降低vad模型中的参数量,从而降低vad模型的计算复杂度。在具体实施的一个例子中,vad模型的参数量仅有56万。
43.在使用该vad模型的过程中,可以提取音频数据的特征,并将提取的特征输入vad模型中,例如可以提取音频数据的13维的mfcc(mel-scale frequency cepstral coefficients,梅尔倒谱系数)特征,并将提取的mfcc特征输入该vad模型中。
44.s102、将目标帧音频数据以及与目标帧音频数据相邻的至少一帧音频数据输入vad模型,得到目标帧音频数据的检测结果;其中,目标帧音频数据为若干帧音频数据中的任一帧音频数据;
45.s103、根据目标帧音频数据对应的人声或非人声标签以及检测结果计算损失,并根据损失调整vad模型的参数,直至满足收敛条件,得到训练好的vad模型。
46.在本实施例中,结合音频数据的上下文信息训练vad模型,使得训练得到的vad模型能够将人声与非人声进行准确地区分,提高了语音检测的准确性。此外,各层cnn网络可以进行权值共享,各层tdnn网络也可进行权值共享;这就会降低计算量。在不影响网络性能的前提下,降低网络的参数,使得训练出来的神经网络兼顾性能以及效率。
47.具体地,将目标帧音频数据以及与目标帧音频数据相邻的至少一帧音频数据输入vad模型的步骤可以包括:
48.将目标帧音频数据、目标帧音频数据之前的至少一帧音频数据以及目标帧音频数据之后的至少一帧音频数据输入vad模型。
49.在本实施例中,可以选取若干个目标帧,然后将若干个目标帧以及其相邻的前后至少一帧的音频数据进行去重打包输入至vad模型。例如,可以选取连续的8帧音频数据作
为目标帧,每个目标帧之前的9帧以及之后的3帧,不使用去重打包的时候,需要将8组13帧共104帧的音频数据输入至vad模型,但是将训练数据进行去重打包之后,只需要将20帧的音频数据输入是vad模型中即可。这样不仅节约了存储空间,提高了vad模型的性能。
50.在具体实施中,每帧音频数据对应的人声标签或非人声标签可以根据每帧音频数据的音素标签得到,具体地,可以通过hmm-gmm模型对音频数据对应的文本进行帧级别对齐,可以得到每帧音频数据对应的音素标签,然后将音素标签合并为人声标签或者非人声标签。
51.具体地,在将目标帧音频数据以及与目标帧音频数据相邻的至少一帧音频数据输入vad模型步骤之前还可以包括:对训练样本中的音频数据进行加噪增强处理。
52.在本实施例中,对于训练样本进行数据增强,一来是可以使用较少的训练样本来生成更多的训练样本,二是可以增强vad模型的鲁棒性。
53.请参见图3,在使用本实施例中vad模型的时候,可以设置两个线程:第一线程以及第二线程;
54.其中,在第一线程中包括获取音频数据流、将音频数据中的特征提取、将特征输入vad模型,以得到某一帧音频数据的得分。在本实施例中,根据第一线程中音频数据的得分得到音频得分序列。
55.由于在使用中会出现前后帧的音频数据得分差距过大的情况,便可将音频数据得分序列进行平滑处理。在实际使用的时候,还可以将音频数据得分序列输入流式asr模型(一种语音识别模型),流式asr模型用于提升语音识别的实时性。如图3所示,第二线程包括输出音频得分序列、对音频得分序列进行平滑处理、输出至流式asr模型。
56.实施例2
57.请参见图4,本实施例提供一种vad模型的训练装置,包括:
58.第一获取模块101,用于获取训练样本,其中,训练样本包括若干帧音频数据和每帧音频数据对应的人声标签或非人声标签;
59.第一检测模块102,用于将目标帧音频数据以及与目标帧音频数据相邻的至少一帧音频数据输入vad模型,得到检测结果;其中,目标帧音频数据为若干帧音频数据中的任一帧音频数据;
60.模型训练模块103,用于根据目标帧音频数据对应的人声或非人声标签以及检测结果计算损失,并根据损失调整vad模型的参数,直至满足收敛条件,得到训练好的vad模型。
61.具体地,第一检测模块102可以用于将目标帧音频数据、目标帧音频数据之前的至少一帧音频数据以及目标帧音频数据之后的至少一帧音频数据输入vad模型。
62.具体地,第一获取模块101可以用于根据每帧音频数据的音素标签得到每帧音频数据对应的人声标签或非人声标签。
63.具体地,模型训练模块103可以用于对训练样本中的音频数据进行加噪增强处理。
64.本实施例的中的vad模型的训练装置的工作原理为实施例1中vad模型的训练方法的原理,故不再赘述。
65.实施例3
66.请参见图5,本实施例提供一种语音端点检测方法,包括以下步骤:
67.s201、获取待检测的音频数据;
68.s202、将目标帧音频数据以及与目标帧音频数据相邻的至少一帧音频数据输入vad模型,得到目标帧音频数据的检测结果;
69.其中,所述vad模型利用实施例1所述的训练方法训练得到,目标帧音频数据为待检测的音频数据中的任一帧音频数据。
70.具体地,将目标帧音频数据以及与目标帧音频数据相邻的至少一帧音频数据输入vad模型的步骤具体包括:
71.将目标帧音频数据、目标帧音频数据之前的至少一帧音频数据以及目标帧音频数据之后的至少一帧音频数据输入vad模型。
72.在本实施例中,能够将目标帧音频相邻至少一帧的音频数据进行检测,在检测的时候就可以联合上下文的信息对需要检测的音频数据进行检测,有利于提高语音检测的准确性。
73.在本实施例中,vad模型可以设置两个线程:第一线程以及第二线程。本实施例中的两个线程与实施例1中的两个线程原理相同,故不再赘述。
74.实施例4
75.请参见图6,本实施例提供一种语音端点检测装置,包括:
76.第二获取模块201,用于获取待检测的音频数据;
77.第二检测模块202,用于将目标帧音频数据以及与目标帧音频数据相邻的至少一帧音频数据输入vad模型,得到目标帧音频数据的检测结果;其中,vad模型利用实施例1的训练方法训练得到,目标帧音频数据为待检测的音频数据中的任一帧音频数据。
78.请参见图7,在本实施例中的语音端点检测装置,在实现语音检测的时候,又可以称之为解码器。在实际使用的时候,能够将若干个解码器组成一个解码组,若干个解码器能够共享一个vad模型,以此来节约内存空间。
79.当待检测的音频数据进行检测的时候,与解码器建立会话,解码器包括三个状态:空闲、使用中、使用完毕。在图7中,解码器1的状态为:空闲,便可申请解码器1进行解码,且解码器1与该会话绑定。解码器2的状态为:使用中,解码器2则处于与会话进行绑定的状态。解码器n的状态为:使用完毕,则解码器n和与之间绑定的会话解绑。
80.实施例5
81.图8为本实施例提供的一种电子设备的结构示意图。电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现实施例1的vad模型的训练方法或者实施例3的语音端点检测方法。图8显示的电子设备30仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
82.如图8所示,电子设备30可以以通用计算设备的形式表现,例如其可以为服务器设备。电子设备30的组件可以包括但不限于:上述至少一个处理器31、上述至少一个存储器32、连接不同系统组件(包括存储器32和处理器31)的总线33。
83.总线33包括数据总线、地址总线和控制总线。
84.存储器32可以包括易失性存储器,例如随机存取存储器(ram)321和/或高速缓存存储器322,还可以进一步包括只读存储器(rom)323。
85.存储器32还可以包括具有一组(至少一个)程序模块324的程序/实用工具325,这
样的程序模块324包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
86.处理器31通过运行存储在存储器32中的计算机程序,从而执行各种功能应用以及数据处理,例如本发明实施例1的vad模型的训练方法或者实施例3的语音端点检测方法。
87.电子设备30也可以与一个或多个外部设备34(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(i/o)接口35进行。并且,模型生成的设备30还可以通过网络适配器36与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器36通过总线33与模型生成的设备30的其它模块通信。应当明白,尽管图中未示出,可以结合模型生成的设备30使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、raid(磁盘阵列)系统、磁带驱动器以及数据备份存储系统等。
88.应当注意,尽管在上文详细描述中提及了电子设备的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
89.实施例6
90.本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,程序被处理器执行时实现实施例1的vad模型的训练方法或者实施例3的语音端点检测方法。
91.其中,可读存储介质可以采用的更具体可以包括但不限于:便携式盘、硬盘、随机存取存储器、只读存储器、可擦拭可编程只读存储器、光存储器件、磁存储器件或上述的任意合适的组合。
92.在可能的实施方式中,本发明还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行实现实施例1的vad模型的训练方法或者实施例3的语音端点检测方法。
93.其中,可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的程序代码,程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户设备上部分在远程设备上执行或完全在远程设备上执行。
94.虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。