声音检测方法及装置

文档序号:1923536 发布日期:2021-12-03 浏览:14次 >En<

阅读说明:本技术 声音检测方法及装置 (Sound detection method and device ) 是由 佘积洪 朱宸都 于 2021-09-13 设计创作,主要内容包括:本申请提供一种声音检测方法及装置,声音检测方法包括:获取待检测的音频数据;确定音频数据中每一帧数据的类型,类型包括语音和静音;将音频数据中属于语音类型的帧对应的语音数据输入深度神经网络,获得属于目标的声音数据。由于静音数据中很少存在声音,因此,通过预先剔除音频数据中的静音数据,仅将音频数据中的语音数据输入到深度神经网络中进行目标声音检测,避免深度神经网络对于静音数据的无效检测,减少了深度神经网络对于音频数据的计算量,在确保目标声音检测的准确率的同时,还提高了目标声音检测的效率。(The application provides a sound detection method and a device, wherein the sound detection method comprises the following steps: acquiring audio data to be detected; determining the type of each frame of data in the audio data, wherein the type comprises voice and silence; and inputting the voice data corresponding to the frame belonging to the voice type in the audio data into the deep neural network to obtain the voice data belonging to the target. Because few sounds exist in the mute data, the mute data in the audio data is removed in advance, and only the voice data in the audio data is input into the deep neural network for target sound detection, so that invalid detection of the deep neural network on the mute data is avoided, the calculated amount of the deep neural network on the audio data is reduced, the accuracy of target sound detection is ensured, and meanwhile, the efficiency of target sound detection is improved.)

声音检测方法及装置

技术领域

本申请涉及声音检测技术领域,尤其涉及一种声音检测方法、装置、电子设备及存储介质。

背景技术

所谓声音检测,是指从一段音频中检测出目标的声音。声音检测具有广泛的应用前景。例如:声音检测可以作为语音识别的前端预处理。也就是说,从音频数据中检测出人的声音数据,进而对人的声音数据进行语音识别,提高语音的识别效率。再例如:利用声音检测还可以形成会议摘要。具体来说,从会议的音频数据中检测出某个发言人的声音数据,进行形成会议摘要。

为了进行声音检测,一般来说,现有主要采用两种方式。第一种:通过传统的算法(例如:双门限算法、高斯混合模型等),将一段音频中目标的声音与非目标的声音区分开,进而获得目标的声音数据。第二种:通过深度神经网络,将一段音频中目标的声音与非目标的声音区分开,进而获得目标的声音数据。

然而,对于上述第一种通过传统的算法检测音频中目标的声音的方式,并不能够将目标声音与瞬态声音(例如:敲桌子的声音、走路的声音等)很好的区分开来,进而导致目标声音的检测效果不理想。而对于上述第二种通过深度神经网络检测音频中目标的声音的方式,由于在进行目标声音的检测时,需要深度神经网络对音频中的每一帧都进行判断,进而输出该帧是否为目标声音的标签,进而导致通过深度神经网络进行目标声音检测的计算量较大,影响声音检测的效率。

发明内容

本申请实施例的目的是提供一种声音检测方法、装置、电子设备及存储介质,以提高声音检测的效率和准确性。

为解决上述技术问题,本申请实施例提供如下技术方案:

本申请第一方面提供一种声音检测方法,所述方法包括:获取待检测的音频数据;确定所述音频数据中每一帧数据的类型,所述类型包括语音和静音;将所述音频数据中属于语音类型的帧对应的语音数据输入深度神经网络,获得属于目标的声音数据。

本申请第二方面提供一种声音检测装置,所述装置包括:获取模块,用于获取待检测的音频数据;确定模块,用于确定所述音频数据中每一帧数据的类型,所述类型包括语音和静音;预测模块,用于将所述音频数据中属于语音类型的帧对应的语音数据输入深度神经网络,获得属于目标的声音数据。

相较于现有技术,本申请第一方面提供的声音检测方法,在获取到待检测的音频数据后,确定音频数据中每一帧数据是属于语音类型还是静音类型,然后将音频数据中属于语音类型的帧对应的语音数据输入深度神经网络,获得属于目标的声音数据。由于静音数据中很少存在声音,因此,通过预先剔除音频数据中的静音数据,仅将音频数据中的语音数据输入到深度神经网络中进行目标声音检测,避免深度神经网络对于静音数据的无效检测,减少了深度神经网络对于音频数据的计算量,在确保目标声音检测的准确率的同时,还提高了目标声音检测的效率。

本申请第二方面提供的声音检测装置、第三方面提供的电子设备、第四方面提供的计算机可读存储介质,与第一方面提供的声音检测方法具有相同或相似的有益效果。

附图说明

通过参考附图阅读下文的详细描述,本申请示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本申请的若干实施方式,相同或对应的标号表示相同或对应的部分,其中:

图1为本申请实施例中声音检测方法的流程示意图一;

图2为本申请实施例中声音检测方法的流程示意图二;

图3为本申请实施例中第一频谱中第19个频点的归一化功率的概率分布曲线;

