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

一种确定鼾声信号的方法、装置、电子设备和存储介质

文献发布时间:2024-04-18 19:53:33


一种确定鼾声信号的方法、装置、电子设备和存储介质

本申请是申请日为2022年09月15日,申请号为CN 202211118325.0,发明名称为“一种确定鼾声信号的方法、装置、电子设备和存储介质”的分案申请。

技术领域

本发明涉及信号处理领域,尤其涉及一种确定鼾声信号的方法、装置、电子设备和存储介质。

背景技术

鼾声是入睡后发出的粗重鼻息声。打鼾不仅困扰用户本人、影响同伴,还会对用户本人健康造成威胁。

对于鼾声段检测,目前少有能应用于嵌入式系统的实时检测方法,多数是后处理、模型和参数固定的方法,例如高斯混合模型、隐马尔科夫模型,更复杂的还有聚类、支持向量机等机器学习算法甚至深度学习算法,这些算法计算复杂、实时性差,深度学习算法甚至需要服务器级别的计算和存储资源,很难在嵌入式系统上实现。

因此,亟需一种可以在嵌入式系统上实现实时鼾声信号检测的方法。

发明内容

为了解决现有技术的问题,本发明实施例提供了一种确定鼾声信号的方法、装置、电子设备和存储介质。技术方案如下:

根据本发明的一方面,提供了一种确定鼾声信号的方法,所述方法包括:

获取声音信号,并对所述声音信号进行人声段检测,并在目标人声段之前检测到至少两个人声段;

若在所述声音信号中检测到目标人声段的起始帧,则在所述目标人声段中确定第一当前帧是否为鼾声段起始帧;

如果确定出鼾声段起始帧,则从所述鼾声段起始帧的下一帧起确定鼾声段结束帧;

将所述鼾声段起始帧和所述鼾声段结束帧之间的声音信号作为鼾声信号。

根据本发明的另一方面,提供了一种确定鼾声信号的装置,所述装置包括:

获取模块,用于获取声音信号,并对所述声音信号进行人声段检测,并在目标人声段之前检测到至少两个人声段;

第一确定模块,用于若在所述声音信号中检测到目标人声段的起始帧时,则在所述目标人声段中确定第一当前帧是否为鼾声段起始帧;

第二确定模块,用于如果确定出鼾声段起始帧,则从所述鼾声段起始帧的下一帧起确定鼾声段结束帧;将所述鼾声段起始帧和所述鼾声段结束帧之间的声音信号作为鼾声信号。

根据本发明的另一方面,提供了一种电子设备,包括:

处理器;以及

存储程序的存储器,

其中,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行上述确定鼾声信号的方法。

根据本发明的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使计算机执行上述确定鼾声信号的方法。

本发明中,实时采集声音信号后,可以实时地进行人声段检测,确定声音信号中的人声段,并在确定出至少两个人声段后,从目标人声段的起始帧开始,逐帧检测鼾声段起始帧和鼾声段结束帧。由于上述处理的计算量相较于高斯混合模型、隐马尔科夫模型、聚类模型、支持向量机等机器学习算法的计算量较小,可以在嵌入式系统上实现实时的鼾声信号检测。

附图说明

在下面结合附图对于示例性实施例的描述中,本发明的更多细节、特征和优点被公开,在附图中:

图1示出了根据本发明示例性实施例提供的确定鼾声信号的方法流程图的示意图一;

图2示出了根据本发明示例性实施例提供的确定鼾声信号的方法流程图的示意图二;

图3示出了根据本发明示例性实施例提供的人声段确定方法流程图;

图4示出了根据本发明示例性实施例提供的确定鼾声信号的方法流程图的示意图三;

图5示出了根据本发明示例性实施例提供的确定鼾声信号的方法流程图的示意图四;

图6示出了根据本发明示例性实施例提供的确定鼾声信号的方法流程图的示意图五;

图7示出了根据本发明示例性实施例提供的鼾声段起始帧确定方法流程图;

图8示出了根据本发明示例性实施例的鼾声段检测装置的示意性框图;

图9示出了能够用于实现本发明的实施例的示例性电子设备的结构框图。

具体实施方式

下面将参照附图更详细地描述本发明的实施例。虽然附图中显示了本发明的某些实施例,然而应当理解的是,本发明可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本发明。应当理解的是,本发明的附图及实施例仅用于示例性作用,并非用于限制本发明的保护范围。

应当理解,本发明的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本发明的范围在此方面不受限制。

本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。需要注意,本发明中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。

需要注意,本发明中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。

本发明实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。

本发明实施例提供了一种确定鼾声信号的方法,该方法可以由按摩器、智能手环、移动终端、智能音箱等采用嵌入式系统的设备实现。本发明实施例提供的方法可以由上述任一设备完成,也可以由多个设备共同完成,本发明对此不作限定。

下面将参照图1所示的确定鼾声信号的方法流程图,对该方法进行介绍。

如图1所示,该方法包括如下步骤101-104。

步骤101,获取声音信号,并对声音信号进行人声段检测,并在目标人声段之前检测到至少两个人声段;

步骤102,若在声音信号中检测到目标人声段的起始帧,则在目标人声段中确定第一当前帧是否为鼾声段起始帧;

步骤103,如果确定出鼾声段起始帧,则从鼾声段起始帧的下一帧起确定鼾声段结束帧;

步骤104,将鼾声段起始帧和鼾声段结束帧之间的声音信号作为鼾声信号。

其中,第一当前帧包括两种情况,第一种情况是指:第一当前帧为目标人声段的起始帧;第二种情况是指:第一当前帧为目标人声段的起始帧之后的任一中间帧。

可选的,对于上述第一种情况,即第一当前帧为所述目标人声段的起始帧,上述在目标人声段中确定第一当前帧是否为鼾声段起始帧的处理可以如下:

在目标人声段中,基于目标人声段之前的至少两个人声段与目标人声段的起始帧的预设特性的相似性和/或鼾声特性,确定目标人声段的起始帧是否为鼾声段起始帧。

一些可能的实施例中,可以基于上述至少两个人声段与目标人声段的起始帧的预设特性的相似性,计算目标人声段的起始帧的相似性得分,并基于目标人声段的起始帧的相似性得分,确定目标人声段的起始帧是否为鼾声段起始帧。

一些可能的实施例中,可以基于至少两个人声段与目标人声段的起始帧的鼾声特性,计算目标人声段的起始帧的鼾声特性得分,并基于目标人声段的起始帧的鼾声特性得分,确定目标人声段的起始帧是否为鼾声段起始帧。

一些可能的实施例中,可以基于至少两个人声段与目标人声段的起始帧的预设特性的相似性,计算目标人声段的起始帧的相似性得分;基于至少两个人声段与所述目标人声段的起始帧的鼾声特性,计算目标人声段的起始帧的鼾声特性得分;基于相似性得分和鼾声特性得分,确定目标人声段的起始帧是否为鼾声段起始帧。

可选的,上述预设特性的相似性可以包括以下任意一种或多种:能量相似性,频谱相似性,梅尔倒谱系数相似性,噪声相似性;

可选的鼾声特性包括以下任意一种或多种:鼾声能量特性,鼾声基频特性,鼾声过零率特性。

对于能量相似性,计算目标人声段的起始帧的相似性得分的处理可以如下:分别计算至少两个人声段中每个人声段的能量均值,并计算每个人声段之间的能量均值的差值比例,若差值比例在预设比例范围内,则在目标人声段的起始帧的相似性得分中增加对应的第一相似性分值。

对于频谱相似性,计算目标人声段的起始帧的相似性得分的处理可以如下:确定至少两个人声段的频谱中满足波峰位置重合条件的第一波峰个数,若第一波峰个数大于第一个数阈值,则在目标人声段的起始帧的相似性得分中增加对应的第二相似性分值。

对于梅尔倒谱系数相似性,计算目标人声段的起始帧的相似性得分的处理可以如下:计算至少两个人声段中每个人声段的梅尔倒谱系数和目标人声段的起始帧的梅尔倒谱系数,分别计算至少两个人声段和目标人声段的起始帧中任意两个梅尔倒谱系数之间的第一互相关系数,若第一互相关系数均大于第一预设阈值,则在目标人声段的起始帧的相似性得分中增加对应的第三相似性分值。

对于噪声相似性,计算目标人声段的起始帧的相似性得分的处理可以如下:分别计算至少两个人声段和目标人声段的起始帧中任意一个梅尔倒谱系数与预设噪声的梅尔倒谱系数之间的第二互相关系数,若任意一个第二互相关系数大于第二预设阈值,则在目标人声段的起始帧的相似性得分中减去对应的第四相似性分值;若第二互相关系数均小于第三预设阈值,则在目标人声段的起始帧的相似性得分中增加对应的第五相似性分值。

其中,对于频谱相似性,计算目标人声段的起始帧的相似性得分的处理可以进一步包括:

若第一波峰个数大于预设个数阈值,则在目标人声段的起始帧的频谱中,确定与至少两个人声段相比满足波峰位置重合条件的第二波峰个数,若第二波峰个数大于第二个数阈值,则在目标人声段的起始帧的相似性得分中增加对应的第六相似性分值。

对于鼾声能量特性,计算目标人声段的起始帧的鼾声特性得分的处理可以如下:

分别计算至少两个人声段中每个人声段的低频能量均值和中频能量均值,并计算每个人声段的低频能量均值与中频能量均值的第一比值,若第一比值均大于比值阈值,则在目标人声段的起始帧的鼾声特性得分中增加对应的第一鼾声特性分值;

计算目标人声段的起始帧的低频能量均值和中频能量均值,并计算目标人声段的起始帧的低频能量均值与中频能量均值的第二比值,若第二比值大于比值阈值,则在目标人声段的起始帧的鼾声特性得分中增加对应的第二鼾声特性分值。

对于鼾声基频特性,计算目标人声段的起始帧的鼾声特性得分的处理可以如下:

分别计算至少两个人声段中每个人声段的基频,并计算每个人声段之间的基频差值,若每个人声段的基频在鼾声基频范围内,且基频差值在基频差值范围内,则在目标人声段的起始帧的鼾声特性得分中增加对应的第三鼾声特性分值;

计算目标人声段的起始帧的基频,若目标人声段的起始帧的基频在鼾声基频范围内,则在目标人声段的起始帧的鼾声特性得分中增加对应的第四鼾声特性分值。

对于鼾声过零率特性,计算目标人声段的起始帧的鼾声特性得分的处理可以如下:

分别计算至少两个人声段中每个人声段的平均过零率,若每个人声段的平均过零率在鼾声过零率范围内,则在目标人声段的起始帧的鼾声特性得分中增加对应的第五鼾声特性分值;

计算目标人声段的起始帧的过零率,若目标人声段的起始帧的过零率在鼾声过零率范围,则在目标人声段的起始帧的鼾声特性得分中增加对应的第六鼾声特性分值。

其中所使用的比值阈值可以通过如下方式进行更新:

在确定出目标人声段的起始帧是鼾声段起始帧时,基于上述第一比值和上述第二比值,更新比值阈值;和/或

若在确定出目标人声段的起始帧不是鼾声段起始帧之后,确定出目标人声段的中间帧是鼾声段起始帧,则基于目标人声段的起始帧与鼾声段起始帧之间的频谱均值的低频能量均值和中频能量均值的均值比值,更新比值阈值。

可选的,对于上述第二种情况,即第一当前帧为所述目标人声段的起始帧之后的任一中间帧,上述在目标人声段中确定第一当前帧是否为鼾声段起始帧的处理可以如下:

若在目标人声段中确定目标人声段的中间帧满足以下任意一种或多种鼾声起始条件,则确定目标人声段的中间帧为鼾声段起始帧。

上述鼾声起始条件包括:鼾声时长条件,梅尔倒谱系数条件,非噪声条件,过零率条件,频谱条件,基频条件。

确定目标人声段的中间帧满足鼾声时长条件是指:确定目标人声段的起始帧与第一当前帧之间的帧数在鼾声时长范围内,和/或,确定目标人声段的起始帧和前一人声段的结束帧之间的时长大于鼾声间隔时长。

确定目标人声段的中间帧满足梅尔倒谱系数条件是指:计算目标人声段的起始帧与目标人声段的中间帧之间的第一梅尔倒谱系数均值,计算第一梅尔倒谱系数均值与梅尔倒谱系数基准值的第一互相关系数,确定第一互相关系数大于第一预设阈值。

确定目标人声段的中间帧满足非噪声条件是指:计算第一梅尔倒谱系数均值与预设噪声的梅尔倒谱系数的第二互相关系数,确定第二互相关系数小于第二预设阈值。

确定目标人声段的中间帧满足过零率条件是指:计算目标人声段的起始帧与目标人声段的中间帧之间的平均过零率,确定平均过零率在预设过零率范围内。

确定目标人声段的中间帧满足频谱条件是指:计算目标人声段的起始帧与目标人声段的中间帧之间的频谱均值,在频谱均值上计算低频能量均值和中频能量均值,并计算低频能量均值和中频能量均值的均值比值,确定均值比值大于比值阈值。

确定目标人声段的中间帧满足基频条件是指:在频谱均值上确定基频值,确定频谱均值的基频值在鼾声基频范围内。

其中所使用的比值阈值可以通过如下方式进行更新:

在确定出目标人声段的起始帧是鼾声段起始帧时,分别计算目标人声段之前的至少两个人声段中每个人声段的低频能量均值和中频能量均值,并计算每个人声段的低频能量均值与中频能量均值的第一比值;计算目标人声段的起始帧的低频能量均值和中频能量均值,并计算目标人声段的起始帧的低频能量均值与中频能量均值的第二比值;基于第一比值和第二比值,更新比值阈值;和/或

在确定出目标人声段的中间帧是鼾声段起始帧时,基于目标人声段的起始帧与鼾声段起始帧之间的频谱均值的低频能量均值和中频能量均值的均值比值,更新比值阈值。

其中所使用的梅尔倒谱系数基准值可以通过如下方式进行更新:

