掌桥专利:专业的专利平台
掌桥专利
首页

语音检测模型的训练方法、语音检测方法、装置及设备

文献发布时间:2024-01-17 01:14:25


语音检测模型的训练方法、语音检测方法、装置及设备

技术领域

本公开涉及计算机技术领域,尤其涉及深度学习、语音识别技术领域,具体涉及一种语音检测模型的训练方法、语音检测方法、装置及设备。

背景技术

语音静音检测(Voice Activity Detection,VAD)是语音识别中的一个重要的前端处理模块,其主要作用是检测当前语音段是静音还是非静音。VAD应用于离线语音处理中,可以用于切分视频中的音频,配合语音识别可以生成带时间戳的语音字幕。VAD应用于流式语音处理中,在检测到语音时可以请求语音识别服务转写文本,从而提升语音识别服务的利用率,节约成本,但是对VAD的处理速度有要求。因此,如何提升语音静音检测的处理速度越来越受到人们的关注。

发明内容

本公开提供了一种语音检测模型的训练方法、语音检测方法、装置及设备。

根据本公开实施例的一方面,提供了一种语音检测模型的训练方法,包括:获取语音样本集,语音样本集包括语音样本的样本特征以及语音样本的标注信息;将样本特征输入语音检测模型的编码器,得到中间特征,且中间特征的维度小于样本特征的维度;将中间特征输入语音检测模型的解码器,得到语音样本的预测置信度,预测置信度用于表征语音样本为非静音的概率;根据标注信息和预测置信度对语音检测模型进行训练,得到训练好的语音检测模型。

根据本公开实施例的另一方面,提供了一种语音检测方法,包括:获取待检语音流中的当前语音段;确定当前语音段的语音特征;将语音特征输入训练好的语音检测模型,得到当前语音段的置信度,训练好的语音检测模型为根据上述任一项实施例的方法训练得到的;根据当前语音段的置信度,确定当前语音段的第一标签,第一标签用于确定待检语音流中非静音片段的位置。

根据本公开实施例的另一方面,提供了一种语音检测模型的训练装置,包括:获取单元,用于获取语音样本集,语音样本集包括语音样本的样本特征以及语音样本的标注信息;编码单元,用于将样本特征输入语音检测模型的编码器,得到中间特征,且中间特征的维度小于样本特征的维度;解码单元,用于将中间特征输入语音检测模型的解码器,得到语音样本的预测置信度,预测置信度用于表征语音样本为非静音的概率;训练单元,用于根据标注信息和预测置信度对语音检测模型进行训练,得到训练好的语音检测模型。

根据本公开实施例的另一方面,提供了一种语音检测装置,包括:切分单元,用于获取待检语音流中的当前语音段;确定单元,用于确定当前语音段的当前语音特征;预测单元,用于将语音特征输入训练好的语音检测模型,得到语音段的置信度,训练好的语音检测模型为根据上述任一项实施例的方法训练得到的;处理单元,根据当前语音段的置信度,确定当前语音段的第一标签,第一标签用于确定待检语音流中非静音片段的位置。

根据本公开的另一方面,提供了一种电子设备,包括:至少一个处理器;以及与该至少一个处理器通信连接的存储器;其中,该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行本公开实施例中任一的方法。

根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,该计算机指令用于使该计算机执行根据本公开实施例中任一的方法。

根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现根据本公开实施例中任一的方法。

本公开实施例提供的语音检测模型的训练方法、语音检测方法、装置及设备,通过获取语音样本集,语音样本集包括语音样本的样本特征以及语音样本的标注信息;将样本特征输入语音检测模型的编码器,得到中间特征,且中间特征的维度小于样本特征的维度;将中间特征输入语音检测模型的解码器,得到语音样本的预测置信度,预测置信度用于表征语音样本为非静音的概率;根据标注信息和预测置信度对语音检测模型进行训练,得到训练好的语音检测模型,训练好的语音检测模型可以用于语音静音检测,且由于编码器可以降低输出的中间特征的维度,从而可以提升语音检测模型的处理速度,使得语音检测模型不仅可以用于离线语音检测,还可以用于流式语音检测,实时性好,能够满足多种场景。

应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。

附图说明

附图用于更好地理解本方案,不构成对本公开的限定。其中:

图1为应用本公开实施例的语音检测模型的训练方法及语音检测方法的系统的结构示意图;

图2是根据本公开实施例提供的语音检测模型的训练方法的流程示意图;

图3是根据本公开实施例提供的语音检测模型的结构示意图;

图4是图3中编码器的第一卷积块的结构示意图;

图5是图3中编码器的第二卷积块的结构示意图;

图6是图3中解码器的结构示意图;

图7是根据本公开实施例提供的语音检测方法的流程示意图;

图8是根据本公开实施例提供的语音检测模型的训练装置的结构示意图;

图9是根据本公开实施例提供的语音检测装置的结构示意图;

图10是用来实现本公开实施例的语音检测模型的训练方法及语音检测方法的电子设备的框图。

具体实施方式

以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

本公开实施例提供一种语音检测模型的训练方法、语音检测方法、装置及设备。具体地,本公开实施例的语音检测模型的训练方法及语音检测方法可以由电子设备执行,其中,该电子设备可以为终端或者服务器等设备。该终端可以为智能手机、平板电脑、笔记本电脑、智能语音交互设备、智能家电、穿戴式智能设备、飞行器、智能车载终端等设备,终端还可以包括客户端,该客户端可以是音频客户端、视频客户端、浏览器客户端、即时通信客户端或小程序等。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。

在语音静音检测中,语音的采样率比较多样,有8k,16k,24k,48k等。检测的语音段(chunk)的长度不能过长,也不能过短,一般为10/20/30ms等。语音段的长度过长,检测粒度偏大,不准确,容易出现漏检。语音段的长度过短,没有足够的上下文,容易导致分类错误,精度降低。并且VAD通常都设置于终端侧,需要轻量且高效,例如语音检测模型的大小

<<2MB,30+ms的语音流需要在1ms内处理完,且只使用一个线程。因此,VAD作为语音的前端处理模块,其准确率和泛化性要求极高,否则会出现误切或漏切。

另外,相关技术中采用基于能量的VAD和基于高斯混合模型的(Gaussian mixturemodel,GMM)的VAD,但是,这两种方式的准召率较差。

为了解决上述问题中的至少一种,本公开实施例提供的语音检测模型的训练方法、语音检测方法、装置及设备,通过获取语音样本集,语音样本集包括语音样本的样本特征以及语音样本的标注信息;将样本特征输入语音检测模型的编码器,得到中间特征,且中间特征的维度小于样本特征的维度;将中间特征输入语音检测模型的解码器,得到语音样本的预测置信度,预测置信度用于表征语音样本为非静音的概率;根据标注信息和预测置信度对语音检测模型进行训练,得到训练好的语音检测模型,训练好的语音检测模型可以用于语音静音检测,且由于编码器可以降低输出的中间特征的维度,从而可以提升语音检测模型的处理速度,使得语音检测模型不仅可以用于离线语音检测,还可以用于流式语音检测,实时性好,能够满足多种场景。