图4为本申请实施例中进行语音检测的架构示意图;

图5为本申请实施例中语音数据的结构示意图;

图6为本申请实施例中对音频数据进行目标声音识别的流程示意图;

图7为本申请实施例中声音检测装置的结构示意图一;

图8为本申请实施例中声音检测装置的结构示意图二;

图9为本申请实施例中电子设备的结构示意图。

具体实施方式

下面将参照附图更详细地描述本申请的示例性实施方式。虽然附图中显示了本申请的示例性实施方式,然而应当理解,可以以各种形式实现本申请而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本申请,并且能够将本申请的范围完整的传达给本领域的技术人员。

需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本申请所属领域技术人员所理解的通常意义。

在现有技术中,当需要从一段音频数据中检测出目标的声音数据时,若采用传统算法将音频数据中目标和非目标的声音数据进行区分,在非目标的声音为瞬态声音的情况下,传统算法无法有效地将目标声音与瞬态声音进行区分,进而降低目标声音检测的准确性。而若采用深度神经网络将音频数据中目标和非目标的声音数据进行区分,由于深度神经网络是对音频数据中的每一帧分别进行目标声音的检测,进而导致通过深度神经网络进行目标声音检测的计算量较大,降低了目标声音检测的效率。

发明人经过深入研究发现,导致深度神经网络在进行声音检测时计算量大的原因在于,深度神经网络在进行声音检测时,需要分别针对每一帧的数据都进行一次计算。而待检测音频数据的每一帧数据并不是都必须要输入到深度神经网络中进行目标声音检测的,因为音频数据中可能某些帧上并没有声音,即静音。而将静音数据输入到深度神经网络中进行计算,就会使深度神经网络在进行声音检测时,虽然准确性高,但是计算量大,计算效率低下。

有鉴于此,本申请实施例提供了一种声音检测方法,在将待检测的音频数据输入深度神经网络,以检测目标的声音数据之前,先判断音频数据中每一帧数据的类型,是属于语音数据,还是属于静音数据。然后,只将语音数据输入到深度神经网络中进行处理,以检测目标的声音数据。由于静音数据中很少存在声音,因此,通过预先剔除音频数据中的静音数据,仅将音频数据中的语音数据输入到深度神经网络中进行目标声音检测,避免深度神经网络对于静音数据的无效检测,减少了深度神经网络对于音频数据的计算量,在确保目标声音检测的准确率的同时,还提高了目标声音检测的效率。

在实际应用中,目标可以是人。那么,本申请实施例中检测的就是人说话的声音。进而可以将检测出的人说话的声音进行语义识别等。当然,目标还可以是动物。那么,本申请实施例中检测的就是动物发出的声音。进而可以通过动物发出的声音获知该动物的情绪、意图等。当然,目标还可以是物体。那么,本申请实施例中检测的就是物体发出的声响。进而可以通过物体发出的声响确定物体所处环境的状况。在本申请实施例中,对于目标的具体类型,并不进行限定。

接下来,对本申请实施例提供的声音检测方法进行详细说明。

图1为本申请实施例中声音检测方法的流程示意图一,参见图1所示,该方法可以包括:

S101:获取待检测的音频数据。

为了实现目标声音的检测,首先就需要获取包含有目标声音的音频数据,即待检测的音频数据。

而在待检测的音频数据中,可以不仅包含有目标的声音数据,还可以包含有非目标的声音数据。这里的非目标可以是指与目标不相关的一切事物。例如:当目标为某个人时,非目标可以是另外一个人、各种动物、各种物体、环境噪声等。

当然,在待检测的音频数据中,也可以只包含有目标的声音数据。而拿音频数据进行检测的人员并不知道待检测的音频数据中只有目标的声音数据而没有非目标的声音数据,因此还是需要对音频数据进行目标声音检测。对于音频数据中所包含的具体内容,此处不做限定。

S102:确定音频数据中每一帧数据的类型,类型包括语音和静音。

由于音频数据中在时间轴上并不一定是持续存在声音的。例如:某个人在会议上进行演讲时,这个人并不会一直持续不停地说话,而是在说两句话之间会有稍许的停顿,或者是在讲完一段话后进行下一个动作时并没有讲话。这样,在音频数据中,有的帧就对应有声音数据,而有的帧就没有声音数据,或者仅存在有微弱的环境声音数据。

而音频数据中的某些帧由于没有声音数据,或者存在的微弱的声音数据对于声音识别并没有用处,为了提高声音识别效率,避免深度神经网络对没有声音数据或仅存在微弱声音的帧对应的数据仍然进行处理,而导致增加深度神经网络的计算量,可以先对音频数据中每一帧数据的类型进行鉴别,判断出每一帧数据是语音数据,还是静音数据。进而使得深度神经网络进行针对音频数据中的语音数据进行处理,从而节省深度神经网络的计算量。