在确定出目标人声段的起始帧是鼾声段起始帧时,基于目标人声段之前的至少两个人声段中每个人声段的梅尔倒谱系数与目标人声段的起始帧的梅尔倒谱系数,更新梅尔倒谱系数基准值;和/或

在确定出目标人声段的中间帧是鼾声段起始帧时,基于目标人声段的起始帧与鼾声段起始帧之间的梅尔倒谱系数均值,更新梅尔倒谱系数基准值。

可选的,对目标人声段的中间帧进行确定是否为鼾声段起始帧的处理的条件可以是:至少两个人声段中至少检测到一段鼾声信号。

可选的,上述步骤103的处理可以如下:

从鼾声段起始帧的下一帧起,对第二当前帧进行如下检测处理:

确定第二当前帧是否为目标人声段的结束帧;

如果第二当前帧是所述目标人声段的结束帧,则将第二当前帧作为鼾声段结束帧;

如果第二当前帧不是目标人声段的结束帧,则确定第二当前帧是否为鼾声段结束帧,若是,则将第二当前帧作为鼾声段结束帧;若否,则对第二当前帧的下一帧进行上述检测处理。

可选的,确定第二当前帧是否为鼾声段结束帧的处理可以如下:

基于梅尔倒谱系数基准值和第二当前帧的梅尔倒谱系数,确定第二当前帧是否为鼾声段结束帧。

具体可以是:计算鼾声段起始帧与第二当前帧之间的第二梅尔倒谱系数均值,并计算第二梅尔倒谱系数均值与梅尔倒谱系数基准值的第三互相关系数;若确定第三互相关系数小于第三预设阈值,则确定第二当前帧是鼾声段结束帧。

其中所使用的梅尔倒谱系数基准值可以通过如下方式进行更新:

在确定出目标人声段的起始帧是鼾声段起始帧时,基于目标人声段之前的至少两个人声段中每个人声段的梅尔倒谱系数与目标人声段的起始帧的梅尔倒谱系数,更新梅尔倒谱系数基准值;和/或

在确定出目标人声段的中间帧是鼾声段起始帧时,基于目标人声段的起始帧与鼾声段起始帧之间的梅尔倒谱系数均值,更新梅尔倒谱系数基准值。

本发明实施例中,实时采集声音信号后,可以实时地进行人声段检测,确定声音信号中的人声段,并在确定出至少两个人声段后,从目标人声段的起始帧开始,逐帧检测鼾声段起始帧和鼾声段结束帧。由于上述处理的计算量相较于高斯混合模型、隐马尔科夫模型、聚类模型、支持向量机等机器学习算法的计算量较小,可以在嵌入式系统上实现实时的鼾声信号检测。

下面将参照图2所示的一种确定鼾声信号的方法流程图,对本实施例提供的确定鼾声信号的方法进行介绍。本实施例中,主要采用预设特性的相似性来确定目标人声段的起始帧是否为鼾声段起始帧。

如图2所示,本实施例提供的确定鼾声信号的方法包括如下步骤201-204。

步骤201,获取声音信号,对声音信号进行人声段检测,并在目标人声段之前检测到至少两个人声段。

在一种可能的实施方式中,设备上可以设置有音频采集设备,该音频采集设备可以对声音信号进行实时采集。对采集到的声音信号进行信号分帧、预加重、去脉冲噪声、去均值等处理,进而对每帧声音信号进行人声段检测,在声音信号中确定人声段。

具体的,参照图3示出的人声段确定方法流程图,可以参照如下步骤301-303确定每帧声音信号是否为起始帧,并基于如下步骤304确定结束帧。

步骤301,将当前声音信号帧和之前的预设数目的声音信号帧,作为待检测的第一目标声音帧段。

在一种可能的实施方式中,在确定上述第一目标声音帧段后,还可以计算其中每个声音信号帧的帧能量、过零率、谱熵及变换平滑谱熵值。其中,变换平滑谱熵值是指对声音信号帧的功率谱进行谱熵计算,再进行平滑、变换的结果,具体计算方法可以如下:将该声音信号帧的功率谱进行直接谱熵或分段谱熵计算,再进行平滑处理,最后将该谱熵值取相反数并加上平移参数,即可得到该声音信号帧的变换平滑谱熵值。

步骤302,基于预设噪声、当前声音信号帧的帧能量、谱熵、变换平滑谱熵值、谐波特性和过零率,判断当前声音信号帧是否为人声帧。

在一种可能的实施方式中,当判断出当前声音信号帧满足人声帧条件时,确定当前声音信号帧为人声帧,并进入步骤303,基于第一目标声音帧段进行判断。上述人声帧条件可以包括以下任意一种或多种:帧能量大于帧能量阈值、谱熵大于谱熵阈值、变换平滑谱熵值大于变换平滑谱熵值阈值、具备谐波特性、过零率大于人声帧过零率阈值、不符合预设噪声的噪声特性。其中,预设噪声可以包括汽车发动机噪声、汽车喇叭噪声、警报噪声等,本实施例对此不作限定。

当判断出当前声音信号帧不满足上述任一人声帧条件时,确定当前声音信号帧不是人声帧,并对下一帧进行检测,重复执行步骤301-303。

上述各个阈值可以根据大量试验进行设定,可以动态更新上述各个阈值,并且还可以根据大量试验设置有阈值的上下限,使这些阈值保持在合理范围内,本实施例对此不作限定。

作为一种示例,上述阈值可以在与待比较的数值相差较大时进行更新,例如,当前帧的变换平滑谱熵值与对应的变换平滑谱熵值阈值相差较大时,可以对变换平滑谱熵值阈值进行更新。具体如下:

当待比较的数值大于对应的阈值并相差达到设定数值时,基于增大阈值对应的第一加权因子,对该阈值进行增大处理;

当待比较的数值小于对应的阈值并相差达到设定数值时,基于减小阈值对应的第二加权因子,对该阈值进行减小处理。

在一种可能的实施方式中,可以基于如下公式(1)对阈值进行调整:

Th_new = (1-a)*Th+a*x (1)

其中,Th_new为更新后的阈值,Th为更新前的阈值,x为上述待比较的数值,a为加权因子,a的取值范围为(0,1)。在对阈值进行增大处理时,a可以为a1;在对阈值进行减小处理时,a可以为a2。

增大阈值对应的第一加权因子a1和减小阈值对应的第二加权因子a2,可以根据经验设置,a1和a2的取值可以相同,也可以不同,本实施例对此不作限定。

步骤303,基于预设噪声、第一目标声音帧段的帧能量、谱熵、变换平滑谱熵、谐波特性和过零率,判断当前声音信号帧是否为起始帧。

在一种可能的实施方式中,可以在第一目标声音帧段中,分别确定各个声音信号帧是否满足上述人声帧条件,并统计满足人声帧条件的帧数。当满足人声帧条件的帧数大于帧数阈值时,可以将当前声音信号帧作为起始帧。

当满足人声帧条件的帧数不大于帧数阈值时,可以认为当前声音信号帧不是人声帧,则对下一帧进行检测,重复执行步骤301-303。

本实施例提供的确定鼾声信号的方法,在对目标人声段进行鼾声段检测之前,可以检测到至少两个人声段。因此,若在声音信号中还未检测到两个人声段,则在步骤303中检测到起始帧后,进入步骤304对结束帧进行检测;若在声音信号中已检测到至少两个人声段,则在步骤303中检测到起始帧后,进入下述步骤202,确定起始帧是否为鼾声段起始帧。

步骤304,将当前声音信号帧和之前的预设数目的声音信号帧,作为待检测的第二目标声音帧段,基于预设噪声、第二目标声音帧段的帧能量、谱熵、变换平滑谱熵、谐波特性和过零率,判断当前声音信号帧是否为结束帧。

在一种可能的实施方式中,步骤303中检测到起始帧后,经过一定帧数后,逐帧对当前声音信号帧判断是否为结束帧。具体处理可以为在第二目标声音帧段中,分别确定各个声音信号帧是否满足上述人声帧条件,并统计满足人声帧条件的帧数。

当满足人声帧条件的帧数大于帧数阈值时,认为当前声音信号帧是人声帧,则对下一帧执行步骤304的处理,判断该帧声音信号是否为结束帧。

当满足人声帧条件的帧数不大于帧数阈值时,将当前声音信号帧作为结束帧。此时,可以将起始帧与结束帧之间的声音信号作为一个人声段。

此后,可以继续对结束帧的下一帧执行上述步骤301-304的处理,确定声音信号中的各个人声段,并基于如下步骤202-204在人声段中进行鼾声段检测。

步骤202,若在声音信号中检测到目标人声段的起始帧,则基于至少两个人声段与目标人声段的起始帧的预设特性的相似性,确定目标人声段的起始帧是否为鼾声段起始帧。

在一种可能的实施方式中,当在声音信号中检测到两个人声段时,可以从第三个人声段开始,在人声段中进行鼾声段检测。可选的,为了保证鼾声段检测的准确性,目标人声段之前的至少两个人声段中,每个人声段的长度满足预设的长度条件(如处于鼾声长度范围内),且相邻的两个人声段之间的间隔时间大于预设的间隔时长。

本实施例中,将进行鼾声段检测的人声段称为目标人声段,下文同理。

与说话而发出的人声相比,鼾声具备一定的重复性,因此,每当检测到目标人声段的起始帧时,可以判断目标人声段之前的至少两个人声段是否具备相似性。如果目标人声段之前的至少两个人声段具备相似性,则采集到的声音属于鼾声的概率较高。并且,可以判断目标人声段的起始帧与之前的至少两个人声段是否具备相似性。如果目标人声段的起始帧与之前的至少两个人声段具备相似性,表明该起始帧属于鼾声的概率也较高,则可以将该起始帧作为鼾声段起始帧。

可选的,为了进一步提高判断起始帧是否为鼾声段起始帧的准确性,上述步骤202的处理可以如下:

基于至少两个人声段与目标人声段的起始帧的预设特性的相似性,计算起始帧的相似性得分;

基于起始帧的相似性得分,确定目标人声段的起始帧是否为鼾声段起始帧。

其中,上述预设特性的相似性可以包括以下任意一种或多种:能量相似性,频谱相似性,梅尔倒谱系数相似性,噪声相似性。

在一种可能的实施方式中,可以判断目标人声段的起始帧与之前的至少两个人声段的能量是否具备相似性,如果具备能量相似性,该起始帧的相似性得分可以增加。

可以判断目标人声段的起始帧与之前的至少两个人声段的频谱是否具备相似性,如果具备频谱相似性,该起始帧的相似性得分可以增加。

可以判断目标人声段的起始帧与之前的至少两个人声段的梅尔倒谱系数是否具备相似性,如果具备梅尔倒谱系数相似性,该起始帧的相似性得分可以增加。

可以通过预设噪声的噪声特征,判断目标人声段的起始帧与之前的至少两个人声段是否符合噪声特征,如果符合,表明起始帧或人声段可能属于噪声,则该起始帧的相似性得分可以降低。

下面将分别对上述各个相似性的具体计算方法进行介绍。

对于能量相似性,计算起始帧的相似性得分的处理可以如下:分别计算至少两个人声段中每个人声段的能量均值,并计算每个人声段之间的能量均值的差值比例,若差值比例在预设比例范围内,则在起始帧的相似性得分中增加对应的第一相似性分值。作为一种示例,取目标人声段之前的两个人声段进行处理,对每个人声段中每帧的帧能量按降序排列,取前一定数目帧(如前10帧),计算帧能量的均值并作为该人声段的能量均值;计算两个人声段之间的能量均值差值,并计算该能量均值差值的差值比例(如将能量均值差值与任一个人声段的能量均值求取比例关系);若该差值比例在预设比例范围(如0至0.1)内,表明两个人声段之间的能量具备相似性,则可以对起始帧的相似性得分加1分。

对于频谱相似性,计算起始帧的相似性得分的处理可以如下:确定至少两个人声段的频谱中满足波峰位置重合条件的第一波峰个数,若第一波峰个数大于第一个数阈值,则在起始帧的相似性得分中增加对应的第二相似性分值。作为一种示例,取目标人声段之前的两个人声段进行处理,计算每个人声段的平均频谱,并在平均频谱中搜索最大的一定数目(如5个)的峰值,并记录峰值的相应位置;对两个人声段的峰值位置逐个比较,记录峰值位置相近(即上述波峰位置重合条件)的个数,若峰值位置相近的个数超过第一个数阈值,表明两个人声段之间的频谱具备相似性,则可以对起始帧的相似性得分加1分。

对于梅尔倒谱系数相似性,计算起始帧的相似性得分的处理可以如下:计算至少两个人声段中每个人声段的梅尔倒谱系数和目标人声段的起始帧的梅尔倒谱系数,分别计算至少两个人声段和目标人声段的起始帧中任意两个梅尔倒谱系数之间的第一互相关系数,若第一互相关系数均大于第一预设阈值,则在起始帧的相似性得分中增加对应的第三相似性分值。作为一种示例,取目标人声段的起始帧和其之前的两个人声段进行处理,分别计算该起始帧和每个人声段的梅尔倒谱系数,其中,对于人声段,可以是计算其中每帧的梅尔倒谱系数,求取均值后得到梅尔倒谱系数均值,将梅尔倒谱系数均值作为该人声段的梅尔倒谱系数;计算两个人声段的梅尔倒谱系数之间的互相关系数,若该互相关系数大于第一预设阈值,表明这两个人声段具备梅尔倒谱系数相似性,则可以对起始帧的相似性得分加1分;计算起始帧和第一个人声段的梅尔倒谱系数之间的互相关系数,以及起始帧和第二个人声段的梅尔倒谱系数之间的互相关系数,若互相关系数均大于第一预设阈值,表明起始帧和这两个人声段均具备梅尔倒谱系数相似性,则可以对起始帧的相似性得分加1分。