以下将结合附图对本公开实施例进行具体说明。图1为应用本公开实施例的语音检测模型的训练方法及语音检测方法的系统的结构示意图。请参照图1,该系统包括终端110和服务器120等;终端110和服务器120之间通过网络连接,比如,通过有线或无线网络连接等。

其中,服务器120可以用于获取语音样本集,语音样本集包括语音样本的样本特征以及语音样本的标注信息;将样本特征输入语音检测模型的编码器,得到中间特征,且中间特征的维度小于样本特征的维度;将中间特征输入语音检测模型的解码器,得到语音样本的预测置信度,预测置信度用于表征语音样本为非静音的概率;根据标注信息和预测置信度对语音检测模型进行训练,得到训练好的语音检测模型。终端110,可以用于显示图形用户界面。其中,该终端用于通过图形用户界面与用户进行交互,例如通过终端下载安装相应的客户端并运行,例如通过调用相应的小程序并运行,例如通过登录网站呈现相应的图像用户界面等。在本公开实施例中,终端110可以安装有音频处理应用,并通过音频处理应用获取待检语音流中的当前语音段;确定当前语音段的语音特征;将语音特征输入训练好的语音检测模型,得到当前语音段的置信度;根据当前语音段的置信度,确定当前语音段的第一标签,第一标签用于确定待检语音流中非静音片段的位置。

需要说明的是,虽然以应用程序为音频处理应用为例进行说明,但是本领域技术人员应该理解的是,应用程序可以为其他适当的程序例如音频播放应用等。此外,应用程序可以为安装在台式机上的应用程序、也可以为安装在移动终端的应用程序,还可以为嵌入到应用程序中的小程序等。

需要注意的是,上述应用场景仅是为了便于理解本公开的精神和原理而示出,本公开的实施例在此方面不受任何限制。相反,本公开的实施例可以应用于适用的任何场景。

以下进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优先顺序的限定。

图2是根据本公开实施例提供的语音检测模型的训练方法的流程示意图;图3是根据本公开实施例提供的语音检测模型的结构示意图;请参照图2和图3,本公开实施例提供一种语音检测模型的训练方法200,包括以下步骤S201至步骤S204。

步骤S201,获取语音样本集,语音样本集包括语音样本的样本特征以及语音样本的标注信息。

步骤S202,将样本特征输入语音检测模型的编码器,得到中间特征,且中间特征的维度小于样本特征的维度。

步骤S203,将中间特征输入语音检测模型的解码器,得到语音样本的预测置信度,预测置信度用于表征语音样本为非静音的概率。

步骤S204,根据标注信息和预测置信度对语音检测模型进行训练,得到训练好的语音检测模型。

语音样本集可以包括多个语音样本,每个语音样本可以包括语音样本的样本特征以及语音样本的标注信息。语音样本可以为语音段样本,语音样本的样本特征可以为对语音样本预处理后得到的,能够被语音检测模型识别的特征。如图3所示,语音样本可以通过特征预处理(Feature)和归一化处理(Nomalization)得到语音样本的样本特征。语音样本的标注信息可以为该语音样本为非静音的真实概率,例如,1或0。

语音检测模型为基于神经网络构建的模型,如图3,语音检测模型包括编码器(Encoder)和解码器(Decoder)。

编码器主要用于提取语音样本的高层音频特征,其可以样本特征进行处理,得到中间特征,即语音样本的高层音频特征。另外,编码器还可以对特征进行降采样(降维)处理,从而使得中间特征的维度小于样本特征的维度,维度是指特征的长度,从而可以降低模型的计算量。

解码器主要用于根据语音样本的高层音频特征得到语音样本的预测置信度。预测置信度为语音样本为非静音的概率,其可以为大于0或小于1的数值。

通过标注信息和预测置信度计算语音检测模型的损失函数,在损失函数不满足预设收敛条件的情况下,调整语音检测模型的参数,例如,编码器和解码器的参数,并重复步骤S202和步骤S203,直至损失函数满足预设收敛条件。在损失函数满足预设收敛条件后,得到训练好的语音检测模型。训练好的语音检测模型可以对待检语音流进行检测,从而确定待检语音流中各个语音段的置信度,即语音段为非静音的概率,进而可以确定待检语音流中非静音片段的位置。

本实施例通过在语音检测模型中设置编码器和解码器,使得训练好的语音检测模型可以用于对静音进行检测,且编码器能够降低特征的维度,从而可以提升语音检测模型的速度,使得语音检测模型不仅可以用于离线语音检测,还可以用于流式语音检测,实时性好,能够满足多种场景。

在一些实施例中,编码器包括依次连接的N个第一卷积块,N为大于等于2的正整数;且N个第一卷积块中,除第N个第一卷积块外的其余第一卷积块用于降低样本特征的维度。

本实施例中,编码器可以包括多个第一卷积块,样本特征可以作为第一个第一卷积块的输入,且第一卷积块的输出特征可以作为第二个第一卷积块的输入,从而依次通过N个第一卷积块。

可以理解,除N个第一卷积块中的最后一个第一卷积块外,其余第一卷积块的输入特征的维度均大于输出特征的维度,从而使得编码器可以用于降低样本特征的维度,从而可以对样本特征做降采样,降低了模型的计算量。

而最后一个第一卷积块的输入特征的维度和输出特征的维度可以相同,从而保留较为完整的特征数据。

图4是图3中编码器的第一卷积块的结构示意图,请参照图4,在一些实施例中,N个第一卷积块中的每个第一卷积块包括:第一可分离卷积层、第一残差连接层以及第一归一化层;第一可分离卷积层用于对第一卷积块的输入特征进行第一可分离卷积处理,得到第一特征;第一残差连接层用于对第一特征进行处理得到第二特征,并将第二特征与第一特征融合,得到第三特征;第一归一化层用于对第三特征进行归整。

可以理解,N个第一卷积块中每一个的结构相同,均可以包括第一可分离卷积层、第一残差连接层以及第一归一化层。

第一可分离卷积层可以包括深度方向卷积(Depthwise convolution,dw_conv)与逐点卷积(Pointwise convolution,pw_conv)。如图4所示,dw_conv自下而上依次包括一维卷积(convolution 1d,Conv1d)层、等价(Identity)层和修正线性单元(Rectified LinearActivation Function,ReLu)层。pw_conv下而上依次包括一维卷积(Conv1d)层和等价(Identity)层。第一卷积块的输入特征可以自下而上依次输入dw_conv和pw_conv,从而对其进行可分离卷积处理,进而得到第一特征。通过在第一卷积块的开始部分使用可分离卷积,可以进一步降低模型的计算量。

