一种鼾声信号识别方法与流程

文档序号:19422463发布日期:2019-12-14 01:42阅读:1524来源:国知局
一种鼾声信号识别方法与流程

本发明涉及鼾声信号处理技术领域,尤其涉及一种鼾声信号识别方法。



背景技术:

睡眠呼吸障碍是睡眠过程中出现的呼吸异常,包括睡眠呼吸暂停综合征、低通气综合征、慢性肺部及神经肌肉疾患引起的有关睡眠呼吸障碍等,其中以阻塞性睡眼呼吸暂停综合征在(osas)为主。

研究表明,osas会造成白天嗜睡,头昏,头疼,记忆力衰退,乏力,反应迟钝,睡眠行为异常等症状。长期患有osas可引起高血压、冠心病、心衰、中风等多种疾病。医学界对此疾病的研究十分重视,且已取得了重大成果。但是大多数仪器检测费用昂贵,不利于推广。现有的部分鼾声检测算法也存在着误差较大、处理速度较慢等缺点。



技术实现要素:

根据上述提出的技术问题,而提供一种鼾声信号识别方法。本发明采用的技术手段如下:

一种鼾声信号识别方法,包括如下步骤:

s1,采集预设睡眠时间段的音频信息,并提取其梅尔频率倒谱系数作为训练样本;

s2,将s1收集的训练样本利用k-means聚类算法将训练数据分为鼾声和非鼾声两类,然后根据聚类结果将非鼾声剔除,得到鼾声训练集;

s3,将s2得到的鼾声训练集用高斯混合模型进行训练得到识别模型;

s4,利用s3中的识别模型计算s2得到的训练集中每个鼾声的生成概率,将生成概率按升序排列,取其中靠前的预设百分比数据为该实验对象的鼾声生成概率门限;

s5,识别过程:音频采集设备采集到有声段,然后并提取该有声段的梅尔频率倒谱系数,再然后利用s3中的模型计算该有声段的生成概率,若概率大于s4中的鼾声生成概率门限,则该有声段为该实验对象的鼾声,否则该有声段就不是该实验对象的鼾声。

进一步地,所述步骤s1中,对采集到的音频信息进行分帧加窗处理,所述提取其梅尔频率倒谱系数具体包括如下步骤:

s11、对一帧鼾声信号s(n)加窗函数并进行快速傅里叶变换将其时域信息转换到频域:

s(n)=fft(s(n)×w(n));

s12、将经过傅里叶变换后的鼾声信号通过等mel尺度的三角滤波器组得到每个三角滤波器的输出能量,其对数形式表示为:

其中,m表示等mel尺度的三角滤波器组中的等mel尺度的三角滤波器数量,m是一个普通变量,其取值为0~m之间的整数;

s13、对e(m)进行离散余弦变换即可得到梅尔频率倒谱系数特征:

进一步地,所述步骤s3中,所述高斯模型具体表示为:

其中:

k为高斯分布函数的个数,d为数据的维数,πk为每个高斯分布函数在该模型中所占的权重,μk为第k个分布函数中数据的均值矢量,σk为第k个分布函数中数据的协方差矩阵;

鼾声信号的特征矢量序列x1,x2,x3,…xn服从高斯混合模型分布,那么该序列的联合分布概率为:

对p(x)取对数得:

直接对l(x)求导计算极值非常麻烦以及不利于计算机运算,因此将其转化为对l(x)的下界函数求导:

根据詹森不等式loge(x)≥e(logx)可得:

上式右边分别对πk、μk、∑k求偏导并令导函数为零可得参数重估函数:

其中:

γ(i,k)表示第i个数据由第k个高斯分布函数产生的概率,nk表示训练数据集中有nk个数据由第k个高斯分布函数产生,n表示训练数据集的总个数。

进一步地,还通过如下步骤对高斯混合模型进行训练,

s301、计算第i个数据由第k个高斯分布函数产生的概率γ(i,k):

s302、计算gmm参数的估计值:

s303、计算l(x)的值,若不收敛返回s301步骤,收敛则退出。

本发明具有以下优点:

1、通过对原始鼾声信号进行预处理操作,能够有效降低数据的处理量和增加鼾声与非鼾声信号的区分度。

2、通过改变高斯混合模型的高斯分布函数数目,很好地拟合不同的数据分布情况,为鼾声信号的识别提供了非常坚实的理论基础。

3、训练集不需要人手动筛选,而是通过程序自动进行筛选和识别,大大提高了算法的可执行性。