对于噪声相似性,计算所述起始帧的相似性得分的处理可以如下:分别计算至少两个人声段和目标人声段的起始帧中任意一个梅尔倒谱系数与预设噪声的梅尔倒谱系数之间的第二互相关系数,若任意一个第二互相关系数大于第二预设阈值,则在起始帧的相似性得分中减去对应的第四相似性分值;若第二互相关系数均小于第三预设阈值,则在起始帧的相似性得分中增加对应的第五相似性分值。作为一种示例,取目标人声段的起始帧和其之前的两个人声段进行处理,分别计算该起始帧和每个人声段的梅尔倒谱系数,以及预设噪声的梅尔倒谱系数;计算预设噪声和第一个人声段的梅尔倒谱系数之间的互相关系数,以及预设噪声和第二个人声段的梅尔倒谱系数之间的互相关系数,若任一互相关系数大于第二预设阈值,表明任一人声段与预设噪声具备相似性,则可以对起始帧的相似性得分减1分,若互相关系数均小于第三预设阈值,表明这两个人声段与预设噪声均不具备相似性,则可以对起始帧的相似性得分加1分;计算预设噪声和起始帧的梅尔倒谱系数之间的互相关系数,若互相关系数大于第二预设阈值,表明起始帧与预设噪声具备相似性,则可以对起始帧的相似性得分减1分,若互相关系数小于第三预设阈值,表明起始帧与预设噪声不具备相似性,则可以对起始帧的相似性得分加1分。

可选的,对于频谱相似性,计算起始帧的相似性得分的处理可以进一步包括:若第一波峰个数大于预设个数阈值,则在起始帧的频谱中,确定与至少两个人声段相比满足波峰位置重合条件的第二波峰个数,若第二波峰个数大于第二个数阈值,则在起始帧的相似性得分中增加对应的第六相似性分值。作为一种示例,在上述计算频谱相似性的过程中,若在两个人声段中峰值位置相近的个数超过第一个数阈值,则可以继续在起始帧的频谱中搜索最大的一定数目的峰值,并记录峰值的相应位置;对起始帧与上述两个人声段的峰值位置逐个比较,记录峰值位置相近的个数,若峰值位置相近的个数超过第二个数阈值,表明起始帧与两个人声段的频谱具备相似性,则可以对起始帧的相似性得分加1分。

在完成上述相似性的计算后,可以对起始帧的相似性得分进行判断,如果相似性得分大于得分阈值,则可以将该起始帧作为鼾声段起始帧;如果相似性得分不大于得分阈值,则可以认为该起始帧不是鼾声段起始帧。

需要说明的是,上述各个相似性对应的分值可以进行调整,例如,若梅尔倒谱系数相似性的准确性更高,则可以调高梅尔倒谱系数相似性对应的第三分值,本实施例对此不作限定。

如果目标人声段的起始帧不是鼾声段起始帧,则此后可以采用两种处理方式:

第一种处理方式:逐帧检测目标人声段的结束帧,不再进行鼾声段检测;

第二种处理方式:在确定目标人声段的起始帧之后逐帧检测目标人声段的结束帧的过程中,确定中间帧是否为鼾声段起始帧。

上述两种处理方式种,逐帧检测目标人声段的结束帧的具体处理与上述步骤304同理,此处不再赘述。

对于第一种处理方式,若目标人声段的起始帧不是鼾声段起始帧,认为目标人声段不包含鼾声,则不在本目标人声段中继续进行鼾声段检测,再检测到下一人声段后,再对该人声段进行鼾声段检测。

为了提高鼾声段检测的准确性,还可以采用上述第二种处理方式,确定目标人声段的中间帧是否为鼾声段起始帧。具体的处理方式可以采用现有的鼾声段检测方法,本实施例对确定目标人声段的中间帧是否为鼾声段起始帧的具体方法不作限定。可选的,为了进一步提高鼾声段检测的准确性,本申请将在另一实施例中介绍一种确定目标人声段的中间帧是否为鼾声段起始帧的方法,本实施例在此不作赘述。

可选的,采用上述第二种处理方式的条件可以是在目标人声段之前检测到的人声段中,至少检测到一段鼾声信号。作为一种示例,假设在检测到的第三个人声段中未将起始帧确定为鼾声段起始帧,则不继续在第三个人声段中进行鼾声段检测;若在检测到的第四个人声段中将起始帧确定为鼾声段起始帧,则在第四个人声段中确定相应的鼾声信号,并将鼾声计数加1;在检测到第五个人声段时,若未将起始帧确定为鼾声段起始帧,则通过鼾声计数,可以进入上述第二种处理方式确定中间帧是否为鼾声段起始帧。采用此种可选方案的原因在于,在从未检测到鼾声信号时,人声段的中间帧为鼾声段起始帧的概率较小,为了降低计算资源的消耗,可以在检测到鼾声信号之后,再对中间帧进行鼾声段起始帧的判断。

为了便于介绍,本实施例中将检测鼾声段起始帧过程中所涉及的当前帧称为第一当前帧,将检测鼾声段结束帧过程中所涉及的当前帧称为第二当前帧。

步骤203,如果确定出鼾声段起始帧,则从鼾声段起始帧的下一帧起确定鼾声段结束帧。

具体的,步骤203的处理可以如下:

从鼾声段起始帧的下一帧起,对第二当前帧进行如下检测处理:

确定第二当前帧是否为目标人声段的结束帧;

如果第二当前帧是目标人声段的结束帧,则将第二当前帧作为鼾声段结束帧;

如果第二当前帧不是目标人声段的结束帧,则确定第二当前帧是否为鼾声段结束帧,若是,则将第二当前帧作为鼾声段结束帧;若否,则对第二当前帧的下一帧进行上述检测处理。

在一种可能的实施方式中,在确定鼾声段起始帧之后,可以对下一帧确定是否为结束帧,具体处理与上述步骤304同理,此处不再赘述。如果确定出结束帧,认为此时鼾声也结束,则可以将第二当前帧(即结束帧)作为鼾声段结束帧。

如果未将第二当前帧确定为结束帧,则确定第二当前帧是否为鼾声段结束帧。

可选的,可以基于梅尔倒谱系数基准值以及第二当前帧的梅尔倒谱系数,确定第二当前帧是否为鼾声段结束帧。

其中,该梅尔倒谱系数基准值是指鼾声的梅尔倒谱系数基准值。

在一种可能的实施方式中,可以计算第二当前帧的梅尔倒谱系数,并计算该梅尔倒谱系数与梅尔倒谱系数基准值的互相关系数,判断该互相关系数是否小于对应的阈值。如果该互相关系数小于对应的阈值,可以认为第二当前帧不属于鼾声,则将该第二当前帧作为鼾声段结束帧。

在另一种可能的实施方式中,可以计算鼾声段起始帧与第二当前帧之间每一帧的梅尔倒谱系数,并求取均值,作为鼾声段起始帧到第二当前帧的梅尔倒谱系数均值。计算该梅尔倒谱系数均值与梅尔倒谱系数基准值的互相关系数,并判断该互相关系数是否小于对应的阈值。如果该互相关系数小于对应的阈值,可以认为第二当前帧不属于鼾声,则将该第二当前帧作为鼾声段结束帧。与上一实施方式相比,鼾声段结束帧可以延迟一定帧数后确定,在此基础上,可以保证鼾声信号包含的鼾声的信息量较大。

如果上述互相关系数不小于对应的阈值,则继续对下一帧进行上述步骤203的处理。

或者,如果上述互相关系数不小于对应的阈值,则进一步判断鼾声段起始帧到第二当前帧的帧数是否大于鼾声帧数阈值。如果帧数大于鼾声帧数阈值,则可以将该第二当前帧作为鼾声段结束帧;如果帧数不大于鼾声帧数阈值,则继续对下一帧进行上述步骤203的处理。

可选的,上述梅尔倒谱系数基准值可以适应性地进行更新,本实施例提供了两种更新方式如下:

方式一:在确定出目标人声段的起始帧是鼾声段起始帧时,基于目标人声段之前的至少两个人声段中每个人声段的梅尔倒谱系数与目标人声段的起始帧的梅尔倒谱系数,更新上述梅尔倒谱系数基准值。

在一种可能的实施方式中,在确定出目标人声段的起始帧是鼾声段起始帧时,可以计算上述至少两个人声段中每帧的梅尔倒谱系数,并计算该起始帧(即鼾声段起始帧)的梅尔倒谱系数,求取均值后得到上述至少两个人声段和起始帧的梅尔倒谱系数均值。并将该梅尔倒谱系数均值作为本目标人声段所使用的梅尔倒谱系数基准值。

方式二:若在确定出目标人声段的起始帧不是鼾声段起始帧之后,确定出目标人声段的中间帧是鼾声段起始帧,则基于目标人声段的起始帧与鼾声段起始帧之间的梅尔倒谱系数均值,更新梅尔倒谱系数基准值。

在一种可能的实施方式中,在确定出目标人声段的中间帧是鼾声段起始帧时,可以计算目标人声段的起始帧到鼾声段起始帧中每帧的梅尔倒谱系数,求取均值后得到梅尔倒谱系数均值。进而,可以将梅尔倒谱系数基准值替换为该梅尔倒谱系数均值。

对于下一个目标人声段的鼾声段检测,若确定出鼾声段起始帧,则也可以基于上述处理,确定该目标人声段所使用的梅尔倒谱系数基准值,从而实现梅尔倒谱系数基准值的自适应更新。

由于不同目标人声段的鼾声信号可能具有不同的梅尔倒谱系数,通过上述更新处理,每个目标人声段所使用的梅尔倒谱系数基准值与该目标人声段的鼾声可以相适配,提高确定鼾声段结束帧的准确性,从而提高鼾声段检测的准确性。

步骤204,将鼾声段起始帧和鼾声段结束帧之间的声音信号作为鼾声信号。

在一种可能的实施方式中,可以对鼾声段起始帧和鼾声段结束帧进行记录。当需要对鼾声信号进行分析时,可以根据鼾声段起始帧和鼾声段结束帧,截取相应的鼾声信号。本实施例对鼾声信号的后续处理不作限定。

本实施例可以取得如下有益效果:

(1)实时采集声音信号后,可以实时地进行人声段检测,确定声音信号中的人声段,并在确定出至少两个人声段后,从目标人声段的起始帧开始,基于该至少两个人声段与目标人声段的起始帧的预设特性的相似性进行鼾声段检测。由于上述处理的计算量相较于高斯混合模型、隐马尔科夫模型、聚类模型、支持向量机等机器学习算法的计算量较小,可以在嵌入式系统上实现实时的鼾声段检测。

(2)在计算起始帧的相似性得分的过程中,采用能量相似性、频谱相似性、梅尔倒谱系数相似性、噪声相似性等多种预设特性的相似性,检测精度提高,抗噪性能较好。

(3)对梅尔倒谱系数基准值进行自适应调整,使得每个目标人声段所使用的梅尔倒谱系数基准值与该目标人声段的鼾声可以相适配,提高确定鼾声段结束帧的准确性,从而提高鼾声段检测的准确性。

下面将参照图4所示的一种确定鼾声信号的方法流程图,对本实施例提供的确定鼾声信号的方法进行介绍。本实施例中,主要采用鼾声特性来确定目标人声段的起始帧是否为鼾声段起始帧。

如图4所示,本实施例提供的确定鼾声信号的方法包括如下步骤401-404。

步骤401,获取声音信号,对声音信号进行人声段检测,并在目标人声段之前检测到至少两个人声段。

在一种可能的实施方式中,设备上可以设置有音频采集设备,该音频采集设备可以对声音信号进行实时采集。对采集到的声音信号进行信号分帧、预加重、去脉冲噪声、去均值等处理,进而对每帧声音信号进行人声段检测,在声音信号中确定人声段。

其中,确定人声段的具体方法可参照上述实施例中图3示出的人声段确定方法流程图,具体实施方式与上述实施例同理,本实施例不再赘述。

在确定人声段的结束帧后,可以继续对结束帧的下一帧执行上述步骤301-304的处理,确定声音信号中的各个人声段,并基于如下步骤402-404在人声段中进行鼾声段检测。

本实施例提供的确定鼾声信号的方法,在对目标人声段进行鼾声段检测之前,可以检测到至少两个人声段。因此,若在声音信号中还未检测到两个人声段,则检测到起始帧后,可以对结束帧进行检测;若在声音信号中已检测到至少两个人声段,则检测到起始帧后,进入下述步骤402,确定起始帧是否为鼾声段起始帧。

步骤402,若在声音信号中检测到目标人声段的起始帧,则基于至少两个人声段与目标人声段的起始帧的鼾声特性,确定目标人声段的起始帧是否为鼾声段起始帧。

在一种可能的实施方式中,当在声音信号中检测到两个人声段时,可以从第三个人声段开始,在人声段中进行鼾声段检测。可选的,为了保证鼾声段检测的准确性,目标人声段之前的至少两个人声段中,每个人声段的长度满足预设的长度条件(如处于鼾声长度范围内),且相邻的两个人声段之间的间隔时间大于预设的间隔时长。

本实施例中,将进行鼾声段检测的人声段称为目标人声段,下文同理。

鼾声具备一定的特性,因此,每当检测到目标人声段的起始帧时,可以判断目标人声段之前的至少两个人声段以及起始帧是否具备鼾声特性。如果具备鼾声特性,则采集到的声音属于鼾声的概率较高,可以将该起始帧作为鼾声段起始帧。

可选的,为了进一步提高判断起始帧是否为鼾声段起始帧的准确性,上述步骤402的处理可以如下:

基于至少两个人声段与目标人声段的起始帧的鼾声特性,计算起始帧的鼾声特性得分;

基于起始帧的鼾声特性得分,确定目标人声段的起始帧是否为鼾声段起始帧。

其中,上述鼾声特性可以包括以下任意一种或多种:鼾声能量特性,鼾声基频特性,鼾声过零率特性。

鼾声特性的原理如下:

鼾声具有低频能量高于中频能量的特性,因此,可以通过判断低频能量是否高于中频能量,从而判断是否属于鼾声。其中,低频可以是指50Hz到400Hz的频段,中频可以是指400Hz到4000Hz的频段,低频和中频的设置与鼾声相适配。