第一残差连接层的名称可以为图4中的proj(project),其可以包括一维卷积(Conv1d)层,可以理解,x0代表第一特征,x0输入一维卷积(Conv1d)层后,可以得到残差(resdual),即第二特征,第一残差连接层的输出为x0+resdual,即第三特征。通过在第一可分离卷积层之后使用残差连接,可以促进梯度的传播。

第一归一化层自下而上可以依次包括一维卷积(Conv1d)层、一维批标准化(Batch_Normalization 1d,BatchNorm1d)层和修正线性单元(ReLu)层,名称可以依次为encoder.0、encoder.1和encoder.2。通过第一归一化层可以规范化第一卷积块的输出分布。

可以理解,一维卷积(Conv1d)层同时存在于第一可分离卷积层、第一残差连接层以及第一归一化层,但是其参数以及设置可以相同也可以不同,具体可以根据实际情况设置。同理,各个修正线性单元(ReLu)层均属于激活函数层,其参数以及设置也可以根据实际情况设置。在神经网络中,激活函数层负责将来自节点的加权输入转换为该输入的节点或输出的激活。ReLu层是一个分段线性函数,如果输入为正,将直接输出,否则,将输出为零。通过ReLu层使得模型更容易训练,并且通常能够获得更好的性能。

另外,在一些实施例中,第一残差连接层之后还可以设置有激活函数(Activation)层和随机失活(Dropout)层,激活函数层也可以采用ReLu层。Dropout层可以减少过拟合现象。Dropout层的输出x2可以作为第一归一化层的输入特征。

如图4所示,从第一卷积块的结构上来说,其可以包括第一层(first_layer)和第一归一化层,第一层又可以包括卷积块(convolution block,ConvBlock)和Dropout层,卷积块可以包括dw_conv、pw_conv、proj以及激活函数层。

在一些实施例中,第一归一化层还用于对第三特征进行第一卷积处理;且其余第一卷积块中的第一卷积处理的步长为大于1的正整数。

可以理解,第一归一化层中包括一维卷积(Conv1d)层,除最后一个第一卷积块外,其他第一卷积块中的该一维卷积(Conv1d)层的步长可以为大于1的正整数,例如,其可以为2,从而使得输出特征的维度可以变为输入特征的二分之一,从而降低样本特征的维度,以实现降采样。

最后一个第一卷积块中的第一归一化层中的一维卷积(Conv1d)层的步长可以为1,从而保留特征数据。

图5是图3中编码器的第二卷积块的结构示意图;请参照图5,在一些实施例中,编码器还包括连接于第N-1个第一卷积块和第N个第一卷积块之间的第二卷积块;第二卷积块包括第二可分离卷积层、第二残差连接层以及第二归一化层;第二可分离卷积层用于对第二卷积块的输入特征进行第二可分离卷积处理,得到第四特征;第二残差连接层用于对第二卷积块的输入特征进行处理得到第五特征,并将第四特征与第五特征融合,得到第六特征;第二归一化层用于对第六特征进行归整。

第二卷积块可以位于最后一个第一卷积块之前,在一些实施例中,编码器包括3个第一卷积块,可以依次为第一卷积块1、第一卷积块2和第一卷积块3。样本特征可以依次经过第一卷积块1、第一卷积块2、第二卷积块和第一卷积块3。其中,第一卷积块1、第一卷积块2和第一卷积块3的结构可以参考图4,区别在于,第一卷积块1、第一卷积块2的第一归一化层中的Conv1d的步长为2,第一卷积块3的第一归一化层中的Conv1d的步长为1。

第二卷积块包括第二可分离卷积层、第二残差连接层以及第二归一化层。

如图5所示,第二可分离卷积层包括可以包括dw_conv与pw_conv。dw_conv自下而上依次包括一维卷积(Conv1d)层、等价(Identity)层和修正线性单元(ReLu)层。pw_conv下而上依次包括一维卷积(Conv1d)层和等价(Identity)层。第二卷积块的输入特征x可以自下而上依次经过dw_conv和pw_conv,从而对其进行可分离卷积处理,进而得到第四特征。通过在第二卷积块的开始部分使用可分离卷积,可以进一步降低模型的计算量。

第二残差连接层的名称可以为图5中的proj,其可以包括一维卷积(Conv1d)层,可以理解,第一卷积块和第二卷积块中的残差连接层的位置不同,在第二卷积块中,x代表第二卷积块的输入特征,x输入第二残差连接层中的一维卷积(Conv1d)层后,可以得到第五特征,另外第四特征和第五特征可以进行融合,例如相加得到第六特征,第六特征可以作为第二归一化层的输入。通过在第二可分离卷积层之后使用残差连接,可以促进梯度的传播,有利于模型的收敛。

第二归一化层自下而上可以依次包括一维卷积(Conv1d)层、一维批标准化(Batch_Normalization 1d,BatchNorm1d)层和修正线性单元(ReLu)层,名称可以依次为encoder.0、encoder.1和encoder.2。通过第二归一化层可以规范化第一卷积块的输出分布。

可以理解,一维卷积(Conv1d)层同时存在于第二可分离卷积层、第一残差连接层以及第二归一化层,但是其参数以及设置可以相同也可以不同,具体可以根据实际情况设置。同理,各个修正线性单元(ReLu)层均属于激活函数层,其参数以及设置也可以根据实际情况设置。通过ReLu层使得模型更容易训练,并且通常能够获得更好的性能。

另外,在一些实施例中,第二残差连接层之后还可以设置有激活函数(Activation)层和随机失活(Dropout)层,激活函数层也可以采用ReLu层。Dropout层可以减少过拟合现象。第六特征可以依次经过激活函数层、随机失活层。Dropout层的输出x2可以作为第一归一化层的输入特征。

如图5所示,从第二卷积块的结构上来说,其可以包括卷积块(ConvBlock)、Dropout层和第二归一化层,卷积块可以包括dw_conv、pw_conv、proj以及激活函数层。

图6是图3中解码器的结构示意图;请参照图6,在一些实施例中,步骤S203中的将中间特征输入语音检测模型的解码器,得到语音样本的预测置信度,可以包括:将中间特征输入解码器的循环神经网络,得到语音样本的多个概率值,其中,语音样本包括多个语音帧,多个概率值分别为多个语音帧的概率;对多个概率值进行平均,得到预测置信度。

编码器可以包括循环神经网络,例如长短期记忆网络(Long short-term memory,LSTM)。如图6所示,在一种可能的实施例中,解码器可以依次包括LSTM、第一激活函数层(ReLU)、线性层(Linear,如图6中的Cov1d层)、第二激活函数层(Sigmoid)以及平均层(Mean)。