举例来说,假设某个人在进行演讲时,在第1帧至第100帧对应的时间连续不断地讲述了内容A。然后,在第101帧至第200帧对应的时间,喝了一口水,并将演示文稿翻到了下一页。接着,在第201帧至第300帧对应的时间,连续不断地讲述了内容B。而在这第1帧至第300帧的时间内,就对该演讲进行了录制,形成了音频数据。由此可见,在该音频数据中,第1帧数据的类型为语音数据,……,第100帧数据的类型为语音数据,第101帧数据的类型为静音数据,……,第200帧数据的类型为静音数据,第201帧数据的类型为语音数据,……,第300帧数据的类型为语音数据。

而确定音频数据中每一帧数据类型的具体方式,可以通过频谱功率、声音信号的幅值等,此处不做具体限定。

而语音类型的数据可以包括目标发出的声音以及非目标发出的声音。例如:目标发出的声音可以是人的声音,非目标发出的声音可以是猫、狗等动物、桌子、椅子等物体的声音。

S103:将音频数据中属于语音类型的帧对应的语音数据输入深度神经网络,获得属于目标的声音数据。

在将音频数据中每一帧的数据区分为语音数据和静音数据后,就可以仅将音频数据中的语音数据输入到深度神经网络中进行目标声音检测,进而从音频数据的语音数据中获取目标的声音数据。

这里的深度神经网络,可以是任意一种能够进行声音检测的深度神经网络。对于该深度神经网络的具体类型,此处不做限定。

在将语音数据输入深度神经网络后,深度神经网络能够对语音数据中每一帧数据进行计算,输出每一帧数据为目标声音数据的概率值。根据深度神经网络输出的每一帧数据的概率值,就能够从语音数据中提取出目标的声音数据了。

由上述内容可知,本申请实施例提供的声音检测方法,在获取到待检测的音频数据后,确定音频数据中每一帧数据是属于语音类型还是静音类型,然后将音频数据中属于语音类型的帧对应的语音数据输入深度神经网络,获得属于目标的声音数据。由于静音数据中很少存在声音,因此,通过预先剔除音频数据中的静音数据,仅将音频数据中的语音数据输入到深度神经网络中进行目标声音检测,避免深度神经网络对于静音数据的无效检测,减少了深度神经网络对于音频数据的计算量,在确保目标声音检测的准确率的同时,还提高了目标声音检测的效率。

进一步地,作为图1所示方法的细化和扩展,本申请实施例还提供了一种声音检测方法。图2为本申请实施例中声音检测方法的流程示意图二,参见图2所示,该方法可以包括:

S201:获取待检测的音频数据。

步骤S201与步骤S101具有相同或相似的实现方式,此处不再赘述。

S202:获取音频数据中的第一帧数据。

实质上,后续需要分别对音频数据中的每一帧数据进行处理,以确定每一帧数据是属于语音类型,还是属于静音类型。而在此,以音频数据中的某一帧数据,即第一帧数据为例,对确定音频数据中各帧数据的具体方式进行说明。当然,第一帧数据并不意在限定该帧数据就是音频数据中起始帧的数据。第一帧数据可以是音频数据中任意一帧的数据。

而对于音频数据中的一帧数据,在实际应用中,其帧长和帧移是可以根据实际需要进行设置的。例如:当音频数据的采样频率为16000Hz时,帧长可以是25ms,帧移可以是10ms。

S203:对第一帧数据进行傅里叶变换,得到第一频谱,第一频谱中包括有多个频点。

在时域中,第一帧数据的类型并不容易确定。而在频域中,存在有很多信息是通过时域中无法获知的。因此,可以将第一帧数据转换至频域,从而通过频域中的信息确定第一帧数据的类型。

具体来说,就是对第一帧数据进行傅里叶变换。第一帧数据经过傅里叶变换后,就能够得到第一帧数据相应的频谱,即第一频谱。在第一频谱中,包含有多个频点。每个频点所表示的就是第一帧数据在时域的波形中的一个频率。通过第一频谱中的多个频点,就能够清楚地获知第一帧数据在时域的波形中频率的组合情况,也能够分别通过每个频点确定第一帧数据是否为语音类型数据的概率。

S204:计算第一频谱中各频点的原始功率。

通过第一频谱,能够计算出各频点的原始功率。具体的,可以采用以下公式(1)进行计算。

P'signal(λ,k)=|Y(λ,k)|2 公式(1)

其中,λ表示第λ帧,k表示第λ帧中的第k个频点,Y(λ,k)表示第λ帧的第k个频点的频谱,P′signal(λ,k)表示第λ帧的第k个频点的原始功率。

当然,频谱中各频点的功率还可以采用其它计算频谱中频点功率的方式进行计算。对于具体的计算方式,此处不做限定。

这里需要特别说明的是,由于频谱的对称性,可以无需对第一频谱中所有的频点都进行一次功率计算,而可以仅对第一频谱中所有频点中前半部分的频点,即预设频点的功率进行计算。这样,能够提高对于频点的处理速度。进而后续也仅判断预设频点对应的类型,能够提高类型的判断速度,进而提高声音的检测效率。