鼾声的基频处于一定的范围内,可以对预先采集的鼾声信号进行基频统计,确定鼾声基频范围。因此,可以通过鼾声基频范围,判断是否具备鼾声基频特性。

鼾声的过零率也处于一定的范围,可以对预先采集的鼾声信号进行帧过零率统计,确定鼾声过零率范围。因此,可以通过鼾声过零率范围,判断是否具备鼾声过零率特性。

下面将分别对上述各个鼾声特性的具体计算方法进行介绍。

对于鼾声能量特性,计算起始帧的鼾声特性得分的处理可以如下:

分别计算至少两个人声段中每个人声段的低频能量均值和中频能量均值,并计算每个人声段的低频能量均值与中频能量均值的第一比值,若第一比值均大于比值阈值,则在起始帧的鼾声特性得分中增加对应的第一鼾声特性分值;

计算起始帧的低频能量均值和中频能量均值,并计算起始帧的低频能量均值与中频能量均值的第二比值,若第二比值大于比值阈值,则在起始帧的鼾声特性得分中增加对应的第二鼾声特性分值。

作为一种示例,取目标人声段之前的两个人声段进行处理。对于每个人声段,可以将其中的每帧声音信号进行快速傅里叶变换(FFT,Fast Fourier Transform)的处理,得到傅里叶变换结果,并通过如下公式(2)计算频段能量均值:

其中,A_mean为频段能量均值,n1为下限频率对应的频点,n2为上限频率对应的频点,|f(n)|为傅里叶变换结果上第n个频谱值的绝对值。或者,上述|f(n)|也可以替换为傅里叶变换结果上第n个频谱值的绝对值的平方,即|f(n)|

当计算低频能量均值时,上述A_mean可以表示低频能量均值,n1为低频下限频率对应的频点(如50Hz),n2为低频上限频率对应的频点(如400Hz)。

当计算中频能量均值时,上述A_mean可以表示中频能量均值,n1为中频下限频率对应的频点(如400Hz),n2为中频上限频率对应的频点(如4000Hz)。

进而,可以计算每个人声段的低频能量均值与中频能量均值的比值,本实施例称为第一比值。若上述两个人声段的第一比值均大于比值阈值,表明两个人声段均具备鼾声能量特性,则可以对起始帧的鼾声特性得分加1分。

同理,可以计算起始帧的低频能量均值与中频能量均值的比值,本实施例称为第二比值。若起始帧的第二比值均大于比值阈值,表明起始帧具备鼾声能量特性,则可以对起始帧的鼾声特性得分加1分。

对于鼾声基频特性,计算起始帧的鼾声特性得分的处理可以如下:

分别计算至少两个人声段中每个人声段的基频,并计算每个人声段之间的基频差值,若每个人声段的基频在鼾声基频范围内,且基频差值在基频差值范围内,则在起始帧的鼾声特性得分中增加对应的第三鼾声特性分值;

计算起始帧的基频,若起始帧的基频在鼾声基频范围内,则在起始帧的鼾声特性得分中增加对应的第四鼾声特性分值。

作为一种示例,取目标人声段之前的两个人声段进行处理,计算每个人声段的平均频谱,并在平均频谱求取基频,作为该人声段的基频,进而计算两个人声段的基频差值。若每个人声段的基频均在鼾声基频范围内,表明两个人声段均具备鼾声基频特性;若基频差值在基频差值范围内,表明两个人声段的基频具有一定的连续性,符合鼾声的特征,则可以对起始帧的鼾声特性得分加1分。

若起始帧的基频在鼾声基频范围内,表明起始帧具备鼾声基频特性,则可以对起始帧的鼾声特性得分加1分。

对于鼾声过零率特性,计算起始帧的鼾声特性得分的处理可以如下:

分别计算至少两个人声段中每个人声段的平均过零率,若每个人声段的平均过零率在鼾声过零率范围内,则在起始帧的鼾声特性得分中增加对应的第五鼾声特性分值;

计算起始帧的过零率,若起始帧的过零率在鼾声过零率范围,则在起始帧的鼾声特性得分中增加对应的第六鼾声特性分值。

作为一种示例,取目标人声段之前的两个人声段进行处理。对于每个人声段,可以计算每帧信号的过零率,求取均值得到平均过零率。若每个人声段的平均过零率均在鼾声过零率范围内,表明两个人声段均具备鼾声过零率特性,则可以对起始帧的鼾声特性得分加1分。或者,其中计算平均过零率的过程还可以是,对于每个人声段,可以计算每帧信号的过零率,对每帧信号的过零率按照降序进行排序,取前设定数目帧(如10帧)的过零率求取均值,作为该人声段的平均过零率。

同理,对起始帧计算过零率。若起始帧的过零率在鼾声过零率范围内,表明起始帧具备鼾声过零率特性,则可以对起始帧的鼾声特性得分加1分。

在完成上述鼾声特性的计算后,可以对起始帧的鼾声特性得分进行判断,如果鼾声特性得分大于得分阈值,则可以将该起始帧作为鼾声段起始帧;如果鼾声特性得分不大于得分阈值,则可以认为该起始帧不是鼾声段起始帧。

需要说明的是,上述各个鼾声特性对应的分值可以进行调整,例如,若鼾声能量特性的准确性更高,则可以调高鼾声能量特性对应的分值,本实施例对此不作限定。

可选的,上述对鼾声能量特性的计算过程中所使用的低频能量均值和中频能量均值的比值阈值可以适应性地进行更新,本实施例提供了两种更新方式如下:

方式一:在确定出目标人声段的起始帧是鼾声段起始帧时,可以基于上述过程中确定的第一比值和第二比值,更新频谱条件中的比值阈值。

在一种可能的实施方式中,在确定出目标人声段的起始帧是鼾声段起始帧时,可以基于目标人声段之前的至少两个人声段的第一比值、目标人声段的第二比值以及待更新的比值阈值进行加权平均,将得到的加权平均值作为更新后的比值阈值,作为下一目标人声段所使用的比值阈值。

方式二:若在确定出目标人声段的起始帧不是鼾声段起始帧之后,确定出目标人声段的中间帧是鼾声段起始帧,则基于目标人声段的起始帧与鼾声段起始帧之间的频谱均值的低频能量均值和中频能量均值的均值比值,更新比值阈值。

在一种可能的实施方式中,在确定出目标人声段的中间帧是鼾声段起始帧时,可以将上述均值比值与待更新的比值阈值进行加权平均,将得到的加权平均值作为更新后的比值阈值,作为下一目标人声段所使用的比值阈值。

其中,从未经过更新的比值阈值可以设置为初始值。比值阈值还可以根据大量试验设置有上下限,使得比值阈值保持在合理范围内。

由于每个用户鼾声的低频和中频的能量比值各有不同,并且同一用户不同时刻的鼾声也可能不同,因此,通过上述处理,在确定出目标人声段的起始帧是鼾声段起始帧时,低频和中频的比值阈值可以自适应地进行调整,从而使得比值阈值与当前的鼾声相适配,提高确定鼾声段起始帧的准确性,从而提高鼾声段检测的准确性。

如果目标人声段的起始帧不是鼾声段起始帧,则此后可以采用两种处理方式:

第一种处理方式:逐帧检测目标人声段的结束帧,不再进行鼾声段检测;

第二种处理方式:在确定目标人声段的起始帧之后逐帧检测目标人声段的结束帧的过程中,确定中间帧是否为鼾声段起始帧。

上述两种处理方式种,逐帧检测目标人声段的结束帧的具体处理与上述步骤304同理,此处不再赘述。

对于第一种处理方式,若目标人声段的起始帧不是鼾声段起始帧,认为目标人声段不包含鼾声,则不在本目标人声段中继续进行鼾声段检测,再检测到下一人声段后,再对该人声段进行鼾声段检测。

为了提高鼾声段检测的准确性,还可以采用上述第二种处理方式,确定目标人声段的中间帧是否为鼾声段起始帧。具体的处理方式可以采用现有的鼾声段检测方法,本实施例对确定目标人声段的中间帧是否为鼾声段起始帧的具体方法不作限定。可选的,为了进一步提高鼾声段检测的准确性,本申请将在另一实施例中介绍一种确定目标人声段的中间帧是否为鼾声段起始帧的方法,本实施例在此不作赘述。

可选的,采用上述第二种处理方式的条件可以是在目标人声段之前检测到的人声段中,至少检测到一段鼾声信号。作为一种示例,假设在检测到的第三个人声段中未将起始帧确定为鼾声段起始帧,则不继续在第三个人声段中进行鼾声段检测;若在检测到的第四个人声段中将起始帧确定为鼾声段起始帧,则在第四个人声段中确定相应的鼾声信号,并将鼾声计数加1;在检测到第五个人声段时,若未将起始帧确定为鼾声段起始帧,则通过鼾声计数,可以进入上述第二种处理方式确定中间帧是否为鼾声段起始帧。采用此种可选方案的原因在于,在从未检测到鼾声信号时,人声段的中间帧为鼾声段起始帧的概率较小,为了降低计算资源的消耗,可以在检测到鼾声信号之后,再对中间帧进行鼾声段起始帧的判断。

为了便于介绍,本实施例中将检测鼾声段起始帧过程中所涉及的当前帧称为第一当前帧,将检测鼾声段结束帧过程中所涉及的当前帧称为第二当前帧。

步骤403,如果确定出鼾声段起始帧,则从鼾声段起始帧的下一帧起确定鼾声段结束帧。

具体的,步骤403的处理可以如下:

从鼾声段起始帧的下一帧起,对第二当前帧进行如下检测处理:

确定第二当前帧是否为目标人声段的结束帧;

如果第二当前帧是目标人声段的结束帧,则将第二当前帧作为鼾声段结束帧;

如果第二当前帧不是目标人声段的结束帧,则确定第二当前帧是否为鼾声段结束帧,若是,则将第二当前帧作为鼾声段结束帧;若否,则对第二当前帧的下一帧进行上述检测处理。

在一种可能的实施方式中,在确定鼾声段起始帧之后,可以对下一帧确定是否为结束帧,具体处理与上述步骤304同理,此处不再赘述。如果确定出结束帧,认为此时鼾声也结束,则可以将第二当前帧(即结束帧)作为鼾声段结束帧。

如果未将第二当前帧确定为结束帧,则确定第二当前帧是否为鼾声段结束帧。

可选的,可以基于梅尔倒谱系数基准值以及第二当前帧的梅尔倒谱系数,确定第二当前帧是否为鼾声段结束帧。

其中,该梅尔倒谱系数基准值是指鼾声的梅尔倒谱系数基准值。

在一种可能的实施方式中,可以计算第二当前帧的梅尔倒谱系数,并计算该梅尔倒谱系数与梅尔倒谱系数基准值的互相关系数,判断该互相关系数是否小于对应的阈值。如果该互相关系数小于对应的阈值,可以认为第二当前帧不属于鼾声,则将该第二当前帧作为鼾声段结束帧。

在另一种可能的实施方式中,可以计算鼾声段起始帧与第二当前帧之间每一帧的梅尔倒谱系数,并求取均值,作为鼾声段起始帧到第二当前帧的梅尔倒谱系数均值。计算该梅尔倒谱系数均值与梅尔倒谱系数基准值的互相关系数,并判断该互相关系数是否小于对应的阈值。如果该互相关系数小于对应的阈值,可以认为第二当前帧不属于鼾声,则将该第二当前帧作为鼾声段结束帧。与上一实施方式相比,鼾声段结束帧可以延迟一定帧数后确定,在此基础上,可以保证鼾声信号包含的鼾声的信息量较大。

如果上述互相关系数不小于对应的阈值,则继续对下一帧进行上述步骤403的处理。

或者,如果上述互相关系数不小于对应的阈值,则进一步判断鼾声段起始帧到第二当前帧的帧数是否大于鼾声帧数阈值。如果帧数大于鼾声帧数阈值,则可以将该第二当前帧作为鼾声段结束帧;如果帧数不大于鼾声帧数阈值,则继续对下一帧进行上述步骤403的处理。

可选的,上述梅尔倒谱系数基准值可以适应性地进行更新,本实施例提供了两种更新方式如下:

方式一:在确定出目标人声段的起始帧是鼾声段起始帧时,基于目标人声段之前的至少两个人声段中每个人声段的梅尔倒谱系数与目标人声段的起始帧的梅尔倒谱系数,更新上述梅尔倒谱系数基准值。

在一种可能的实施方式中,在确定出目标人声段的起始帧是鼾声段起始帧时,可以计算上述至少两个人声段中每帧的梅尔倒谱系数,并计算该起始帧(即鼾声段起始帧)的梅尔倒谱系数,求取均值后得到上述至少两个人声段和起始帧的梅尔倒谱系数均值。并将该梅尔倒谱系数均值作为本目标人声段所使用的梅尔倒谱系数基准值。

方式二:若在确定出目标人声段的起始帧不是鼾声段起始帧之后,确定出目标人声段的中间帧是鼾声段起始帧,则基于目标人声段的起始帧与鼾声段起始帧之间的梅尔倒谱系数均值,更新梅尔倒谱系数基准值。

在一种可能的实施方式中,在确定出目标人声段的中间帧是鼾声段起始帧时,可以计算目标人声段的起始帧到鼾声段起始帧中每帧的梅尔倒谱系数,求取均值后得到梅尔倒谱系数均值。进而,可以将梅尔倒谱系数基准值替换为该梅尔倒谱系数均值。

对于下一个目标人声段的鼾声段检测,若确定出鼾声段起始帧,则也可以基于上述处理,确定该目标人声段所使用的梅尔倒谱系数基准值,从而实现梅尔倒谱系数基准值的自适应更新。

由于不同目标人声段的鼾声信号可能具有不同的梅尔倒谱系数,通过上述更新处理,每个目标人声段所使用的梅尔倒谱系数基准值与该目标人声段的鼾声可以相适配,提高确定鼾声段结束帧的准确性,从而提高鼾声段检测的准确性。