可以理解,语音样本可以通过预设采样率得到,其可以包括多个采样点。对多个采样点进行抽帧(可以由编码器的降采样处理实现),可以得到多个语音帧,即编码器输出的中间特征依次经过LSTM、ReLU、Linear、Sigmoid后可以得到多个概率值,这些概率值分别为语音样本的多个语音帧的为非静音的概率。通过平均层可以得到多个概率值的均值,并将均值作为预测置信度,从而综合语音样本的多个语音帧的概率值来确定预测置信度,结果更为准确,有利于提高语音检测模型和语音检测的精确度。

在一些实施例中,方法200还可以包括:提取语音样本的谱特征;对谱特征进行归一化处理,得到第一输入特征;将谱特征和第一输入特征进行拼接,得到样本特征。

如图2所示,可以通过Feature对语音样本进行预处理。语音样本可以是依靠预设采样率得到的多个采样点,这些采样点的时长应该为预设语音段长度(chunk_size),再采集样本时,可以对一个音频样本按照预设语音段长度进行切分,得到多个语音样本。但是,由于音频样本的长度不定,最后一个语音样本的长度可能会小于预设语音段长度。此时,可以对该语音样本的多个采样点进行填补(padding)操作,使得语音样本的长度等于预设语音段长度。例如,预设语音段长度为30ms,其对应的采样点数为600个采样点。若语音样本输入的采样点数为599,则需要在599个采样点之后补0,即将599个采样点补齐为预设语音段长度的600个采样点。

接着可以利用短时傅里叶变换(short-time Fourier transform,STFT)对语音样本进行提取,得到语音样本的谱特征。

接着可以通过Nomalization对谱特征进行归一化处理。例如,将谱特征做log域处理,并归一化(例如减均值,除方差等),得到第一输入特征。然后将谱特征和第一输入特征拼接成样本特征。例如谱特征为a,第一输入特征为b,拼接成的样本特征为[a,b]。

通过将谱特征和第一输入特征拼接生成的样本特征作为编码器的输入特征,可以实现特征增强,提高特征的丰富度,有利于语音检测模型的准确性。

在一些实施例中,方法200还可以包括:根据预设采样率以及多个预设采样时长,获取用于构建语音样本集的多个语音样本。

可以理解,预设采样率为语音检测模型的适用采样率,即输入语音检测模型的音频均为预设采样率下获得的音频,语音检测模型与预设采样率具有对应关系。其他采样率下获得的音频不适用于该预设采样率对应的语音检测模型,需要调整采样率为预设采样率。

多个预设采样时长对应了多个预设语音段长度,即在选择语音样本时,可以选取多种chunk_size的样本,作为语音样本集。例如,根据伯努利分布,随机选择不同的chunk_size的数据训练。例如,语音样本集中50%的语音样本的选择为chunk_size为30ms,语音样本集中30%的语音样本的选择为chunk_size为选择60ms,语音样本集中20%的语音样本的选择为chunk_size为选择100ms。或者,还可以随机的选择chunk_size为30ms、60ms或100ms的语音样本的数量,来构建语音样本集。

通过采用多chunk_size的语音样本来对语音检测模型进行训练,可以提高语音检测模型的处理能力,提升语音检测模型的性能。

在一些实施例中,方法200还可以包括:获取样本音频;通过背景音增加处理,对样本音频进行泛化处理,得到语音样本集。

为了扩充语音样本的数量,可以将获取到的每个样本音频进行泛化处理,生成多个语音样本。泛化处理可以包括背景音增加处理等。背景音增加处理可以通过加噪、加混响、音频编解码等语音增强方法增加数据的多样性。同时,还可以通过收集大数据集来获取包括多种语言、多个说话人以及多个场景的语音样本。

通过泛化可以实现样本的多样性,有助于提升语音检测模型的检测结果的准确性。

在一些实施例中,方法200还可以包括:对训练好的语音检测模型进行压缩处理,以减小训练好的语音检测模型的存储空间;对训练好的语音检测模型进行库剪裁,以去除模型推理用库中在语音检测模型的训练过程中未涉及的部分算子。

对训练完的语音检测模型可以训练后量化进行(Post-Training Quantization,PTQ),实现模型的压缩,例如将模型压缩为之前的四分之一,可以减小模型的存储空间,并降低计算量。总体而言,经过压缩后的语音检测模型大概在1.8MB左右,可以同时包括适用于8k采样率的第一语音检测模型和适用于16k采样率的第二语音检测模型。

另外,可以根据模型使用的计算算子(kernel)来裁剪运行(runtime)库(模型推理用库),可以理解,模型推理用库中提供有多种算子,例如可以针对一维、二维或三维数据的不同算子,在语音检测中,音频通常为一维数据,因此,可以保留语音检测模型中训练和使用时涉及的一维算子,去除二维和三维算子,从而减小模型推理用库的大小,节约存储空间。

通过对训练好的语音检测模型进行压缩和裁剪,可以减小语音检测模型的存储空间,使其更好地适用于手机等终端设备,实现轻量化。

图7是根据本公开实施例提供的语音检测方法的流程示意图;请参照图7,本公开实施例还提供一种语音检测方法700,包括以下步骤S701至步骤S704。

步骤S701,获取待检语音流中的当前语音段。

步骤S702,确定当前语音段的语音特征。

步骤S703,将语音特征输入训练好的语音检测模型,得到当前语音段的置信度,训练好的语音检测模型为根据上述任一实施例中的语音检测模型的训练方法训练得到的。

步骤S704,根据当前语音段的置信度,确定当前语音段的第一标签,第一标签用于确定待检语音流中非静音片段的位置。

待检语音流可以为实时语音也可以为录音。步骤S701可以获取待检语音流中的当前语音段。可以理解,当前语音段的长度为某一预设语音段长度,在语音检测模型的训练过程中可以选取多种chunk_size的样本进行训练,在语音检测模型的使用过程中可以设置其中一种chunk_size为预设语音段长度,并将待检语音流按照该预设语音段长度进行切分,并获取当前语音段。

步骤S702可以获取当前语音段的语音特征,具体方式与获取语音样本的样本特征的方式相同,也可以通过Feature对当前语音段进行预处理,例如在采样点数小于预设语音段长度(chunk_size)时,对多个采样点进行填补(padding)操作,使得当前语音段的长度等于预设语音段长度。接着可以利用短时傅里叶变换对当前语音段进行提取,得到当前语音段的第一谱特征。

接着可以通过Nomalization对第一谱特征进行归一化处理。例如,将第一谱特征做log域处理,并归一化(例如减均值,除方差等),得到第二输入特征。然后将第一谱特征和第二输入特征拼接成语音特征。

步骤S703将语音特征输入训练好的语音检测模型,得到当前语音段的置信度。该置信度为当前语音段为非静音的概率分数。