举例来说,假设需要处理15万份音频文件。对于这15万份音频文件,均以25ms的帧长,10ms的帧移进行分帧,得到多帧数据。对于每一帧数据,进行512频点的短时傅里叶变换,变换成频谱。由于频谱的对称性,前257频点的频谱即可代表每一帧数据,进而仅计算频谱中前257频点的功率即可。

S205:将第一频谱中各频点的原始功率进行平滑处理,得到第一频谱中各频点的功率。

在计算出第一频谱中各频点的原始功率后,为了提高各频点功率值的准确性,进而提高确定帧数据类型的准确性,可以先对第一频谱中各频点的原始功率进行平滑处理。具体的,可以通过以下公式(2)进行处理。

Psignal(λ,k)=αP'signal(λ,k)+(1-α)|Y(λ,k)|2 公式(2)

其中,λ表示第λ帧,k表示第λ帧中的第k个频点,Y(λ,k)表示第λ帧的第k个频点的频谱,P′signal(λ,k)表示第λ帧的第k个频点的原始功率,Psignal(λ,k)表示第λ帧的第k个频点的功率,α表示平滑因子。一般来说,α在0.5-1之间取值。如果α过小,那么平滑效果就会较差。而如果α过大,那么就会过度平滑,进而丢失频点原始功率的细节信息。

由于后续需要对各频点的功率进行归一化处理,因此,此时需要预先确定出各频点的最小功率,频点的最小功率是对噪声功率的估计。在确定第一频谱中各频点的最小功率时,可以采用连续频谱最小值跟踪的方式。下面以第一频谱中的某一个频点,即目标频点为例,对确定第一频谱中各频点的最小功率的具体方式进行说明。但是,这并不意在限定仅对频谱中的一个频点进行最小功率的确定,而是需要对频谱中每个频点的最小功率都要进行一次确定。

当然,这里也可以不对第一频谱中各频点的原始功率进行平滑处理,即在执行完步骤S204后,跳过步骤S205,直接执行步骤S206。这样,就将第一频谱中各频点的原始功率直接做为第一频谱中各频点的功率进行后续处理。

S206:当第一频谱中目标频点的功率大于第二频谱中相应频点的最小功率时,根据第一频谱中目标频点的功率、第二频谱中相应频点的功率、第二频谱中相应频点的最小功率,计算目标频点的最小功率。

S207:当第一频谱中目标频点的功率小于或等于第二频谱中相应频点的最小功率时,目标频点的最小功率为第一频谱中目标频点的功率。

其中,第二频谱对应的第二帧数据为第一帧数据在音频数据中的上一帧数据。在确定第一帧数据对应的各频点的最小功率时,需要参考第一帧数据的上一帧数据,即第二帧数据对应的第二频谱中各频点的最小功率。

具体来说,就是判断以下公式(3)是否成立。

Psignal,min(λ-1,k)<Psignal(λ,k) 公式(3)

其中,Psignal,min(λ-1,k)表示第λ-1帧的第k个频点的最小功率,Psignal(λ,k)表示第λ帧的第k个频点的功率,λ表示第λ帧,k表示第λ帧中的第k个频点。

如果以上公式(3)成立,说明当前帧数据对应的频点的功率增加,那么就通过以下公式(4)计算出该频点的最小功率。

其中,Psignal,min(λ,k)表示第λ帧的第k个频点的最小功率,Psignal,min(λ-1,k)表示第λ-1帧的第k个频点的最小功率,Psignal(λ,k)表示第λ帧的第k个频点的功率,Psignal(λ-1,k)表示第λ-1帧的第k个频点的功率,λ表示第λ帧,k表示第λ帧中的第k个频点,β、γ为相关参数。

进一步的,β、γ均可以在0-1之间取值。优选的,β可以取值0.96,γ可以取值0.998。当然,β、γ还可以取0-1之间的其它数值。对于β、γ的具体取值,此处不做限定。

实质上,公式(4)实现了一个一阶差分运算,是在离散的情况下对求导的一种近似。这样能够提高运算速度。而当带噪信号,即当前帧对应的频点功率增加时,导数值为正,噪声估计增大。而当带噪信号,即当前帧对应的频点功率减小时,导数值为负,噪声估计减小。

如果以上公式(3)不成立,说明当前帧数据对应的频点的功率减小或不变,那么就通过以下公式(5)计算出该频点的最小功率。

Psignal,min(λ,k)=Psignal(λ,k) 公式(5)

其中,Psignal,min(λ,k)表示第λ帧的第k个频点的最小功率,Psignal(λ,k)表示第λ帧的第k个频点的功率,λ表示第λ帧,k表示第λ帧中的第k个频点。

这里需要说明的是,上述步骤S206与S207是择一进行的。

在确定了第一频谱中各频点的最小功率后,将第一频谱中各频点的功率减去第一频谱中相应频点的最小功率,就得到了第一频谱中各频点的去噪声音信号功率。再对各频点的去噪声音信号功率进行归一化,进而基于归一化的功率判断相应频点属于语音还是属于静音。在此之前,还需要预先再确定一个判断的基准,即预设功率范围。

S208:构建第一频谱中各频点的概率分布模型。