步骤404,将鼾声段起始帧和鼾声段结束帧之间的声音信号作为鼾声信号。

在一种可能的实施方式中,可以对鼾声段起始帧和鼾声段结束帧进行记录。当需要对鼾声信号进行分析时,可以根据鼾声段起始帧和鼾声段结束帧,截取相应的鼾声信号。本实施例对鼾声信号的后续处理不作限定。

本实施例可以取得如下有益效果:

(1)实时采集声音信号后,可以实时地进行人声段检测,确定声音信号中的人声段,并在确定出至少两个人声段后,从目标人声段的起始帧开始,基于该至少两个人声段与目标人声段的起始帧的鼾声特性进行鼾声段检测。由于上述处理的计算量相较于高斯混合模型、隐马尔科夫模型、聚类模型、支持向量机等机器学习算法的计算量较小,可以在嵌入式系统上实现实时的鼾声段检测。

(2)在计算起始帧的鼾声特性得分的过程中,采用鼾声能量特性、鼾声基频特性、鼾声过零率特性等多种鼾声特性,检测精度提高,抗噪性能较好。

(3)对低频和中频的比值阈值进行自适应调整,从而使得比值阈值与当前的鼾声相适配,提高确定鼾声段起始帧的准确性。

(4)对梅尔倒谱系数基准值进行自适应调整,使得每个目标人声段所使用的梅尔倒谱系数基准值与该目标人声段的鼾声可以相适配,提高确定鼾声段结束帧的准确性。

下面将参照图5所示的一种确定鼾声信号的方法流程图,对本实施例提供的确定鼾声信号的方法进行介绍。本实施例中,同时采用预设特性的相似性和鼾声特性来确定目标人声段的起始帧是否为鼾声段起始帧。

如图5所示,本实施例提供的确定鼾声信号的方法包括如下步骤501-504。

步骤501,获取声音信号,并对声音信号进行人声段检测,并在目标人声段之前检测到至少两个人声段。

在一种可能的实施方式中,设备上可以设置有音频采集设备,该音频采集设备可以对声音信号进行实时采集。对采集到的声音信号进行信号分帧、预加重、去脉冲噪声、去均值等处理,进而对每帧声音信号进行人声段检测,在声音信号中确定人声段。

其中,确定人声段的具体方法可参照上述实施例中图3示出的人声段确定方法流程图,具体实施方式与上述实施例同理,本实施例不再赘述。

在确定人声段的结束帧后,可以继续对结束帧的下一帧执行上述步骤301-304的处理,确定声音信号中的各个人声段,并基于如下步骤502-504在人声段中进行鼾声段检测。

本实施例提供的确定鼾声信号的方法,在对目标人声段进行鼾声段检测之前,可以检测到至少两个人声段。因此,若在声音信号中还未检测到两个人声段,则检测到起始帧后,可以对结束帧进行检测;若在声音信号中已检测到至少两个人声段,则检测到起始帧后,进入下述步骤502,确定起始帧是否为鼾声段起始帧。

步骤502,若在声音信号中检测到目标人声段的起始帧,则基于至少两个人声段与目标人声段的起始帧的预设特性的相似性和鼾声特性,确定目标人声段的起始帧是否为鼾声段起始帧。

在一种可能的实施方式中,当在声音信号中检测到两个人声段时,可以从第三个人声段开始,在人声段中进行鼾声段检测。可选的,为了保证鼾声段检测的准确性,目标人声段之前的至少两个人声段中,每个人声段的长度满足预设的长度条件(如处于鼾声长度范围内),且相邻的两个人声段之间的间隔时间大于预设的间隔时长。

本实施例中,将进行鼾声段检测的人声段称为目标人声段,下文同理。

与说话而发出的人声相比,鼾声具备一定的重复性,因此,每当检测到目标人声段的起始帧时,可以判断目标人声段之前的至少两个人声段是否具备相似性。如果目标人声段之前的至少两个人声段具备相似性,则采集到的声音属于鼾声的概率较高。并且,可以判断目标人声段的起始帧与之前的至少两个人声段是否具备相似性。如果目标人声段的起始帧与之前的至少两个人声段具备相似性,表明该起始帧属于鼾声的概率也较高。

鼾声具备一定的特性,因此,每当检测到目标人声段的起始帧时,可以计算目标人声段之前的至少两个人声段以及起始帧的鼾声特性。如果具备鼾声特性,则采集到的声音属于鼾声的概率较高。

因此,可以采用预设特性的相似性和鼾声特性来判断目标人声段的起始帧是否为鼾声段起始帧,若具备相似性和鼾声特性,则可以将该起始帧作为鼾声段起始帧。

可选的,上述步骤502的处理可以如下:

基于至少两个人声段与目标人声段的起始帧的预设特性的相似性,计算起始帧的相似性得分;

基于至少两个人声段与目标人声段的起始帧的鼾声特性,计算起始帧的鼾声特性得分;

基于相似性得分和鼾声特性得分,确定目标人声段的起始帧是否为鼾声段起始帧。

其中,上述预设特性的相似性包括以下任意一种或多种:能量相似性,频谱相似性,梅尔倒谱系数相似性,噪声相似性。上述鼾声特性包括以下任意一种或多种:鼾声能量特性,鼾声基频特性,鼾声过零率特性。

在一种可能的实施方式中,如果至少两个人声段与目标人声段的起始帧具备上述相似性,则可以在起始帧的相似性得分中增加相应的分值;如果至少两个人声段与目标人声段的起始帧具备上述鼾声特性,则可以在起始帧的鼾声特性得分中增加相应的分值。

进而,可以判断相似性得分是否大于第一得分阈值,鼾声特性得分是否大于第二得分阈值。如果均大于,表明具备相似性和鼾声特性,则可以将该起始帧作为鼾声段起始帧。

或者,可以对相似性得分和鼾声特性得分进行加权平均,得到起始帧的鼾声得分,并判断鼾声得分是否大于第三得分阈值。如果大于,表明具备相似性和鼾声特性,则可以将该起始帧作为鼾声段起始帧。

下面将分别对相似性和鼾声特性进行介绍。

对于相似性:

可以判断目标人声段的起始帧与之前的至少两个人声段的能量是否具备相似性,如果具备能量相似性,该起始帧的相似性得分可以增加。

可以判断目标人声段的起始帧与之前的至少两个人声段的频谱是否具备相似性,如果具备频谱相似性,该起始帧的相似性得分可以增加。

可以判断目标人声段的起始帧与之前的至少两个人声段的梅尔倒谱系数是否具备相似性,如果具备梅尔倒谱系数相似性,该起始帧的相似性得分可以增加。

可以通过预设噪声的噪声特征,判断目标人声段的起始帧与之前的至少两个人声段是否符合噪声特征,如果符合,表明起始帧或人声段可能属于噪声,则该起始帧的相似性得分可以降低。

下面将分别对上述各个相似性的具体计算方法进行介绍。

对于能量相似性,计算起始帧的相似性得分的处理可以如下:分别计算至少两个人声段中每个人声段的能量均值,并计算每个人声段之间的能量均值的差值比例,若差值比例在预设比例范围内,则在起始帧的相似性得分中增加对应的第一相似性分值。作为一种示例,取目标人声段之前的两个人声段进行处理,对每个人声段中每帧的帧能量按降序排列,取前一定数目帧(如前10帧),计算帧能量的均值并作为该人声段的能量均值;计算两个人声段之间的能量均值差值,并计算该能量均值差值的差值比例(如将能量均值差值与任一个人声段的能量均值求取比例关系);若该差值比例在预设比例范围(如0~0.1)内,表明两个人声段之间的能量具备相似性,则可以对起始帧的相似性得分加1分。

对于频谱相似性,计算起始帧的相似性得分的处理可以如下:确定至少两个人声段的频谱中满足波峰位置重合条件的第一波峰个数,若第一波峰个数大于第一个数阈值,则在起始帧的相似性得分中增加对应的第二相似性分值。作为一种示例,取目标人声段之前的两个人声段进行处理,计算每个人声段的平均频谱,并在平均频谱中搜索最大的一定数目(如5个)的峰值,并记录峰值的相应位置;对两个人声段的峰值位置逐个比较,记录峰值位置相近(即上述波峰位置重合条件)的个数,若峰值位置相近的个数超过第一个数阈值,表明两个人声段之间的频谱具备相似性,则可以对起始帧的相似性得分加1分。

对于梅尔倒谱系数相似性,计算起始帧的相似性得分的处理可以如下:计算至少两个人声段和目标人声段的起始帧的梅尔倒谱系数,分别计算至少两个人声段和目标人声段的起始帧中任意两个梅尔倒谱系数之间的第一互相关系数,若第一互相关系数均大于第一预设阈值,则在起始帧的相似性得分中增加对应的第三相似性分值。作为一种示例,取目标人声段的起始帧和其之前的两个人声段进行处理,分别计算该起始帧和每个人声段的梅尔倒谱系数,其中,对于人声段,可以是计算其中每帧的梅尔倒谱系数,求取均值后得到梅尔倒谱系数均值,将梅尔倒谱系数均值作为该人声段的梅尔倒谱系数;计算两个人声段的梅尔倒谱系数之间的互相关系数,若该互相关系数大于第一预设阈值,表明这两个人声段具备梅尔倒谱系数相似性,则可以对起始帧的相似性得分加1分;计算起始帧和第一个人声段的梅尔倒谱系数之间的互相关系数,以及起始帧和第二个人声段的梅尔倒谱系数之间的互相关系数,若互相关系数均大于第一预设阈值,表明起始帧和这两个人声段均具备梅尔倒谱系数相似性,则可以对起始帧的相似性得分加1分。

对于噪声相似性,计算所述起始帧的相似性得分的处理可以如下:分别计算至少两个人声段和目标人声段的起始帧中任意一个梅尔倒谱系数与预设噪声的梅尔倒谱系数之间的第二互相关系数,若任意一个第二互相关系数大于第二预设阈值,则在起始帧的相似性得分中减去对应的第四相似性分值;若第二互相关系数均小于第三预设阈值,则在起始帧的相似性得分中增加对应的第五相似性分值。作为一种示例,取目标人声段的起始帧和其之前的两个人声段进行处理,分别计算该起始帧和每个人声段的梅尔倒谱系数,以及预设噪声的梅尔倒谱系数;计算预设噪声和第一个人声段的梅尔倒谱系数之间的互相关系数,以及预设噪声和第二个人声段的梅尔倒谱系数之间的互相关系数,若任一互相关系数大于第二预设阈值,表明任一人声段与预设噪声具备相似性,则可以对起始帧的相似性得分减1分,若互相关系数均小于第三预设阈值,表明这两个人声段与预设噪声均不具备相似性,则可以对起始帧的相似性得分加1分;计算预设噪声和起始帧的梅尔倒谱系数之间的互相关系数,若互相关系数大于第二预设阈值,表明起始帧与预设噪声具备相似性,则可以对起始帧的相似性得分减1分,若互相关系数小于第三预设阈值,表明起始帧与预设噪声不具备相似性,则可以对起始帧的相似性得分加1分。

可选的,对于频谱相似性,计算起始帧的相似性得分的处理可以进一步包括:若第一波峰个数大于预设个数阈值,则在起始帧的频谱中,确定与至少两个人声段相比满足波峰位置重合条件的第二波峰个数,若第二波峰个数大于第二个数阈值,则在起始帧的相似性得分中增加对应的第六相似性分值。作为一种示例,在上述计算频谱相似性的过程中,若在两个人声段中峰值位置相近的个数超过第一个数阈值,则可以继续在起始帧的频谱中搜索最大的一定数目的峰值,并记录峰值的相应位置;对起始帧与上述两个人声段的峰值位置逐个比较,记录峰值位置相近的个数,若峰值位置相近的个数超过第二个数阈值,表明起始帧与两个人声段的频谱具备相似性,则可以对起始帧的相似性得分加1分。

对于鼾声特性,原理如下:

鼾声具有低频能量高于中频能量的特性,因此,可以通过判断低频能量是否高于中频能量,从而判断是否属于鼾声。其中,低频可以是指50Hz到400Hz的频段,中频可以是指400Hz到4000Hz的频段,低频和中频的设置与鼾声相适配。

鼾声的基频处于一定的范围内,可以对预先采集的鼾声信号进行基频统计,确定鼾声基频范围。因此,可以通过鼾声基频范围,判断是否具备鼾声基频特性。

鼾声的过零率也处于一定的范围,可以对预先采集的鼾声信号进行帧过零率统计,确定鼾声过零率范围。因此,可以通过鼾声过零率范围,判断是否具备鼾声过零率特性。

下面将分别对上述各个鼾声特性的具体计算方法进行介绍。

对于鼾声能量特性,计算起始帧的鼾声特性得分的处理可以如下:

分别计算至少两个人声段中每个人声段的低频能量均值和中频能量均值,并计算每个人声段的低频能量均值与中频能量均值的第一比值,若第一比值均大于比值阈值,则在起始帧的鼾声特性得分中增加对应的第一鼾声特性分值;

计算起始帧的低频能量均值和中频能量均值,并计算起始帧的低频能量均值与中频能量均值的第二比值,若第二比值大于比值阈值,则在起始帧的鼾声特性得分中增加对应的第二鼾声特性分值。

作为一种示例,取目标人声段之前的两个人声段进行处理。对于每个人声段,可以将其中的每帧声音信号进行快速傅里叶变换(FFT,Fast Fourier Transform)的处理,得到傅里叶变换结果,并通过上述公式(2)计算频段能量均值。

进而,可以计算每个人声段的低频能量均值与中频能量均值的比值,本实施例称为第一比值。若上述两个人声段的第一比值均大于比值阈值,表明两个人声段均具备鼾声能量特性,则可以对起始帧的鼾声特性得分加1分。