步骤S704根据当前语音段的置信度确定当前语音段的第一标签。可以理解,待检语音流中可以包括有静音片段和非静音片段,静音片段和非静音片段都可以包括一个或多个语音段。静音片段可以理解为没有人声或没有其他有效声音,是需要被去除的片段。非静音片段可以理解为具有人声或者有效声音的语音片段,需要被保留。一个待检语音流中,通常可以包括一个或多个非静音片段,静音片段的数量也可以为一个或者多个,或者,可以不具有静音片段。通过第一标签可以确定当前语音段在非静音片段中的位置,例如为非静音片段中的第一个语音段(即起始段),或者,为非静音片段中的最后一个语音段(即结束段),或者,为起始段和结束段之间的中间段,又或者,为静音片段中的语音段。

通过对待检语音流中的每个当前语音段确定其第一标签,从而可以确定出非静音片段的位置,即起始时刻(起始段的起始时刻)和结束时刻(结束段的结束时刻),进而可以从待检语音流中提取非静音片段,得到去除静音片段后的语音文件。由于训练好的语音检测模型的处理速度快,因此,可以提高语音检测方法的实时性。

在一些实施例中,步骤S704中的根据当前语音段的置信度,确定当前语音段的第一标签,可以包括:根据当前语音段的置信度,确定当前语音段的第二标签,第二标签用于表示语音段为静音或非静音;根据当前语音段的第二标签,确定当前语音段的第一标签。

针对每个当前语音段,根据其置信度可以确定当前语音段的第二标签,第二标签为静音或非静音,即用于表示当前语音段为静音语音段还是非静音语音段。

根据当前语音段的第二标签,可以进一步确定当前语音段的第一标签,通过待检语音流中的多个语音段的第一标签,即可确定待检语音流中的非静音片段。由于训练好的语音检测模型的泛化和准确度较高,因此根据其得到的置信度,可以提高非静音片段检测的准确度。

在一些实施例中,根据当前语音段的置信度,确定当前语音段的第二标签,包括:在当前语音段的置信度大于第一置信度阈值的情况下,确定当前语音段的第二标签为非静音;在当前语音段的置信度小于或等于第一置信度的情况下,确定当前语音段的第二标签为静音。

在根据置信度确定第二标签的过程中,可以设置第一置信度阈值,若当前语音段的置信度大于第一置信度阈值,则确定当前语音段的第二标签为非静音。反之,则确定当前语音段的第二标签为静音。第一置信度阈值可以为0.8、0.9等等。

通过第一置信度阈值可以确定当前语音段的第二标签。

可以理解,第二标签的确定可以依靠一个置信度阈值(Threshold)来判断,例如第一置信度阈值,在其他实施例中,还可以依靠多个置信度阈值来判断第二标签,以下以依靠两个置信度阈值来判断第二标签为例进行说明。

在一些实施例中,根据当前语音段的置信度,确定当前语音段的第二标签,可以包括以下步骤一至步骤三。

步骤一,在当前语音段的置信度大于第二置信度阈值且当前语音段的下一语音段的置信度大于第三置信度阈值的情况下,确定当前语音段的第二标签为非静音,其中,第二置信度阈值小于第三置信度阈值。

步骤二,在当前语音段的置信度小于或等于第二置信度阈值的情况下,确定当前语音段的第二标签为静音。

步骤三,在当前语音段的置信度大于第二置信度阈值且下一语音段的置信度小于或等于第三置信度阈值的情况下,确定当前语音段的第二标签为静音。

可以理解,本实施例中设置有第二置信度阈值和第三置信度阈值,第二置信度阈值小于第三置信度阈值,例如,第二置信度阈值为0.6,第三置信度阈值为0.9。

若当前语音段的置信度大于第二置信度阈值,且当前语音段的下一语音段的置信度大于第三置信度阈值,则表明当前语音段的第二标签为非静音,从而可以准确地判断当前语音段的第二标签,避免杂音等干扰导致的误判。

若当前语音段的置信度小于或等于第二置信度阈值,则表明当前语音段的第二标签为静音。

若当前语音段的置信度大于第二置信度阈值且下一语音段的置信度小于或等于第三置信度阈值,也能够确定当前语音段的第二标签为静音,即由于杂音等干扰可能导致当前语音段的置信度偏高,但该情况时当前语音段的第二标签依然为静音。

通过设置两个置信度阈值,可以更加准确地对各个语音段的第二标签进行判断,进而有利于非静音片段的识别的准确性。

在一些实施例中,根据当前语音段的第二标签,确定当前语音段的第一标签,可以包括:在当前语音段的上一语音段的第二标签为静音、当前语音段的第二标签为非静音且当前语音段之后的连续X个语音段的第二标签均为非静音的情况下,确定当前语音段的第一标签为非静音片段的起始段,其中,X为预设值,且X为大于等于1的正整数。

可以理解,在确定连续几个语音段的第二标签后,可以对待检语音流的非静音片段进行判断。

若非静音片段开始后,当前语音段的上一语音段的第二标签为静音,而当前语音段的第二标签为非静音,且在当前语音段之后连续X个语音段的第二标签均为非静音,则表明当前语音段为非静音片段的起始段,即当前语音段的第一标签为非静音片段的起始段。其中,X可以为正整数,其可以为预设值。例如,可以设置1、2、3或4等。X可以由最大开始持续参数(Max_start_duration)确定,该参数表示连续多个语音段超过第一置信度阈值,则表示当前语音段为非静音片段的开始段。Max_start_duration可以等于X加1。

通过当前语音段之后的连续X个语音段的第二标签为非静音,来判断当前语音段为非静音片段的起始段,可以避免由于杂音等干扰而导致的误判。例如,当前语音段的第二标签为非静音,而之后连续几个语音段为静音,该情况下,当前语音段是属于静音片段,但若不考虑当前语音段之后的语音段的第二标签,则该情况是有可能会被误判为非静音片段。

在一些实施例中,根据当前语音段的第二标签,确定当前语音段的第一标签,还可以包括:在当前语音段之前已检测到非静音片段的起始段、当前语音段的第二标签为非静音且当前语音段之后的连续Y个语音段的第二标签均为静音的情况下,确定当前语音段为非静音片段的结束段,其中,Y为预设值,且Y为大于等于1的正整数。

在已检测到非静音片段的起始段后,若当前语音段的第二标签为非静音,且其后的Y个连续的语音段的第二标签均为静音,则确定当前语音段为非静音片段的结束段,在确定非静音片段的起始段和结束段之后,可以确定整个非静音片段的位置。

其中,Y可以为正整数,其可以为预设值。例如,可以设置1、2、3或4等。Y可以由最小静音持续参数(Min_silence_duaration)确定,该参数表示在检测非静音片段的起始段后连续检测到多个静音的第二标签,若数量等于或大于Y,则表示当前语音段的第一标签为非静音片段的结束段。