S209:对概率分布模型中的概率曲线进行积分,获取预设概率在概率分布模型中对应的两个功率值。

S210:将两个功率值作为相应的频点的预设功率范围。

针对第一频谱中的每个频点,都需要构建一个概率分布模型。进而分别基于构建的各概率分布模型,确定用于判断各频点类型的基准,即预设功率范围。下面以第一频谱中某一个频点,例如第19个频点的归一化功率的概率分布图为例,对确定第19个频点的预设功率范围的具体过程进行说明。当然,这并不意在限制第一频谱中一定有第19个频点,第19个频点仅为举例而已。

图3为本申请实施例中第一频谱中第19个频点的归一化功率的概率分布曲线,参见图3所示,横坐标表示归一化功率,纵坐标表示概率。将水平直线T1与概率分布曲线相交,得到一段概率曲线S1。对概率曲线S1进行积分,得到概率P。移动水平直线T1,当概率P为75%时,概率曲线S1与水平直线T1的交点对应的两个归一化功率阈值thr1和thr2之间的范围,就是预设功率范围。

当然,以上75%的概率也仅为示例性说明。概率的具体数值可以根据实际需要设置。此处对于概率的具体数值不做限定。

以上这样设置预设功率范围的原因是,如果某一帧数据属于语音,而不属于静音,那么第19个频点的归一化功率,即Pvoice(λ,19)就大概率的会在thr1至thr2这个预设功率范围内。不仅可以用此预设功率范围判断该帧数据对应的第19个频点是否属于语音,后续还可以继续用此预设功率范围判断其它帧数据对应的第19个频点是否属于语音。也就是说,可以预先确定好一帧数据中各频点对应的预设功率范围,然后其它帧数据中相应频点的预设功率范围都可以使用该一帧数据中各频点对应的预设功率范围。这样,能够减少预设功率范围的计算量,进而提高声音检测效率。

这里还需说明的是,各频点的归一化功率的概率分布曲线可以通过任意一种生成频点功率概率分布曲线的方式获得。对于上述频点功率的概率分布曲线的具体获取方式,此处不做限定。

在分别通过上述步骤S205获得各频点的功率、上述步骤S206-S207获得各频点的最小功率、上述步骤S208-S210获得各频点的预设功率范围后,就可以对第一频谱中各频点的功率进行归一化处理,进而基于归一化功率确定相应的频点是属于语音,还是属于静音。

S211:将第一频谱中各频点的功率与相应频点的最小功率相减,得到各频点的去噪声音信号功率,进而对各频点的去噪声音信号功率进行归一化处理,得到各频点的归一化功率。

在这里,相应频点就是与第一频谱中各频点对应的频点。例如:第一频谱中存在第1-257个频点,那么,这第1-257个频点都分别对应有最小功率。例如:第1频点对应有最小功率a,第2频点对应有最小功率b,……,第257频点对应有最小功率s。这里的最小功率就是基于频点的非线性跟踪,即上述步骤S206-S207获得的。而相应频点的最小功率代表相应频点对应的噪声。

具体来说,第一频谱中各频点的去噪声音信号功率可以通过以下公式(6)获得。

Pvoice(λ,k)=Psignal(λ,k)-Psignal,min(λ,k) 公式(6)

其中,Pvoice(λ,k)表示第λ帧的第k个频点的去噪声音信号功率,Psignal(λ,k)表示第λ帧的第k个频点的功率,Psignal,min(λ,k)表示第λ帧的第k个频点的最小功率,λ表示第λ帧,k表示第λ帧中的第k个频点。

在得到了各频点的去噪声音信号功率后,就可以对各频点的去噪声音信号功率进行归一化处理,进而得到各频点的归一化功率。在这里,可以采用任何一种归一化处理方式对各频点的去噪声音信号功率进行归一化处理。对于归一化处理的具体方式,此处不再赘述。

S212:当第一频谱中各频点的归一化功率位于预设功率范围内时,为相应的频点标记第一标签。

S213:当第一频谱中各频点的归一化功率不位于预设功率范围内时,为相应的频点标记第二标签。

S214:生成第一频谱中各频点的标签序列。

其中,预设功率范围可以是根据大量已知的语音数据和静音数据进行统计后得到的。第一标签用于表征第一帧数据在相应的频点上属于语音。第二标签用于表征第一帧数据在相应的频点上属于静音。

在获得第一频谱中各频点的归一化功率后,确定每个频点的归一化功率是否位于其对应的预设功率范围内。若确定位于,说明该频点属于语音,则可以将该频点标记为1。若确定不位于,说明该频点不属于语音,可能属于静音,则可以将该频点标记为0。

当然,还可以采用其它类型的标记将频点是否属于语音进行区分。对于标记的具体类型,此处不做限定。

在将第一频谱中各频点标记完成后,就能够获得一个序列,即[i1、i2、……in]这样的序列。其中,i1、i2、……in可以分别为0或1,n则为标记的频点的个数。一般来说,频谱中存在有多少个频点,就将所有频点中前半部分的频点都进行标记。