同理,可以计算起始帧的低频能量均值与中频能量均值的比值,本实施例称为第二比值。若起始帧的第二比值均大于比值阈值,表明起始帧具备鼾声能量特性,则可以对起始帧的鼾声特性得分加1分。

对于鼾声基频特性,计算起始帧的鼾声特性得分的处理可以如下:

分别计算至少两个人声段中每个人声段的基频,并计算每个人声段之间的基频差值,若每个人声段的基频在鼾声基频范围内,且基频差值在基频差值范围内,则在起始帧的鼾声特性得分中增加对应的第三鼾声特性分值;

计算起始帧的基频,若起始帧的基频在鼾声基频范围内,则在起始帧的鼾声特性得分中增加对应的第四鼾声特性分值。

作为一种示例,取目标人声段之前的两个人声段进行处理,计算每个人声段的平均频谱,并在平均频谱求取基频,作为该人声段的基频,进而计算两个人声段的基频差值。若每个人声段的基频均在鼾声基频范围内,表明两个人声段均具备鼾声基频特性;若基频差值在基频差值范围内,表明两个人声段的基频具有一定的连续性,符合鼾声的特征,则可以对起始帧的鼾声特性得分加1分。

若起始帧的基频在鼾声基频范围内,表明起始帧具备鼾声基频特性,则可以对起始帧的鼾声特性得分加1分。

对于鼾声过零率特性,计算起始帧的鼾声特性得分的处理可以如下:

分别计算至少两个人声段中每个人声段的平均过零率,若每个人声段的平均过零率在鼾声过零率范围内,则在起始帧的鼾声特性得分中增加对应的第五鼾声特性分值;

计算起始帧的过零率,若起始帧的过零率在鼾声过零率范围,则在起始帧的鼾声特性得分中增加对应的第六鼾声特性分值。

作为一种示例,取目标人声段之前的两个人声段进行处理。对于每个人声段,可以计算每帧信号的过零率,求取均值得到平均过零率。若每个人声段的平均过零率均在鼾声过零率范围内,表明两个人声段均具备鼾声过零率特性,则可以对起始帧的鼾声特性得分加1分。或者,其中计算平均过零率的过程还可以是,对于每个人声段,可以计算每帧信号的过零率,对每帧信号的过零率按照降序进行排序,取前设定数目帧(如10帧)的过零率求取均值,作为该人声段的平均过零率。

同理,对起始帧计算过零率。若起始帧的过零率在鼾声过零率范围内,表明起始帧具备鼾声过零率特性,则可以对起始帧的鼾声特性得分加1分。

需要说明的是,上述各个分值可以进行调整,例如,若鼾声能量特性的准确性更高,则可以调高鼾声能量特性对应的分值,本实施例对此不作限定。

可选的,上述对鼾声能量特性的计算过程中所使用的低频能量均值和中频能量均值的比值阈值可以适应性地进行更新,本实施例提供了两种更新方式如下:

方式一:在确定出目标人声段的起始帧是鼾声段起始帧时,可以基于上述过程中确定的第一比值和第二比值,更新频谱条件中的比值阈值。

在一种可能的实施方式中,在确定出目标人声段的起始帧是鼾声段起始帧时,可以基于目标人声段之前的至少两个人声段的第一比值、目标人声段的第二比值以及待更新的比值阈值进行加权平均,将得到的加权平均值作为更新后的比值阈值,作为下一目标人声段所使用的比值阈值。

方式二:若在确定出目标人声段的起始帧不是鼾声段起始帧之后,确定出目标人声段的中间帧是鼾声段起始帧,则基于目标人声段的起始帧与鼾声段起始帧之间的频谱均值的低频能量均值和中频能量均值的均值比值,更新比值阈值。

在一种可能的实施方式中,在确定出目标人声段的中间帧是鼾声段起始帧时,可以将上述均值比值与待更新的比值阈值进行加权平均,将得到的加权平均值作为更新后的比值阈值,作为下一目标人声段所使用的比值阈值。

其中,从未经过更新的比值阈值可以设置为初始值。比值阈值还可以根据大量试验设置有上下限,使得比值阈值保持在合理范围内。

由于每个用户鼾声的低频和中频的能量比值各有不同,并且同一用户不同时刻的鼾声也可能不同,因此,通过上述处理,在确定出目标人声段的起始帧是鼾声段起始帧时,低频和中频的比值阈值可以自适应地进行调整,从而使得比值阈值与当前的鼾声相适配,提高确定鼾声段起始帧的准确性,从而提高鼾声段检测的准确性。

如果目标人声段的起始帧不是鼾声段起始帧,则此后可以采用两种处理方式:

第一种处理方式:逐帧检测目标人声段的结束帧,不再进行鼾声段检测;

第二种处理方式:在确定目标人声段的起始帧之后逐帧检测目标人声段的结束帧的过程中,确定中间帧是否为鼾声段起始帧。

上述两种处理方式种,逐帧检测目标人声段的结束帧的具体处理与上述步骤304同理,此处不再赘述。

对于第一种处理方式,若目标人声段的起始帧不是鼾声段起始帧,认为目标人声段不包含鼾声,则不在本目标人声段中继续进行鼾声段检测,再检测到下一人声段后,再对该人声段进行鼾声段检测。

为了提高鼾声段检测的准确性,还可以采用上述第二种处理方式,确定目标人声段的中间帧是否为鼾声段起始帧。具体的处理方式可以采用现有的鼾声段检测方法,本实施例对确定目标人声段的中间帧是否为鼾声段起始帧的具体方法不作限定。可选的,为了进一步提高鼾声段检测的准确性,本申请将在另一实施例中介绍一种确定目标人声段的中间帧是否为鼾声段起始帧的方法,本实施例在此不作赘述。

可选的,采用上述第二种处理方式的条件可以是在目标人声段之前检测到的人声段中,至少检测到一段鼾声信号。作为一种示例,假设在检测到的第三个人声段中未将起始帧确定为鼾声段起始帧,则不继续在第三个人声段中进行鼾声段检测;若在检测到的第四个人声段中将起始帧确定为鼾声段起始帧,则在第四个人声段中确定相应的鼾声信号,并将鼾声计数加1;在检测到第五个人声段时,若未将起始帧确定为鼾声段起始帧,则通过鼾声计数,可以进入上述第二种处理方式确定中间帧是否为鼾声段起始帧。采用此种可选方案的原因在于,在从未检测到鼾声信号时,人声段的中间帧为鼾声段起始帧的概率较小,为了降低计算资源的消耗,可以在检测到鼾声信号之后,再对中间帧进行鼾声段起始帧的判断。

为了便于介绍,本实施例中将检测鼾声段起始帧过程中所涉及的当前帧称为第一当前帧,将检测鼾声段结束帧过程中所涉及的当前帧称为第二当前帧。

步骤503,如果确定出鼾声段起始帧,则从鼾声段起始帧的下一帧起确定鼾声段结束帧。

具体的,步骤503的处理可以如下:

从鼾声段起始帧的下一帧起,对第二当前帧进行如下检测处理:

确定第二当前帧是否为目标人声段的结束帧;

如果第二当前帧是目标人声段的结束帧,则将第二当前帧作为鼾声段结束帧;

如果第二当前帧不是目标人声段的结束帧,则确定第二当前帧是否为鼾声段结束帧,若是,则将第二当前帧作为鼾声段结束帧;若否,则对第二当前帧的下一帧进行上述检测处理。

在一种可能的实施方式中,在确定鼾声段起始帧之后,可以对下一帧确定是否为结束帧,具体处理与上述步骤304同理,此处不再赘述。如果确定出结束帧,认为此时鼾声也结束,则可以将第二当前帧(即结束帧)作为鼾声段结束帧。

如果未将第二当前帧确定为结束帧,则确定第二当前帧是否为鼾声段结束帧。

可选的,可以基于梅尔倒谱系数基准值以及第二当前帧的梅尔倒谱系数,确定第二当前帧是否为鼾声段结束帧。

其中,该梅尔倒谱系数基准值是指鼾声的梅尔倒谱系数基准值。

在一种可能的实施方式中,可以计算第二当前帧的梅尔倒谱系数,并计算该梅尔倒谱系数与梅尔倒谱系数基准值的互相关系数,判断该互相关系数是否小于对应的阈值。如果该互相关系数小于对应的阈值,可以认为第二当前帧不属于鼾声,则将该第二当前帧作为鼾声段结束帧。

在另一种可能的实施方式中,可以计算鼾声段起始帧与第二当前帧之间每一帧的梅尔倒谱系数,并求取均值,作为鼾声段起始帧到第二当前帧的梅尔倒谱系数均值。计算该梅尔倒谱系数均值与梅尔倒谱系数基准值的互相关系数,并判断该互相关系数是否小于对应的阈值。如果该互相关系数小于对应的阈值,可以认为第二当前帧不属于鼾声,则将该第二当前帧作为鼾声段结束帧。与上一实施方式相比,鼾声段结束帧可以延迟一定帧数后确定,在此基础上,可以保证鼾声信号包含的鼾声的信息量较大。

如果上述互相关系数不小于对应的阈值,则继续对下一帧进行上述步骤503的处理。

或者,如果上述互相关系数不小于对应的阈值,则进一步判断鼾声段起始帧到第二当前帧的帧数是否大于鼾声帧数阈值。如果帧数大于鼾声帧数阈值,则可以将该第二当前帧作为鼾声段结束帧;如果帧数不大于鼾声帧数阈值,则继续对下一帧进行上述步骤503的处理。

可选的,上述梅尔倒谱系数基准值可以适应性地进行更新,本实施例提供了两种更新方式如下:

方式一:在确定出目标人声段的起始帧是鼾声段起始帧时,基于目标人声段之前的至少两个人声段中每个人声段的梅尔倒谱系数与目标人声段的起始帧的梅尔倒谱系数,更新上述梅尔倒谱系数基准值。

在一种可能的实施方式中,在确定出目标人声段的起始帧是鼾声段起始帧时,可以计算上述至少两个人声段中每帧的梅尔倒谱系数,并计算该起始帧(即鼾声段起始帧)的梅尔倒谱系数,求取均值后得到上述至少两个人声段和起始帧的梅尔倒谱系数均值。并将该梅尔倒谱系数均值作为本目标人声段所使用的梅尔倒谱系数基准值。

方式二:若在确定出目标人声段的起始帧不是鼾声段起始帧之后,确定出目标人声段的中间帧是鼾声段起始帧,则基于目标人声段的起始帧与鼾声段起始帧之间的梅尔倒谱系数均值,更新梅尔倒谱系数基准值。

在一种可能的实施方式中,在确定出目标人声段的中间帧是鼾声段起始帧时,可以计算目标人声段的起始帧到鼾声段起始帧中每帧的梅尔倒谱系数,求取均值后得到梅尔倒谱系数均值。进而,可以将梅尔倒谱系数基准值替换为该梅尔倒谱系数均值。

对于下一个目标人声段的鼾声段检测,若确定出鼾声段起始帧,则也可以基于上述处理,确定该目标人声段所使用的梅尔倒谱系数基准值,从而实现梅尔倒谱系数基准值的自适应更新。

由于不同目标人声段的鼾声信号可能具有不同的梅尔倒谱系数,通过上述更新处理,每个目标人声段所使用的梅尔倒谱系数基准值与该目标人声段的鼾声可以相适配,提高确定鼾声段结束帧的准确性,从而提高鼾声段检测的准确性。

步骤504,将鼾声段起始帧和鼾声段结束帧之间的声音信号作为鼾声信号。

在一种可能的实施方式中,可以对鼾声段起始帧和鼾声段结束帧进行记录。当需要对鼾声信号进行分析时,可以根据鼾声段起始帧和鼾声段结束帧,截取相应的鼾声信号。本实施例对鼾声信号的后续处理不作限定。

本实施例可以取得如下有益效果:

(1)实时采集声音信号后,可以实时地进行人声段检测,确定声音信号中的人声段,并在确定出至少两个人声段后,从目标人声段的起始帧开始,基于该至少两个人声段与目标人声段的起始帧的预设特性的相似性和鼾声特性进行鼾声段检测。由于上述处理的计算量相较于高斯混合模型、隐马尔科夫模型、聚类模型、支持向量机等机器学习算法的计算量较小,可以在嵌入式系统上实现实时的鼾声段检测。

(2)在计算起始帧的相似性得分的过程中,采用能量相似性、频谱相似性、梅尔倒谱系数相似性、噪声相似性等多种预设特性的相似性,在计算起始帧的鼾声特性得分的过程中,采用鼾声能量特性、鼾声基频特性、鼾声过零率特性等多种鼾声特性,检测精度提高,抗噪性能较好。

(3)对低频和中频的比值阈值进行自适应调整,从而使得比值阈值与当前的鼾声相适配,提高确定鼾声段起始帧的准确性。

(4)对梅尔倒谱系数基准值进行自适应调整,使得每个目标人声段所使用的梅尔倒谱系数基准值与该目标人声段的鼾声可以相适配,提高确定鼾声段结束帧的准确性。

下面将参照图6所示的一种确定鼾声信号的方法流程图,对本实施例提供的确定鼾声信号的方法进行介绍。本实施例中,主要涉及确定目标人声段的中间帧是否为鼾声段起始帧的方法。

如图6所示,本实施例提供的确定鼾声信号的方法包括如下步骤601-604。

步骤601,获取声音信号,对声音信号进行人声段检测,并在目标人声段之前检测到至少两个人声段。

在一种可能的实施方式中,设备上可以设置有音频采集设备,该音频采集设备可以对声音信号进行实时采集。对采集到的声音信号进行信号分帧、预加重、去脉冲噪声、去均值等处理,进而对每帧声音信号进行人声段检测,在声音信号中确定人声段。

其中,确定人声段的具体方法可参照上述实施例中图3示出的人声段确定方法流程图,具体实施方式与上述实施例同理,本实施例不再赘述。

在确定人声段的结束帧后,可以继续对结束帧的下一帧执行上述步骤301-304的处理,确定声音信号中的各个人声段,并基于如下步骤602-604在人声段中进行鼾声段检测。