Max_start_duration可以等于Y。

另外,若在检测非静音片段的起始段后连续检测到多个静音的第二标签,若数量小于Y,则表明当前语音段以及之后的多个第二标签为静音的语音段依然处于非静音片段中,且非静音片段未结束,即当前语音段位于非静音片段的中间段。

通过设置Min_silence_duaration,可以准确判断非静音片段的结束段,从而确定整个非静音片段的位置。

在一些实施例中,根据当前语音段的第二标签,确定当前语音段的第一标签,还包括:在当前语音段之前已检测到非静音片段的起始段且未检测到非静音片段的结束段的情况下,确定当前语音段的第一标签为非静音片段的中间段。

方法700还可以包括:在当前语音段的第一标签为非静音片段的中间段的情况下,调低用于确定当前语音段的第二标签的置信度阈值。

可以理解,若已检测到当前语音段的起始段,但未检测到结束段,可以确定当前语音段的第一标签为非静音片段的中间段。

另外,在检测到中间段之后,可以调低用于确定当前语音段的第二标签的置信度阈值。例如通过设置降低参数(Beam),以第一置信度阈值为例,在检测非静音片段的起始段时,当前语音段的第二标签可以通过第一置信度阈值确定,例如第一置信度阈值可以为T。该阈值可以稍微较高,从而避免错误警告。而在检测到非静音片段的起始段之后,可以调低第一置信度阈值,使其变为T减Beam。并利用调低后的第一置信度阈值来判断当前语音段和之后语音段的第二标签,即判断是否一直处于非静音片段中,从而避免将非静音片段中置信度较低的语音段误判为静音。可以理解,在非静音片段结束后,可以将该第一置信度阈值恢复为T。

可以理解,除第一标签为起始段、结束段和中间段外,在其他情况下,第一标签均为静音片段的静音段。

在一些实施例中,方法700还包括:将起始段的起始时刻向前偏移第一预设时段,并将偏移后的起始段的起始时刻作为非静音片段的起始时刻;将结束段的结束时刻向前偏移第二预设时段,并将偏移后的结束段的结束时刻作为非静音片段的结束时刻。

第一预设时段(Shift left ms,左端偏移时段)和第二预设时段(Shift rightms,右端偏移时段)可以根据实际情况进行设置。

可以理解,在检测到非静音片段的起始段时,表明非静音片段已经开始,因此可以通过第一预设时段来保证语音检测的实时性。第二预设时段同理,进而可以提高非静音片段的位置准确性。

在一些实施例中,步骤S701中获取待检语音流中的当前语音段,可以包括:在待检语音流的采样率大于第一预设采样率的情况下,对待检语音流进行降采样处理,以使待检语音流的采样率变为第一预设采样率;根据第一预设采样率,获取待检语音流中的当前语音段。

步骤S703中将语音特征输入训练好的语音检测模型,得到当前语音段的置信度,包括:在待检语音流的采样率为第一预设采样率的情况下,将语音特征输入第一语音检测模型,得到当前语音段的置信度,第一语音检测模型为训练好的语音检测模型,且第一语音检测模型的适用采样率为第一预设采样率。

当前语音段的获取可以基于采样率,采集预设语音段长度的语音段作为当前语音段。常见的采样率为8k、16k、24k、48k等。第一预设采样率可以为8k或16k等。

可以理解,由于语音检测模型的训练过程中时使用固定的采样率的语音样本,因此,可以使用第一预设采样率获得的语音样本对语音检测模型进行训练,得到训练好的第一语音检测模型,该第一语音检测模型的适用采样率为第一预设采样率。

若第一预设采样率为16k,为了适用第一语音检测模型,若当前语音段的采样率大于16k,可以通过降采样处理降低待检语音流的采样率,使其变为第一预设采样率。

然后可以利用第一语音检测模型对当前语音段的语音特征进行预测。使得该语音检测方法可以用于多种采样率的待检语音流,提高通用性,满足多种场景。

在一些实施例中,步骤S703中将语音特征输入训练好的语音检测模型,得到当前语音段的置信度,还可以包括:在待检语音流的采样率为低于第一预设采样率的第二预设采样率的情况下,将语音特征输入第二语音检测模型,得到当前语音段的置信度,第二语音检测模型为训练好的语音检测模型,且第二语音检测模型的适用采样率为第二预设采样率。

可以理解,本实施例中,可以设置有两个语音检测模型,即第一语音检测模型和第二语音检测模型,这两个语音检测模型都可以通过上述任一实施例的语音检测模型的训练方法训练得到。

第一语音检测模型的训练过程中采用的语音样本为基于第一预设采样率采集的,第二语音检测模型的训练过程中采用的语音样本为基于第二预设采样率采集的。所以第一语音检测模型的适用采样率为第一预设采样率,第二语音检测模型的适用采样率为第二预设采样率。第一预设采样率大于第二预设采样率。例如,第一预设采样率为16k,第二预设采样率为8k。

在待检语音流的采样率大于16k时,可以通过降采样处理,将其的采样率变为16k,然后将获取到的语音段的语音特征输入第一语音检测模型进行预测。

在待检语音流的采样率为8k时,可以直接获取当前语音段,并将当前语音段的语音特征输入第二语音检测模型进行预测。

对于人的听感而言,16k已经可以表征大部分的语音特征,本实施例通过设置两个语音检测模型,可以覆盖大多数的语音检测的采样率,通用性更好。

在一个具体实施例中,提供一种轻量级的语音检测模型以及语音检测方法。

1、轻量级语音检测模型

该轻量级语音检测模型主要分为四个部分,结构如图3所示,包括Feature、Nomalization、Encoder和Decoder。

(1)Feature:对输入的数据(当前语音段)做预处理,并提取语音特征。

首先,可以根据输入的待检语音流的采样率和模型支持的采样率(适用采样率)做降采样的操作。例如,该轻量级语音检测模型可以包括8k和16k两个采样率的语音检测模型(分别训练两个模型)。

其次,对输入音频采样点做padding操作。如果输入音频(当前语音段)的采样点数小于chunk_size对应的点数,则在右侧补零。

最后,将当前音频段通过STFT提取谱特征。

(2)Nomalization:特征数据做归一化处理。

将输入的谱特征做log域处理,并归一化(例如减均值,除方差)。将输入的a和输出的b拼接成[a,b]送给下一个模块处理。

(3)Encoder:提取高层的音频特征。Encoder(编码器)由四个卷积块组成,其核心结构依次包括第一卷积块1、第一卷积块2、第二卷积块和第一卷积块3。

第一卷积块1、第一卷积块2和第一卷积块3的结构如图4所示,第二卷积块的结构如图5所示。