S215:根据第一频谱中各频点的归一化功率确定各频点对应的权重,权重与归一化功率正相关。

一般来说,音频数据的频率在300Hz至3400Hz之间,而当音频数据的采样频率为16000Hz时,傅里叶变换后的频谱可描述0Hz至8000Hz的范围。也就是说,语音类型数据的频率主要分布在前128个频点上。再加上,不同数据在不同频点的功率不同。某数据在相应频点的功率越大,说明该频点对判断数据是否为语音就越重要。也就是说,不同频点对最终判断数据是否为语音数据的贡献不同。因此,可以根据第一频谱中各频点的归一化功率确定各频点对应的权重[w1、w2、……、wn]。其中,n为频点的个数。

具体来说,第一频谱中相应频点的归一化功率越大,该相应频点对应的权重就越大。同样的,第一频谱中相应频点的归一化功率越小,该相应频点对应的权重就越小。

S216:将第一频谱的标签序列与第一频谱中各频点的权重进行加权平均,得到第一频谱对应的第一帧数据的语音置信度。

具体来说,第一帧数据的语音置信度可以通过以下公式(7)计算得到。

其中,C表示语音置信度,[ω12......ωn]表示第一频谱中各频点的权重,[i1,i2......in]表示第一频谱的标签序列,n表示频点的数量。

S217:当第一帧数据的语音置信度大于预设语音置信度时,确定第一帧数据的类型为语音。

S218:当第一帧数据的语音置信度小于或等于预设语音置信度时,确定第一帧数据的类型为静音。

在实际应用中,预设语音置信度可以根据实际需要进行设置。例如:0.4、0.5、0.6等。当需要从音频数据中更加全面地获取语音数据时,可以将预设语音置信度设置的低一些;当需要从音频数据中更加准确地获取语音数据时,可以将预设语音置信度设置的高一些。对于预设语音置信度的具体数值,此处不做限定。

图4为本申请实施例中进行语音检测的架构示意图,参见图4所示,对于第一帧数据在频域的第一频谱中的n个频点,分别判断这n个频点是否属于语音,进而生成n个频点的序列。同时,确定这n个频点的权重。然后,基于这n个频点的权重和这n个频点的序列计算第一帧数据的语音置信度。最后,根据第一帧数据的语音置信度进行阈值判断,输出判断结果,判断结果用于表征第一帧数据是否属于语音数据。

通过上述步骤S201至S207,在检测音频数据的过程中对噪声不断地更新,以及通过上述步骤S208至S218,在进行阈值判断时,引入语音数据的先验知识(语音数据在各频点的归一化功率范围以及哪些频点对判断数据为语音更为重要)可粗略地将音频数据中的语音帧和静音帧区分开,以便后续只将语音帧送入深度神经网络中进行声音检测,在确保检测准确性的同时,能够大大减小运算量,提高检测效率。

在实际应用中,可以采用卷积神经网络对语音数据中的目标声音和非目标声音进行分类识别。

以卷积神经网络为例,在使用卷积神经网络进行目标声音检测前,需要获取训练数据集、搭建网络、训练网络。当网络完成训练后,才能够更准确地对语音数据中的目标声音进行检测。下面就从获取训练数据集、搭建网络、训练网络、使用网络进行预测这四个方面对进行目标声音检测的过程进行具体说明。

第一方面:获取训练数据集。

在实际应用中,可以通过字幕对齐电影语料库(subtitle-aligned moviecorpus,SAM)生成训练数据集,以进行网络训练。以进行人声识别为例,从SAM中,获取电影中的人声数据。人声数据可以包括:纯净的人声、人声加噪声、人声加音乐等。约5万条样本。还获取电影中的非人声数据。非人声数据可以包括:电影中出现的不含人声的其它声音等。约17万条样本。每条样本的长度约为0.63s。这样,就得到了训练数据集。

在获得训练数据集后,可以进一步对数据集进行处理。具体的,对训练数据集中的每个0.63s长度的语音片段进行分帧处理,帧长设定为25ms,帧移设定为10ms,每个语音片段可分为64个语音帧。然后,对每个语音帧,提取64维的梅尔频率倒谱系数(mel frequencycepstral coefficent,MFCC)特征,以用MFCC特征来表达每个语音帧。而每个语音片段则用64×64的语音图谱来表示。

在这里,MFCC是基于人耳听觉特性提出来的,与频率成非线性对应关系。因此,MFCC特征就是利用这种关系,计算得到的频谱特征。

第二方面:搭建网络。

具体的,可以采用8层的深度残差网络。由于深度残差网络能够通过残差学习解决深度网络的退化问题,因此,采用深度残差网络来进行目标声音识别,能够取得更好的效果。

第三方面:训练网络。

可以将数据集中的各语音片段代入到搭建好的深度神经网络中进行训练。