本实施例提供的确定鼾声信号的方法,在对目标人声段进行鼾声段检测之前,可以检测到至少两个人声段。因此,若在声音信号中还未检测到两个人声段,则检测到起始帧后,可以对结束帧进行检测;若在声音信号中已检测到至少两个人声段,则检测到起始帧后,进入下述步骤602,确定起始帧是否为鼾声段起始帧。

步骤602,若在声音信号中检测到目标人声段的起始帧,且该起始帧不是鼾声段起始帧,则确定目标人声段的中间帧是否为鼾声段起始帧。

在一种可能的实施方式中,当在声音信号中检测到两个人声段时,可以从第三个人声段开始,在人声段中进行鼾声段检测鼾声段检测。可选的,为了保证鼾声段检测鼾声段检测的准确性,目标人声段之前的至少两个人声段中,每个人声段的长度满足预设的长度条件(如处于鼾声长度范围内),且相邻的两个人声段之间的间隔时间大于预设的间隔时长。

本实施例中,将进行鼾声段检测的人声段称为目标人声段,下文同理。

为了便于介绍,本实施例中将检测鼾声段起始帧过程中所涉及的当前帧称为第一当前帧,将检测鼾声段结束帧过程中所涉及的当前帧称为第二当前帧。

其中,第一当前帧包括两种情况,第一种情况是指:第一当前帧为目标人声段的起始帧;第二种情况是指:第一当前帧为目标人声段的起始帧之后的任一中间帧。

对于上述第一种情况,确定起始帧是否为鼾声段起始帧的具体处理,可以采用现有的鼾声段检测方法,本实施例对具体方法不作限定。或者,为了进一步提高鼾声段检测的准确性,可以采用上述任一实施例中介绍的确定目标人声段的起始帧是否为鼾声段起始帧的方法,本实施例在此不作赘述。

本实施例对上述第二种情况,即确定目标人声段的中间帧是否为鼾声段起始帧的方法,进行了改进。具体如下:

若在目标人声段中确定第一当前帧满足以下任意一种或多种鼾声起始条件,则确定第一当前帧为鼾声段起始帧,上述鼾声起始条件包括:鼾声时长条件,梅尔倒谱系数条件,非噪声条件,过零率条件,频谱条件,基频条件。

可选的,采用上述第二种情况的条件可以是在目标人声段之前检测到的人声段中,至少检测到一段鼾声信号。作为一种示例,假设在检测到的第三个人声段中未将起始帧确定为鼾声段起始帧,则不继续在第三个人声段中进行鼾声段检测;若在检测到的第四个人声段中将起始帧确定为鼾声段起始帧,则在第四个人声段中确定相应的鼾声信号,并将鼾声计数加1;在检测到第五个人声段时,若未将起始帧确定为鼾声段起始帧,则通过鼾声计数,可以进入上述第二种处理方式确定中间帧是否为鼾声段起始帧。采用此种可选方案的原因在于,在从未检测到鼾声信号时,人声段的中间帧为鼾声段起始帧的概率较小,为了降低计算资源的消耗,可以在检测到鼾声信号之后,再对中间帧进行鼾声段起始帧的判断。

参照图7示出的鼾声段起始帧确定方法流程图,步骤602的处理可以包括如下步骤701-703。

步骤701,判断第一当前帧是否为结束帧;

步骤702,如果第一当前帧不是结束帧,则判断该第一当前帧是否满足上述任意一种或多种鼾声起始条件;

步骤703,如果满足,则将该第一当前帧作为鼾声段起始帧;如果不满足,则对下一帧进行步骤701-703的处理。

在一种可能的实施方式中,如果检测出目标人声段的起始帧不是鼾声段起始帧,则经过一定帧数后,判断第一当前帧是否为目标人声段的结束帧,具体处理与上述步骤304相同,此处不再赘述。

如果检测出第一当前帧为结束帧,则对目标人声段的检测结束,对下一帧声音信号进行人声段检测,判断是否为起始帧。

如果检测出第一当前帧不是结束帧,则继续对该第一当前帧(此时即为目标人声段的中间帧)进行鼾声段检测,也即是判断该第一当前帧是否满足上述鼾声起始条件。如果满足,表明该第一当前帧属于鼾声的概率较大,则将该第一当前帧作为鼾声段起始帧;如果不满足,则对下一帧重复上述处理,判断是否为鼾声段起始帧。直至判断出鼾声段起始帧,或者判断出结束帧,则可以结束上述确定鼾声段起始帧的流程。

下面将分别对上述各个鼾声起始条件进行介绍。

确定第一当前帧满足鼾声时长条件是指:确定目标人声段的起始帧与第一当前帧之间的帧数在鼾声时长范围内,和/或,确定目标人声段的起始帧和前一人声段的结束帧之间的时长大于鼾声间隔时长。

确定第一当前帧满足梅尔倒谱系数条件是指:计算目标人声段的起始帧与第一当前帧之间的第一梅尔倒谱系数均值,计算第一梅尔倒谱系数均值与梅尔倒谱系数基准值的第一互相关系数,确定第一互相关系数大于第一预设阈值。其中,可以计算起始帧与第一当前帧之间每帧的梅尔倒谱系数,从而求取均值得到上述第一梅尔倒谱系数均值,并计算第一梅尔倒谱系数均值与梅尔倒谱系数基准值的第一互相关系数。梅尔倒谱系数基准值是指鼾声的梅尔倒谱系数基准值,如果第一互相关系数大于第一预设阈值,表明第一当前帧属于鼾声的概率较大。

确定第一当前帧满足非噪声条件是指:计算上述第一梅尔倒谱系数均值与预设噪声的梅尔倒谱系数的第二互相关系数,确定第二互相关系数小于第二预设阈值。如果第二互相关系数小于第二预设阈值,表明第一当前帧属于噪声的概率较小。

确定第一当前帧满足过零率条件是指:计算目标人声段的起始帧与第一当前帧之间的平均过零率,确定平均过零率在预设过零率范围内。其中,预设过零率范围可以是指对鼾声统计得到的过零率范围,如果起始帧到第一当前帧中每帧的平均过零率在预设过零率范围内,表明第一当前帧属于鼾声的概率较大。

确定第一当前帧满足频谱条件是指:计算目标人声段的起始帧与第一当前帧之间的频谱均值,在频谱均值上计算低频能量均值和中频能量均值,并计算低频能量均值和中频能量均值的均值比值,确定均值比值大于比值阈值。鼾声具有低频能量高于中频能量的特性,因此,如果低频能量均值和中频能量均值的均值比值大于比值阈值,表明第一当前帧属于鼾声的概率较大。

其中,低频可以是指50Hz到400Hz的频段,中频可以是指400Hz到4000Hz的频段,低频和中频的设置与鼾声相适配。

确定第一当前帧满足基频条件是指:在目标人声段的起始帧与第一当前帧之间的频谱均值上确定基频值,确定频谱均值的基频值在鼾声基频范围内。其中,鼾声基频范围可以基于对鼾声的基频统计得到。如果频谱均值的基频值在鼾声基频范围内,表明第一当前帧属于鼾声的概率较大。

可选的,上述梅尔倒谱系数基准值可以适应性地进行更新,本实施例提供了两种更新方式如下:

方式一:在确定出目标人声段的起始帧是鼾声段起始帧时,基于目标人声段之前的至少两个人声段中每个人声段的梅尔倒谱系数与目标人声段的起始帧的梅尔倒谱系数,更新上述梅尔倒谱系数基准值。

在一种可能的实施方式中,在确定出目标人声段的起始帧是鼾声段起始帧时,可以计算上述至少两个人声段中每帧的梅尔倒谱系数,并计算该起始帧(此时也是鼾声段起始帧)的梅尔倒谱系数,求取均值后得到上述至少两个人声段和起始帧的梅尔倒谱系数均值。并将该梅尔倒谱系数均值作为本目标人声段所使用的梅尔倒谱系数基准值。

方式二:在确定出目标人声段的中间帧是鼾声段起始帧时,基于目标人声段的起始帧与鼾声段起始帧之间的梅尔倒谱系数均值,更新梅尔倒谱系数基准值。

在一种可能的实施方式中,在确定出目标人声段的中间帧是鼾声段起始帧时,可以计算目标人声段的起始帧到鼾声段起始帧中每帧的梅尔倒谱系数,求取均值后得到梅尔倒谱系数均值。进而,可以将梅尔倒谱系数基准值替换为该梅尔倒谱系数均值。

对于下一个目标人声段的鼾声段检测,若确定出鼾声段起始帧,则也可以基于上述处理,确定该目标人声段所使用的梅尔倒谱系数基准值,从而实现梅尔倒谱系数基准值的自适应更新。

由于不同目标人声段的鼾声信号可能具有不同的梅尔倒谱系数,通过上述更新处理,每个目标人声段所使用的梅尔倒谱系数基准值与该目标人声段的鼾声可以相适配,提高确定鼾声段结束帧的准确性,从而提高鼾声段检测的准确性。

可选的,上述频谱条件中的比值阈值也可以适应性地进行更新,本实施例提供了两种更新方式如下:

方式一:在确定出目标人声段的起始帧是鼾声段起始帧时,分别计算目标人声段之前的至少两个人声段中每个人声段的低频能量均值和中频能量均值,并计算每个人声段的低频能量均值与中频能量均值的第一比值;计算起始帧的低频能量均值和中频能量均值,并计算起始帧的低频能量均值与中频能量均值的第二比值;基于第一比值和第二比值,更新频谱条件中的比值阈值。

在一种可能的实施方式中,在确定出目标人声段的起始帧是鼾声段起始帧时,可以基于目标人声段之前的至少两个人声段的第一比值、目标人声段的第二比值以及待更新的比值阈值进行加权平均,将得到的加权平均值作为更新后的比值阈值,作为下一目标人声段所使用的比值阈值。

若采用上述任一实施例提供的方法确定出该人声段的起始帧是鼾声段起始帧,则可以采用已计算得到的第一比值和第二比值更新频谱条件中的比值阈值,而不必须再次对上述第一比值和第二比值进行计算。

方式二:在确定出目标人声段的中间帧是鼾声段起始帧时,基于上述频谱均值的低频能量均值和中频能量均值的均值比值,更新比值阈值。

在一种可能的实施方式中,在确定出目标人声段的中间帧是鼾声段起始帧时,可以将上述均值比值与待更新的比值阈值进行加权平均,将得到的加权平均值作为更新后的比值阈值,作为下一目标人声段所使用的比值阈值。

其中,从未经过更新的比值阈值可以设置为初始值。比值阈值还可以根据大量试验设置有上下限,使得比值阈值保持在合理范围内。

由于每个用户鼾声的低频和中频的能量比值各有不同,并且同一用户不同时刻的鼾声也可能不同,因此,通过上述处理,在确定出目标人声段的起始帧是鼾声段起始帧时,低频和中频的比值阈值可以自适应地进行调整,从而使得比值阈值与当前的鼾声相适配,提高确定鼾声段起始帧的准确性,从而提高鼾声段检测的准确性。

步骤603,如果确定出鼾声段起始帧,则从鼾声段起始帧的下一帧起确定鼾声段结束帧。

具体的,步骤603的处理可以如下:

从鼾声段起始帧的下一帧起,对第二当前帧进行如下检测处理:

确定第二当前帧是否为目标人声段的结束帧;

如果第二当前帧是目标人声段的结束帧,则将第二当前帧作为鼾声段结束帧;

如果第二当前帧不是目标人声段的结束帧,则确定第二当前帧是否为鼾声段结束帧,若是,则将第二当前帧作为鼾声段结束帧;若否,则对第二当前帧的下一帧进行上述检测处理。

在一种可能的实施方式中,在确定鼾声段起始帧之后,可以对下一帧确定是否为结束帧,具体处理与上述步骤304同理,此处不再赘述。如果确定出结束帧,认为此时鼾声也结束,则可以将第二当前帧(即结束帧)作为鼾声段结束帧。

如果未将第二当前帧确定为结束帧,则确定第二当前帧是否为鼾声段结束帧。

可选的,可以基于梅尔倒谱系数基准值以及第二当前帧的梅尔倒谱系数,确定第二当前帧是否为鼾声段结束帧。

其中,该梅尔倒谱系数基准值可以与确定的鼾声段起始帧的过程中所使用的梅尔倒谱系数基准值相同。

在一种可能的实施方式中,可以计算第二当前帧的梅尔倒谱系数,并计算该梅尔倒谱系数与梅尔倒谱系数基准值的互相关系数,判断该互相关系数是否小于对应的阈值。如果该互相关系数小于对应的阈值,可以认为第二当前帧不属于鼾声,则将该第二当前帧作为鼾声段结束帧。

在另一种可能的实施方式中,可以计算鼾声段起始帧与第二当前帧之间每一帧的梅尔倒谱系数,并求取均值,作为鼾声段起始帧到第二当前帧的梅尔倒谱系数均值。计算该梅尔倒谱系数均值与梅尔倒谱系数基准值的互相关系数,并判断该互相关系数是否小于对应的阈值。如果该互相关系数小于对应的阈值,可以认为第二当前帧不属于鼾声,则将该第二当前帧作为鼾声段结束帧。与上一实施方式相比,鼾声段结束帧可以延迟一定帧数后确定,在此基础上,可以保证鼾声信号包含的鼾声的信息量较大。

如果上述互相关系数不小于对应的阈值,则继续对下一帧进行上述步骤603的处理。

或者,如果上述互相关系数不小于对应的阈值,则进一步判断鼾声段起始帧到第二当前帧的帧数是否大于鼾声帧数阈值。如果帧数大于鼾声帧数阈值,则可以将该第二当前帧作为鼾声段结束帧;如果帧数不大于鼾声帧数阈值,则继续对下一帧进行上述步骤603的处理。

步骤604,将鼾声段起始帧和鼾声段结束帧之间的声音信号作为鼾声信号。