且第一卷积块1、第一卷积块2的最后一个Conv1d层的步长stride=2,所以该模型对输入特征的长度做了4倍的降采样,降低了模型计算量。

另外,每个卷积块的开头使用可分离卷积(dw_conv+pw_conv),进一步降低模型计算量。可分离卷积后使用残差连接,可以促进梯度传播。

其中,第二卷积块的残差连接方式与其它的不同,主要是因为第一卷积块1和第一卷积块2降采样操作,输入和输出特征的长度不同。

另外,每个卷积块中的Conv1d层+BatchNorm1d(BN)层+Relu层(encoder.0+encoder.1+encoder.2)可以用于规范化卷积块的输出分布。

(4)Decoder:对高层表征做处理,计算二分类概率(置信度):静音/非静音。

Decoder(解码器)包含LSTM、Linear和Sigmoid,输出静音/非静音(silence/non-silence)的概率分数(置信度)。

2、泛化、多采样和chunk size支持

(1)泛化:通过收集大数据集(语音样本集)解决。语音样本集包含多种语言,说话人和场景的语音样本。也可以通过加噪、加混响、音频编解码等语音增强方法增加语音样本数据的多样性。

(2)多采样率

通过Feature模块中设置降采样模块实现。可以理解,轻量级语音检测模型可以包括8k和16k两个训练好的语音检测模型。对于大于16K的采样率做降采样操作,并用16k的模型训练或预测。最终使用时将8k和16k模型合并成一个模型(model),根据输入的待检语音流的采样率分别选择使用16k的第一语音检测模型还是8k的第二语音检测模型。

(3)多chunk_size:在训练的时候根据伯努利分布,随机选择不同的chunk_size的数据训练(例如50%的语音样本选择30ms,30%的语音样本选择60ms,20%的语音样本选择100ms。或者可以随机的选择30ms、60ms、100ms的数据训练。)在使用时,可以选定其中一种chunk_size来获取待检语音流的当前语音段。

3、模型轻量化和高效部署

(1)模型轻量化:将8k和16k的模型做PTQ(训练后)量化,压缩模型大小(size)4x,并降低计算量。使得压缩后的模型size大概在1.8MB左右,并且同时包含8k和16k两个语音检测模型。

(2)库裁剪:针对模型使用的计算kernel裁剪runtime库的大小,节约整体库的大小。

4、流式静音检测

将输入的流式语音(待检语音流)按chunk_size的大小收集,分别送入VAD模型(轻量级语音检测模型),VAD模型输出二分类的概率分数(置信度)。

根据分类可以获取到每个语音段的第二标签,称为状态。根据连续的状态跳转,可以判断语音(非静音片段)的起点和终点,从而用于切分语音,去除静音。

状态序列称为状态对齐,可以用于生成音频时间戳,即多个语音段的多个第二标签。

对于VAD模型设置有如下参数,便于用户控制VAD的准招率。

(1)Threshold:Sigmoid分类后可以通过Threshold(置信度阈值)来卡分数(置信度),当分数超过Threshold时认为有非静音;Threshold可以有多个,可以避免错误预警(false alarm)。

(2)Max_start_duration:当连续n(X+1)个语音段超过Threshold,则任务是非静音片段的开始(起始段)。

(3)Min_silence_duaration:在检测到非静音片段的开始后连续检测到多个静音状态,但小于Min_silence_duration的时候,仍然会判断为非静音。

(4)Beam:从静音状态(静音片段)跳转到非静音状态(非静音片段)时,是通过Threshold的判断的,一般相对阈值会高些,避免错误警告(false alarm)。但在非静音状态后是否一直处于非静音状态的判断是可以适当降低阈值Threshold,避免误判(falsereject),这个降低的范围通过beam控制。

(5)Shift left ms/Shift right ms:这两个参数可以分别用于控制语音(非静音片段)的起点和终点向左偏移的时长。因为在检测到语音(非静音片段)的起始点的时候,往往已经过了真正的起始点。

本实施例提供的轻量级语音检测模型,模型轻量且高效,处理快速且统一,模型的泛化能力强,能够支持多种采样率和语音段大小chunk size,使得模型可以支持多种场景。并且由于模型轻量高效,其还能够在低功耗端侧(终端侧)、服务端多场景部署。并且,由于其处理效率高,还可以用于流式静音检测,实时处理语音流,避免false alarm和falsereject,提升准招。

图8是根据本公开实施例提供的语音检测模型的训练装置的结构示意图;请参照图8,本公开实施例提供一种语音检测模型的训练装置800,包括以下单元。

获取单元801,用于获取语音样本集,语音样本集包括语音样本的样本特征以及语音样本的标注信息。

编码单元802,用于将样本特征输入语音检测模型的编码器,得到中间特征,且中间特征的维度小于样本特征的维度。

解码单元803,用于将中间特征输入语音检测模型的解码器,得到语音样本的预测置信度,预测置信度用于表征语音样本为非静音的概率。

训练单元804,用于根据标注信息和预测置信度对语音检测模型进行训练,得到训练好的语音检测模型。

在一些实施例中,编码器802包括依次连接的N个第一卷积块,N为大于等于2的正整数;且N个第一卷积块中,除第N个第一卷积块外的其余第一卷积块用于降低样本特征的维度。

在一些实施例中,N个第一卷积块中的每个第一卷积块包括:第一可分离卷积层、第一残差连接层以及第一归一化层;第一可分离卷积层用于对第一卷积块的输入特征进行第一可分离卷积处理,得到第一特征;第一残差连接层用于对第一特征进行处理得到第二特征,并将第二特征与第一特征融合,得到第三特征;第一归一化层用于对第三特征进行归整。

在一些实施例中,第一归一化层还用于对第三特征进行第一卷积处理;且其余第一卷积块中的第一卷积处理的步长为大于1的正整数。

在一些实施例中,编码器802还包括连接于第N-1个第一卷积块和第N个第一卷积块之间的第二卷积块;第二卷积块包括第二可分离卷积层、第二残差连接层以及第二归一化层;第二可分离卷积层用于对第二卷积块的输入特征进行第二可分离卷积处理,得到第四特征;第二残差连接层用于对第二卷积块的输入特征进行处理得到第五特征,并将第四特征与第五特征融合,得到第六特征;第二归一化层用于对第六特征进行归整。

在一些实施例中,解码单元803还用于:将中间特征输入解码器的循环神经网络,得到语音样本的多个概率值,其中,语音样本包括多个语音帧,多个概率值分别为多个语音帧的概率;对多个概率值进行平均,得到预测置信度。

在一些实施例中,装置800还包括:预处理单元,用于提取语音样本的谱特征;对谱特征进行归一化处理,得到第一输入特征;将谱特征和第一输入特征进行拼接,得到样本特征。