具体的,可以采用adamW优化算法进行网络训练,直到网络中的参数达到最优。在训练过程中,还采用了学习率warmup技术。在刚开始训练时,网络的权重是随机初始化的,此时若选择一个较大的学习率,可能会导致网络的不稳定(震荡)。而通过学习率warmup技术,可以在刚开始训练时,或者在一些训练步骤中使学习率从初始的较小值缓慢增大到初始较大值。这样,在预热的小学习率下,网络可以慢慢趋于稳定。等网络相对稳定后,再选择较大的学习率进行训练,能够使网络的收敛速度加快,进而提升网络的预测效果。

第四方面:使用网络进行预测。

由于网络在进行预测时,并不是一次性地对整个语音数据进行预测,而是将语音数据按照预设的帧长和帧移拆分为多个语音片段,分别对每个语音片段中各帧进行的预测。下面以语音数据中相邻的两个语音片段,即第一语音片段和第二语音片段为例,对网络预测的过程进行详细说明。

S219:将语音数据中的第一语音片段输入深度神经网络,获得第一语音片段中第一语音帧和第二语音帧的预测结果。

S220:将语音数据中的第二语音片段输入深度神经网络,获得第二语音片段中第二语音帧和第三语音帧的预测结果。

S221:根据第一语音片段中第二语音帧的预测结果和第二语音片段中第二语音帧的预测结果确定第二语音帧是否来自于目标。

其中,第一语音片段中的第二语音帧和第二语音片段中的第二语音帧为语音数据中的同一帧。预测结果用于表征相应的语音帧是否来自于目标。

也就是说,语音数据中包含有多个语音片段,每个语音片段都包含有多个语音帧,并且,相邻的语音片段在一些语音帧上是部分重叠的。图5为本申请实施例中语音数据的结构示意图,参见图5所示,在语音数据中,存在有多个部分重叠的语音片段,对于语音数据中的某一帧,例如:当前帧。就有多个语音片段中都包含有当前帧。在确定当前帧是否来自于目标时,需要从包含有当前帧的多个语音片段中分别进行当前帧是否来自于目标的预测,进而基于包含有当前帧的多个语音片段中当前帧的预测结果,最终确定当前帧是否来自于目标。例如:在语音数据中,以0.63s的时长作为一个语音片段,以25ms的时长作为一个语音帧,在确定当前帧是否来自于目标时,需要63个语音片段中分别进行当前帧是否来自于目标的预测,进而基于63个语音片段中当前帧的预测结果,最终确定当前帧是否来自于目标。

一般来说,在实际应用中,第一语音片段中语音帧的数量可以是64个,即第一语音帧和第二语音帧代表64个语音帧。相应的,第二语音片段中语音帧的数量也可以是64个,即第二语音帧和第三语音帧代表64个语音帧。这样,将语音数据中的第一语音片段输入深度神经网络后,就能够获得第一语音片段中64个语音帧的预测结果。将语音数据中的第二语音片段输入深度神经网络,就能够获得第二语音片段中64个语音帧的预测结果。由于第一语音片段中的语音帧与第二语音片段中的语音帧部分重叠,因此,最终会根据63个语音片段对其中一帧的语音帧的预测结果确定该语音帧是否来自于目标。进而将从语音数据中确定出的来自于目标的语音帧数据作为目标的声音数据。

对于深度神经网络来说,在接收到一个语音片段后,就能够输出该语音片段中所有语音帧的预测结果。对于该语音片段中的某一个语音帧的预测结果来说,在其它语音片段中,也有该语音帧的预测结果。因此,从各语音片段中获取该语音帧的所有预测结果,并根据该语音帧的所有预测结果确定该语音帧是否属于目标,能够提高语音帧预测的准确性,进而提高目标声音检测的准确性。

具体来说,在该语音帧的所有预测结果中,无非就是两种结果。一种是属于目标,另一种是不属于目标。因此,可以统计两种结果的数量,将数量多的预测结果作为该语音帧最终的预测结果。

在实际应用中,将语音片段输入深度神经网络后,深度神经网络就能够输出该语音片段中各语音帧的预测结果。该预测结果可以通过0和1表示,也可以通过概率表示。当预测结果通过0和1表示时,输出0,可以表示当前语音帧不属于目标,输出1,可以表示当前语音帧属于目标。而当预测结果通过概率表示时,概率值就表示当前帧属于目标的概率大小。当然,网络的预测结果还可以通过其它方式表示,此处不做具体限定。

图6为本申请实施例中对音频数据进行目标声音识别的流程示意图,参见图6所示,在获取到音频数据后,首先,通过噪声估计对音频数据进行静音检测;然后,将音频数据中的静音帧剔除,得到语音帧;接着,基于语音帧生成多个语音片段;再接着,将多个语音片段输入深度神经网络进行目标声音检测;最后,获得各语音帧的预测结果,即各语音帧分别是否属于目标。

S222:将从语音数据中确定出的来自于目标的数据作为目标的声音数据。

在通过深度神经网络确定了语音数据中各语音帧是否属于目标后,就可以从语音数据中提取出目标的声音数据了。

基于同一发明构思,作为对上述方法的实现,本申请实施例还提供了一种声音检测装置。图7为本申请实施例中声音检测装置的结构示意图一,参见图7所示,该装置可以包括:

获取模块701,用于获取待检测的音频数据。

确定模块702,用于确定所述音频数据中每一帧数据的类型,所述类型包括语音和静音。

预测模块703,用于将所述音频数据中属于语音类型的帧对应的语音数据输入深度神经网络,获得属于目标的声音数据。

进一步地,作为图7所示装置的细化和扩展,本申请实施例还提供了一种声音检测装置。图8为本申请实施例中声音检测装置的结构示意图二,参见图8所示,该装置可以包括:

获取模块801,用于获取待检测的音频数据。

平滑模块802,用于将第一频谱中各频点的功率进行平滑处理,得到处理后的所述第一频谱中各频点的功率。

第一预设模块803,具体用于:

构建所述第一频谱中各频点的概率分布模型。

对所述概率分布模型中的概率曲线进行积分,获取预设概率在所述概率分布模型中对应的两个功率值。

将所述两个功率值作为相应的频点的预设功率范围。

第二预设模块804,具体用于:

当所述第一频谱中目标频点的功率大于第二频谱中相应频点的最小功率时,所述目标频点的最小功率与所述第一频谱中目标频点的功率、所述第二频谱中相应频点的功率、所述第二频谱中相应频点的最小功率相关,所述第二频谱对应的第二帧数据为所述第一帧数据在所述音频数据中的上一帧数据。

当所述第一频谱中目标频点的功率小于或等于第二频谱中相应频点的最小功率时,所述目标频点的最小功率为所述第一频谱中目标频点的功率。

权重模块805,用于根据所述第一频谱中各频点的归一化功率确定各频点对应的权重,所述权重与所述归一化功率正相关。

确定模块806包括:

获取单元8061,用于获取所述音频数据中的第一帧数据。

变换单元8062,用于对所述第一帧数据进行傅里叶变换,得到第一频谱,所述第一频谱中包括有多个频点。

计算单元8063,用于计算所述第一频谱中各频点的功率。

计算单元8063,具体用于计算所述第一频谱中预设频点的功率,所述预设频点为所述第一频谱的各频点中前半部分的频点。

确定单元8064,用于基于所述第一频谱中各频点的功率确定所述第一帧数据的类型。

确定单元8064,具体用于:

将所述第一频谱中各频点的功率与相应频点的最小功率相减,得到各频点的去噪声音信号功率,所述最小功率基于频点的非线性跟踪获得;

对所述各频点的去噪声音信号功率进行归一化处理,得到各频点的归一化功率。

基于所述第一频谱中各频点的归一化功率确定所述第一帧数据的类型。

确定单元8064,具体用于:

当所述第一频谱中各频点的归一化功率位于预设功率范围内时,为相应的频点标记第一标签,所述第一标签用于表征所述第一帧数据在所述相应的频点上属于语音。

当所述第一频谱中各频点的归一化功率不位于所述预设功率范围内时,为相应的频点标记第二标签,所述第二标签用于表征所述第一帧数据在所述相应的频点上属于静音。

生成所述第一频谱中各频点的标签序列。

基于所述标签序列确定所述第一帧数据的类型。

确定单元8064,具体用于:

将所述标签序列与相应的频点的权重进行加权平均,得到所述第一频谱对应的第一帧数据的语音置信度。

当所述第一帧数据的语音置信度大于预设语音置信度时,确定所述第一帧数据的类型为语音。

当所述第一帧数据的语音置信度小于或等于预设语音置信度时,确定所述第一帧数据的类型为静音。

预测模块807包括:

第一预测单元8071,用于将所述语音数据中的第一语音片段输入所述深度神经网络,获得所述第一语音片段中第一语音帧和第二语音帧的预测结果,所述预测结果用于表征相应的语音帧是否来自于所述目标。

第二预测单元8072,用于将所述语音数据中的第二语音片段输入所述深度神经网络,获得所述第二语音片段中第二语音帧和第三语音帧的预测结果,所述第一语音片段中的第二语音帧和所述第二语音片段中的第二语音帧为所述语音数据中的同一帧。

目标预测单元8073,用于根据所述第一语音片段中第二语音帧的预测结果和所述第二语音片段中第二语音帧的预测结果确定所述第二语音帧是否来自于所述目标。

提取单元8074,用于将从所述语音数据中确定出的来自于所述目标的数据作为所述目标的声音数据。

这里需要指出的是,以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。

基于同一发明构思,本申请实施例还提供了一种电子设备。图9为本申请实施例中电子设备的结构示意图,参见图9所示,该电子设备可以包括:处理器901、存储器902、总线903;其中,处理器901、存储器902通过总线903完成相互间的通信;处理器901用于调用存储器902中的程序指令,以执行上述一个或各实施例中的方法。

这里需要指出的是,以上电子设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请电子设备实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。

基于同一发明构思,本申请实施例还提供了一种计算机可读存储介质,该存储介质可以包括:存储的程序;其中,在程序运行时控制存储介质所在设备执行上述一个或各实施例中的方法。

这里需要指出的是,以上存储介质实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

23页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:多模态语音识别方法、系统及计算机可读存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!