在一种可能的实施方式中,可以对鼾声段起始帧和鼾声段结束帧进行记录。当需要对鼾声信号进行分析时,可以根据鼾声段起始帧和鼾声段结束帧,截取相应的鼾声信号。本实施例对鼾声信号的后续处理不作限定。

本实施例可以取得如下有益效果:

(1)实时采集声音信号后,可以实时地进行人声段检测,确定声音信号中的人声段,并在确定出至少两个人声段后,从目标人声段的起始帧开始,逐帧检测鼾声段起始帧和鼾声段结束帧。由于上述处理的计算量相较于高斯混合模型、隐马尔科夫模型、聚类模型、支持向量机等机器学习算法的计算量较小,可以在嵌入式系统上实现实时的鼾声段检测。

(2)在确定目标人声段的中间帧是否为鼾声段起始帧中,采用鼾声时长条件、梅尔倒谱系数条件、非噪声条件、过零率条件、频谱条件、基频条件等多种鼾声起始条件综合判断,检测精度提高,抗噪性能较好。

(3)对低频和中频的比值阈值进行自适应调整,从而使得比值阈值与当前的鼾声相适配,提高确定鼾声段起始帧的准确性。

(4)对梅尔倒谱系数基准值进行自适应调整,使得每个目标人声段所使用的梅尔倒谱系数基准值与该目标人声段的鼾声可以相适配,提高确定鼾声段起始帧和鼾声段结束帧的准确性。

本发明实施例还提供了一种确定鼾声信号的装置,该装置用于实现上述任一确定鼾声信号的方法。如图8所示的示意性框图,确定鼾声信号的装置800包括:获取模块801,第一确定模块802,第二确定模块803。

获取模块801,用于获取声音信号,并对所述声音信号进行人声段检测,并在目标人声段之前检测到至少两个人声段;

第一确定模块802,用于若在所述声音信号中检测到目标人声段的起始帧时,则在所述目标人声段中确定第一当前帧是否为鼾声段起始帧;

第二确定模块803,用于如果确定出鼾声段起始帧,则从所述鼾声段起始帧的下一帧起确定鼾声段结束帧;将所述鼾声段起始帧和所述鼾声段结束帧之间的声音信号作为鼾声信号。

可选的,当所述第一当前帧为所述目标人声段的起始帧时,所述第一确定模块802,用于:

在所述目标人声段中,基于所述至少两个人声段与所述目标人声段的起始帧的预设特性的相似性和/或鼾声特性,确定所述目标人声段的起始帧是否为鼾声段起始帧。

可选的,所述第一确定模块802,用于:

基于所述至少两个人声段与所述目标人声段的起始帧的预设特性的相似性,计算所述目标人声段的起始帧的相似性得分;基于所述目标人声段的起始帧的相似性得分,确定所述目标人声段的起始帧是否为鼾声段起始帧;或

基于所述至少两个人声段与所述目标人声段的起始帧的鼾声特性,计算所述目标人声段的起始帧的鼾声特性得分;基于所述目标人声段的起始帧的鼾声特性得分,确定所述目标人声段的起始帧是否为鼾声段起始帧。

可选的,所述第一确定模块802,用于:

基于所述至少两个人声段与所述目标人声段的起始帧的预设特性的相似性,计算所述目标人声段的起始帧的相似性得分;

基于所述至少两个人声段与所述目标人声段的起始帧的鼾声特性,计算所述目标人声段的起始帧的鼾声特性得分;

基于所述相似性得分和所述鼾声特性得分,确定所述目标人声段的起始帧是否为鼾声段起始帧。

可选的,所述预设特性的相似性包括以下任意一种或多种:能量相似性,频谱相似性,梅尔倒谱系数相似性,噪声相似性;

所述鼾声特性包括以下任意一种或多种:鼾声能量特性,鼾声基频特性,鼾声过零率特性。

可选的,所述第一确定模块802,用于:

对于能量相似性,分别计算所述至少两个人声段中每个人声段的能量均值,并计算每个人声段之间的能量均值的差值比例,若所述差值比例在预设比例范围内,则在所述目标人声段的起始帧的相似性得分中增加对应的第一相似性分值;

对于频谱相似性,确定所述至少两个人声段的频谱中满足波峰位置重合条件的第一波峰个数,若所述第一波峰个数大于第一个数阈值,则在所述目标人声段的起始帧的相似性得分中增加对应的第二相似性分值;

对于梅尔倒谱系数相似性,计算所述至少两个人声段中每个人声段的梅尔倒谱系数和所述目标人声段的起始帧的梅尔倒谱系数,分别计算所述至少两个人声段和所述目标人声段的起始帧中任意两个梅尔倒谱系数之间的第一互相关系数,若所述第一互相关系数均大于第一预设阈值,则在所述目标人声段的起始帧的相似性得分中增加对应的第三相似性分值;

对于噪声相似性,分别计算所述至少两个人声段和所述目标人声段的起始帧中任意一个梅尔倒谱系数与预设噪声的梅尔倒谱系数之间的第二互相关系数,若任意一个所述第二互相关系数大于第二预设阈值,则在所述目标人声段的起始帧的相似性得分中减去对应的第四相似性分值;若所述第二互相关系数均小于第三预设阈值,则在所述目标人声段的起始帧的相似性得分中增加对应的第五相似性分值。

可选的,所述第一确定模块802,进一步用于:

对于频谱相似性,若所述第一波峰个数大于预设个数阈值,则在所述目标人声段的起始帧的频谱中,确定与所述至少两个人声段相比满足波峰位置重合条件的第二波峰个数,若所述第二波峰个数大于第二个数阈值,则在所述目标人声段的起始帧的相似性得分中增加对应的第六相似性分值。

可选的,所述第一确定模块802,用于:

对于鼾声能量特性:

分别计算所述至少两个人声段中每个人声段的低频能量均值和中频能量均值,并计算每个人声段的低频能量均值与中频能量均值的第一比值,若所述第一比值均大于比值阈值,则在所述目标人声段的起始帧的鼾声特性得分中增加对应的第一鼾声特性分值;

计算所述目标人声段的起始帧的低频能量均值和中频能量均值,并计算所述目标人声段的起始帧的低频能量均值与中频能量均值的第二比值,若所述第二比值大于所述比值阈值,则在所述目标人声段的起始帧的鼾声特性得分中增加对应的第二鼾声特性分值;

对于鼾声基频特性:

分别计算所述至少两个人声段中每个人声段的基频,并计算每个人声段之间的基频差值,若每个人声段的基频在鼾声基频范围内,且所述基频差值在基频差值范围内,则在所述目标人声段的起始帧的鼾声特性得分中增加对应的第三鼾声特性分值;

计算所述目标人声段的起始帧的基频,若所述目标人声段的起始帧的基频在所述鼾声基频范围内,则在所述目标人声段的起始帧的鼾声特性得分中增加对应的第四鼾声特性分值;

对于鼾声过零率特性:

分别计算所述至少两个人声段中每个人声段的平均过零率,若每个人声段的平均过零率在鼾声过零率范围内,则在所述目标人声段的起始帧的鼾声特性得分中增加对应的第五鼾声特性分值;

计算所述目标人声段的起始帧的过零率,若所述目标人声段的起始帧的过零率在所述鼾声过零率范围,则在所述目标人声段的起始帧的鼾声特性得分中增加对应的第六鼾声特性分值。

可选的,所述装置还包括更新模块,所述更新模块用于:

在确定出所述目标人声段的起始帧是鼾声段起始帧时,基于所述第一比值和所述第二比值,更新所述比值阈值;和/或

若在确定出所述目标人声段的起始帧不是鼾声段起始帧之后,确定出所述目标人声段的中间帧是鼾声段起始帧,则基于所述目标人声段的起始帧与鼾声段起始帧之间的频谱均值的低频能量均值和中频能量均值的均值比值,更新所述比值阈值。

可选的,当所述第一当前帧为所述目标人声段的起始帧之后的任一中间帧时,所述第一确定模块802,用于:

若在所述目标人声段中确定所述目标人声段的中间帧满足以下任意一种或多种鼾声起始条件,则确定所述目标人声段的中间帧为鼾声段起始帧,所述鼾声起始条件包括:鼾声时长条件,梅尔倒谱系数条件,非噪声条件,过零率条件,频谱条件,基频条件。

可选的,确定所述目标人声段的中间帧满足鼾声时长条件是指:确定所述目标人声段的起始帧与所述中间帧之间的帧数在鼾声时长范围内,和/或,确定所述目标人声段的起始帧和前一人声段的结束帧之间的时长大于鼾声间隔时长;

确定所述目标人声段的中间帧满足梅尔倒谱系数条件是指:计算所述目标人声段的起始帧与所述目标人声段的中间帧之间的第一梅尔倒谱系数均值,计算所述第一梅尔倒谱系数均值与梅尔倒谱系数基准值的第一互相关系数,确定所述第一互相关系数大于第一预设阈值;

确定所述目标人声段的中间帧满足非噪声条件是指:计算所述第一梅尔倒谱系数均值与预设噪声的梅尔倒谱系数的第二互相关系数,确定所述第二互相关系数小于第二预设阈值;

确定所述目标人声段的中间帧满足过零率条件是指:计算所述目标人声段的起始帧与所述目标人声段的中间帧之间的平均过零率,确定所述平均过零率在预设过零率范围内;

确定所述目标人声段的中间帧满足频谱条件是指:计算所述目标人声段的起始帧与所述目标人声段的中间帧之间的频谱均值,在所述频谱均值上计算低频能量均值和中频能量均值,并计算所述低频能量均值和所述中频能量均值的均值比值,确定所述均值比值大于比值阈值;

确定所述目标人声段的中间帧满足基频条件是指:在所述频谱均值上确定基频值,确定所述频谱均值的基频值在鼾声基频范围内。

可选的,所述更新模块用于:

在确定出所述目标人声段的起始帧是鼾声段起始帧时,分别计算所述目标人声段之前的至少两个人声段中每个人声段的低频能量均值和中频能量均值,并计算每个人声段的低频能量均值与中频能量均值的第一比值;计算所述目标人声段的起始帧的低频能量均值和中频能量均值,并计算所述目标人声段的起始帧的低频能量均值与中频能量均值的第二比值;基于所述第一比值和所述第二比值,更新所述比值阈值;和/或

在确定出所述目标人声段的中间帧是鼾声段起始帧时,基于所述目标人声段的起始帧与鼾声段起始帧之间的频谱均值的低频能量均值和中频能量均值的均值比值,更新所述比值阈值。

可选的,所述至少两个人声段中至少检测到一段鼾声信号。

可选的,所述第二确定模块803,用于:

从所述鼾声段起始帧的下一帧起,对第二当前帧进行如下检测处理:

确定所述第二当前帧是否为所述目标人声段的结束帧;

如果所述第二当前帧是所述目标人声段的结束帧,则将所述第二当前帧作为鼾声段结束帧;

如果所述第二当前帧不是所述目标人声段的结束帧,则确定所述第二当前帧是否为鼾声段结束帧,若是,则将所述第二当前帧作为鼾声段结束帧;若否,则对所述第二当前帧的下一帧进行所述检测处理。

可选的,所述第二确定模块803,用于:

基于梅尔倒谱系数基准值和所述第二当前帧的梅尔倒谱系数,确定所述第二当前帧是否为鼾声段结束帧。

可选的,所述更新模块用于:

在确定出所述目标人声段的起始帧是鼾声段起始帧时,基于所述目标人声段之前的至少两个人声段中每个人声段的梅尔倒谱系数与所述目标人声段的起始帧的梅尔倒谱系数,更新所述梅尔倒谱系数基准值;和/或

在确定出所述目标人声段的中间帧是鼾声段起始帧时,基于所述目标人声段的起始帧与鼾声段起始帧之间的梅尔倒谱系数均值,更新所述梅尔倒谱系数基准值。

本发明实施例中,实时采集声音信号后,可以实时地进行人声段检测,确定声音信号中的人声段,并在确定出至少两个人声段后,从目标人声段的起始帧开始,逐帧检测鼾声段起始帧和鼾声段结束帧。由于上述处理的计算量相较于高斯混合模型、隐马尔科夫模型、聚类模型、支持向量机等机器学习算法的计算量较小,可以在嵌入式系统上实现实时的鼾声段检测。

本发明示例性实施例还提供一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器。所述存储器存储有能够被所述至少一个处理器执行的计算机程序,所述计算机程序在被所述至少一个处理器执行时用于使所述电子设备执行根据本发明实施例的方法。

本发明示例性实施例还提供一种存储有计算机程序的非瞬时计算机可读存储介质,其中,所述计算机程序在被计算机的处理器执行时用于使所述计算机执行根据本发明实施例的方法。

本发明示例性实施例还提供一种计算机程序产品,包括计算机程序,其中,所述计算机程序在被计算机的处理器执行时用于使所述计算机执行根据本发明实施例的方法。

参考图9,现将描述可以作为本发明的服务器或客户端的电子设备900的结构框图,其是可以应用于本发明的各方面的硬件设备的示例。电子设备旨在表示各种形式的数字电子的计算机设备,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。

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

电子设备900中的多个部件连接至I/O接口905,包括:输入单元906、输出单元907、存储单元908以及通信单元909。输入单元906可以是能向电子设备900输入信息的任何类型的设备,输入单元906可以接收输入的数字或字符信息,以及产生与电子设备的用户设置和/或功能控制有关的键信号输入。输出单元907可以是能呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。存储单元908可以包括但不限于磁盘、光盘。通信单元909允许电子设备900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信收发机和/或芯片组,例如蓝牙设备、WiFi设备、WiMax设备、蜂窝通信设备和/或类似物。

计算单元901可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元901的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元901执行上文所描述的各个方法和处理。例如,在一些实施例中,上述确定鼾声信号的方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元908。在一些实施例中,计算机程序的部分或者全部可以经由ROM 902和/或通信单元909而被载入和/或安装到电子设备900上。在一些实施例中,计算单元901可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行上述确定鼾声信号的方法。

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

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

如本发明使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。

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

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

计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。

技术分类

06120116338224