基于上述理由本发明可在鼾声信号处理技术领域广泛推广。

附图说明

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

图1为本发明鼾声信号识别流程图。

图2为本发明高斯混合模型数据结构图。

图3为本发明高斯混合模型(gmm)初始化流程框图。

图4为本发明gmm训练流程图。

图5为本发明具体鼾声识别流程图。

具体实施方式

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

如图1所示,本发明实施例公开了一种鼾声信号识别方法,包括如下步骤:

s1,采集预设睡眠时间段的音频信息,并提取其梅尔频率倒谱系数作为训练样本;

s2,将s1收集的训练样本利用k-means聚类算法将训练数据分为鼾声和非鼾声两类,根据聚类结果将非鼾声剔除,得到鼾声训练集;

s3,将s2得到的鼾声训练集用高斯混合模型进行训练得到识别模型;

s4,利用s3中的识别模型计算s2得到的训练集中每个鼾声的生成概率,将生成概率按升序排列,取其中靠前的预设百分比数据为该实验对象的鼾声生成概率门限;

s5,识别过程:音频采集设备采集到有声段,然后提取该有声段的梅尔频率倒谱系数,再然后利用s3中的模型计算该有声段的生成概率,若概率大于s4中的鼾声生成概率门限,则该有声段为该实验对象的鼾声,否则该有声段就不是该实验对象的鼾声。

在大于8000hz的采样率下,由于语音信号的短时平稳特性,所以在处理信号时帧长一般选择256个采样点甚至更短,而鼾声信号由于打鼾过程中信道基本保持不变,所以可以取更长比如512个采样点、1024个采样点、2048个采样点等等。这样一来就可以极大降低打鼾者识别时需要处理的数据量,使系统的实时性更好,特别是数据需要在网络中进行传输的时候这种优势更加明显。与语音信号一样,为了防止鼾声信号经分帧之后产生频谱泄漏,仍要对其进行加窗处理,原理和方法与语音信号相似,本实施例使用汉明窗(hamming)。

所述步骤s1中,对采集到的音频信息进行分帧加窗处理,所述提取其梅尔频率倒谱系数具体包括如下步骤:

s11、对一帧鼾声信号s(n)加窗函数并进行快速傅里叶变换,将其时域信息转换到频域:

s(n)=fft(s(n)×w(n))(1)

其中,

w(n)表示窗函数其中l表示窗长。

s12、将傅里叶变换后的鼾声信号通过等mel尺度的三角滤波器组以得到每个三角滤波器的输出能量,其对数形式表示为:

其中,m表示等mel尺度的三角滤波器组中的等mel尺度的三角滤波器数量,m是一个普通变量,其取值为0~m之间的整数;

s13、对e(m)进行离散余弦变换即可得到梅尔频率倒谱系数特征:

通过观察大量鼾声的频谱图发现,鼾声信号的能量主要集中在2000hz以下,因此采用较低阶的mfcc就能对鼾声信号的特性进行表征,这也是鼾声信号处理与语音信号处理的区别之一。以说话人识别为例,要想取得较好的识别率,一般取的mfcc特征阶数为16阶左右。而本实施例通过实验发现在进行打鼾者识别的时候12阶mfcc特征的效果是最好的。即,c(n)阶数为12时最优选值。

另外,如果仅用梅尔倒谱系数的情况下不能取得较好的性能,可考虑加上mfcc的一阶差分和二阶差分特征,一阶差分反映的是鼾声信号特征的帧间关系,二阶差分则反映的是一阶差分的帧间关系。如果遇到需要处理的信号帧间关联比较大的情况,此时将原始特征融入差分特征共同作为信号的总特征将会比单独使用原始特征取得更好的性能。

本实施例包含两个过程:一是gmm模型的训练,首先采集一定数量待监测对象的鼾声数据,然后提取出每个信号的mfcc特征制作成训练样本集并训练好模型;二是鼾声信号的识别,先从录制的连续音频中用端点检测的方法提取出有声段信号,然后再提取出该有声段的mfcc特征送到已训练好的gmm模型中进行识别,gmm模型输出识别结果。

具体地,设随机变量为x,则gmm模型可表示如下:

其中:

k为高斯分布函数的个数,d为数据的维数,πk为每个高斯分布函数在该模型中所占的权重,μk为第k个分布函数中数据的均值矢量,σk为第k个分布函数中数据的协方差矩阵;

鼾声信号的特征矢量序列x1,x2,x3,…xn服从高斯混合模型分布,那么该序列的联合分布概率为:

对p(x)取对数得:

直接对l(x)求导计算极值非常麻烦以及不利于计算机运算,因此将其转化为对l(x)的下界函数求导:

根据詹森不等式loge(x)≥e(logx)可得:

上式右边分别对πk、μk、∑k求偏导并令导函数为零可得参数重估函数:

其中:

γ(i,k)表示第i个数据由第k个高斯分布函数产生的概率,nk表示训练数据集中有nk个数据由第k个高斯分布函数产生,n表示训练数据集的总个数。

在训练数据足够的情况下,gmm模型理论上可以随机初始化,但往往训练过程非常复杂且耗时巨大,因此为了降低模型训练的次数,模型初始化的时候应尽可能的逼近真实值。考虑到gmm模型本质就是一个对数据的聚类过程,故可以用比较简单的聚类算法对gmm模型参数做初始估计,一种很好的选择就是k-means聚类算法。k-means聚类算法的执行流程为:

(1)从数据集中随机选择k个聚类中心;

(2)依次计算每个数据到聚类中心的距离,将该数据归到距离最小的一类;

(3)重新计算聚类中心,与前一次聚类中心比较,如收敛则退出,否则回到2。

由于经过k-means聚类后的数据计算得到的模型初始参数已经比较接近模型的真实值,因此模型训练次数大大减小。初始化后高斯混合模型的数据结构如图2、图3所示:

式9、10和11得到的μk,∑k,πk相当于θ1,其距离真实值θr仍有较大差距,故需要通过e-m算法对gmm进行训练,通过不断最大化下界函数从而不断逼近模型参数的真实值,其执行流程如下:

s301、计算第i个数据由第k个高斯分布函数产生的概率γ(i,k):

s302、计算gmm参数的估计值:

s303、计算l(x)的值,若不收敛返回s301步骤,收敛则退出。

训练流程图如图4所示。

经过前述工作,已经得到了监测对象鼾声数据的gmm,接下来就是要利用训练好的模型从多种声音中识别出监测对象的鼾声,为进一步的分析做准备。

当输入鼾声信号时,gmm输出的数据实质是该模型产生每一帧信号的概率。通常一个鼾声信号会被分成多个帧,那么该模型产生该鼾声的概率就是多个帧概率的乘积。但是,经过端点检测出来的音频信号长短不一,而帧长是确定的,因此每段音频被分成的帧数是不一样的,如果直接以一个音频段多个帧的联合分布概率作为判决标准的话,一些比较短但不是鼾声的音频就容易被误判为鼾声,而一些是鼾声但帧数比较多的音频反而会因为多次乘以小于一的数(gmm产生一帧数据的概率)而联合分布概率变得很小,从而导致误判。解决这一问题的一种方法是设置一个产生每帧音频数据的概率门限,一旦大于该门限就判定该帧属于某一鼾声数据的一部分,一旦一段音频中含有一定数量的该类数据帧,就可判定该音频为鼾声信号;另一种方法是计算一段音频中每帧数据由gmm产生的平均概率,这样就免除了音频长短不一时导致的干扰。经过测试发现第二种判决方式的效果要优于第一种判决方式,所以本设计采用第二种方式作为音频段是否是鼾声的判决依据,其流程图如图5所示:

本方法提供的鼾声信号识别方法,通过预处理和mfcc特征提取,降低了数据的处理量和增加鼾声和非鼾声信号的区分度。与直接使用原始鼾声数据相比,如果1024个数据分为一帧,那么需要处理的数据量就减小将近100倍,无论是实时性还是处理效率都大大提高,而且对处理设备的要求也大大降低。

高斯混合模型是一个概率模型,它表征了鼾声特征矢量的分布情况,并且灵活度比较高,通过改变其高斯分布函数数目就能很好地拟合不同的数据分布情况,为鼾声信号的识别提供了非常坚实的理论基础。

通过仿真试验,探究了mfcc特征阶数、鼾声信号分帧长度、高斯混合模型的高斯分布函数个数共三个条件对鼾声信号识别率的影响。经过大量数据的测试和对结果的分析得到了在指定测试集下进行打鼾者识别时鼾声信号处理的最佳条件:mfcc阶数为12,鼾声信号的分帧长度为1024个采样点(采样频率8000hz),高斯混合模型的高斯分布函数个数为3时已经能够得到较高的识别率(>0.95)。另外,本算法的训练集不需要人手动筛选,而是通过程序自动进行筛选和识别,大大提高了算法的可执行性。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

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