在一些实施例中,装置800还包括:采样单元,用于根据预设采样率以及多个预设采样时长,获取用于构建语音样本集的多个语音样本。

在一些实施例中,装置800还包括:泛化单元,用于获取样本音频;通过背景音增加处理,对样本音频进行泛化处理,得到语音样本集。

在一些实施例中,装置800还包括:压缩单元,用于对训练好的语音检测模型进行压缩处理,以减小训练好的语音检测模型的存储空间;裁剪单元,用于对训练好的语音检测模型进行库剪裁,以去除模型推理用库中在语音检测模型的训练过程中未涉及的部分算子。

图9是根据本公开实施例提供的语音检测装置的结构示意图;请参照图9,本实施例提供一种语音检测装置900,包括以下单元。

切分单元901,用于获取待检语音流中的当前语音段。

确定单元902,用于确定当前语音段的语音特征。

预测单元903,用于将语音特征输入训练好的语音检测模型,得到当前语音段的置信度,训练好的语音检测模型为根据上述任一项实施例的语音检测模型的训练方法训练得到的。

处理单元904,根据当前语音段的置信度,确定当前语音段的第一标签,第一标签用于确定待检语音流中非静音片段的位置。

在一些实施例中,处理单元904还用于:根据当前语音段的置信度,确定当前语音段的第二标签,第二标签用于表示语音段为静音或非静音;根据当前语音段的第二标签,确定当前语音段的第一标签。

在一些实施例中,处理单元904还用于:在当前语音段的置信度大于第一置信度阈值的情况下,确定当前语音段的第二标签为非静音;在当前语音段的置信度小于或等于第一置信度的情况下,确定当前语音段的第二标签为静音。

在一些实施例中,处理单元904还用于:在当前语音段的置信度大于第二置信度阈值且当前语音段的下一语音段的置信度大于第三置信度阈值的情况下,确定当前语音段的第二标签为非静音,其中,第二置信度阈值小于第三置信度阈值;在当前语音段的置信度小于或等于第二置信度阈值的情况下,确定当前语音段的第二标签为静音;在当前语音段的置信度大于第二置信度阈值且下一语音段的置信度小于或等于第三置信度阈值的情况下,确定当前语音段的第二标签为静音。

在一些实施例中,处理单元904还用于:在当前语音段的上一语音段的第二标签为静音、当前语音段的第二标签为非静音且当前语音段之后的连续X个语音段的第二标签均为非静音的情况下,确定当前语音段的第一标签为非静音片段的起始段,其中,X为预设值,且X为大于等于1的正整数。

在一些实施例中,处理单元904还用于:在当前语音段之前已检测到非静音片段的起始段、当前语音段的第二标签为非静音且当前语音段之后的连续Y个语音段的第二标签均为静音的情况下,确定当前语音段为非静音片段的结束段,其中,Y为预设值,且Y为大于等于1的正整数。

在一些实施例中,处理单元904还用于:在当前语音段之前已检测到非静音片段的起始段且未检测到非静音片段的结束段的情况下,确定当前语音段的第一标签为非静音片段的中间段;装置900还包括:调节单元,用于在当前语音段的第一标签为非静音片段的中间段的情况下,调低用于确定当前语音段的第二标签的置信度阈值。

在一些实施例中,装置还包括:调整单元,用于将起始段的起始时刻向前偏移第一预设时段,并将偏移后的起始段的起始时刻作为非静音片段的起始时刻;将结束段的结束时刻向前偏移第二预设时段,并将偏移后的结束段的结束时刻作为非静音片段的结束时刻。

在一些实施例中,切分单元901还用于:在待检语音流的采样率大于第一预设采样率的情况下,对待检语音流进行降采样处理,以使待检语音流的采样率变为第一预设采样率;根据第一预设采样率,获取待检语音流中的当前语音段;预测单元903还用于:在待检语音流的采样率为第一预设采样率的情况下,将语音特征输入第一语音检测模型,得到当前语音段的置信度,第一语音检测模型为训练好的语音检测模型,且第一语音检测模型的适用采样率为第一预设采样率。

在一些实施例中,预测单元903还用于:在待检语音流的采样率为低于第一预设采样率的第二预设采样率的情况下,将语音特征输入第二语音检测模型,得到当前语音段的置信度,第二语音检测模型为训练好的语音检测模型,且第二语音检测模型的适用采样率为第二预设采样率。

本公开实施例的装置的各模块、子模块的具体功能和示例的描述,可以参见上述方法实施例中对应步骤的相关描述,在此不再赘述。

本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。

根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。

本公开实施例还提供一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述任一项实施例所述的语音检测模型的训练方法及语音检测方法。

本公开实施例还提供一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行上述任一项实施例所述的语音检测模型的训练方法及语音检测方法。

本公开实施例还提供一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现上述任一项实施例所述的语音检测模型的训练方法及语音检测方法。

图10示出了可以用来实施本公开的实施例的示例电子设备1000的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字助理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。

如图10所示,设备1000包括计算单元1001,其可以根据存储在只读存储器(ROM)1002中的计算机程序或者从存储单元1008加载到随机访问存储器(RAM)1003中的计算机程序,来执行各种适当的动作和处理。在RAM 1003中,还可存储设备1000操作所需的各种程序和数据。计算单元1001、ROM 1002以及RAM 1003通过总线1004彼此相连。输入/输出(I/O)接口1005也连接至总线1004。

设备1000中的多个部件连接至I/O接口1005,包括:输入单元1006,例如键盘、鼠标等;输出单元1007,例如各种类型的显示器、扬声器等;存储单元1008,例如磁盘、光盘等;以及通信单元1009,例如网卡、调制解调器、无线通信收发机等。通信单元1009允许设备1000通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。

计算单元1001可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1001的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1001执行上文所描述的各个方法和处理,例如语音检测模型的训练方法及语音检测方法。例如,在一些实施例中,语音检测模型的训练方法及语音检测方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1008。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1002和/或通信单元1009而被载入和/或安装到设备1000上。当计算机程序加载到RAM 1003并由计算单元1001执行时,可以执行上文描述的语音检测模型的训练方法及语音检测方法的一个或多个步骤。备选地,在其他实施例中,计算单元1001可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行语音检测模型的训练方法及语音检测方法。

本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/

或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。

在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入、或者触觉输入)来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。

计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。

上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

相关技术
  • 活体检测模型的训练方法、检测方法、装置、介质及设备
  • 神经网络模型的训练方法、语音去噪方法及装置
  • 一种欺诈检测模型训练方法和装置及欺诈检测方法和装置
  • 一种语音端点检测方法、装置、设备及存储介质
  • 一种语音识别模型的训练方法及装置
  • 语音质量检测模型的训练方法、语音质量检测方法及装置
  • 语音识别模型的训练方法、语音误识别的检测方法及设备
技术分类

06120116072719