一种基于密度聚类的说话人数目自动检测方法与流程

文档序号:18731314发布日期:2019-09-21 00:34阅读:632来源:国知局
一种基于密度聚类的说话人数目自动检测方法与流程

本发明涉及语音信号处理领域,具体涉及到一种基于密度聚类的说话人数目自动检测方法。



背景技术:

语音盲分离(Blind Speech Separation,BSS)的任务是如何通过机器学习的方式,从麦克风接收到的多个声音混合信号中分离出每个说话者的声音,这在信号处理领域中是极具挑战性的课题。在实现语音完全分离之前,获取说话人声源数目参数是语音分离问题中的一个关键性环节。在现实情况下,计算机并不知道采集得到的混合语音中混合着多少个说话人,说话人数目估计错误则会导致语音分离效果的极大退化。

检测说话人数目信息是一种比较复杂的情况,主要受到室内混响效应以及背景噪声的干扰影响,导致很难获取室内混叠信道信息,给说话人数目检测带来很大的困难。特别是,在现实生活中接收的信号往往来源于高混响环境,导致更复杂的卷积混。为了解决这种卷积混叠环境中的说话人数目检测问题,目前比较流行的是基于WDO(Window-Disjoint Orthogonal)假设的时频域方法,即假定每个时频点只有一个语音源成分活跃,其余语音源成分处于静默状态,在该假设基础上设计说话人数目检测算法。例如,已提出了部分方法包括:基于模糊K-means的聚类方法(V.Reju,S.N.Koh,and I.Soon,Underdetermined convolutive blind source separation via time-frequency masking[J],IEEE Trans.Audio,Speech,Lang.Process.,18(1):101–116,2010.),DEMIX算法(S.Arberet,R.Gribonval,and F.Bimbot,A robust method to count and locate audio sources in a multichannel underdetermined mixture[J],IEEE Trans.Signal Process.,58(1):121–133,2010.),SABM算法(B.Laufer-Goldshtein,R.Talmon,and S.Gannot,Source counting and separation based on simplex analysis[J],IEEE Trans.Signal Process.,66(24):6458–6473,2018.)等等。但是,在高混响、高噪声环境下容易出现信号源相互串扰的问题,导致最终的说话人数目检测结果不理想。



技术实现要素:

针对上述现有技术中存在的问题,本发明的目的是提供一种基于密度聚类的说话人数自动检测方法,以实现说话人自动检测,提高说话人数目检测性能,获取更好的检测结果。

为了实现上述任务,本发明采用以下技术方案:

本发明具有以下技术特点:

一种基于密度聚类的说话人数目自动检测方法,包括以下步骤:

步骤1,从待检测场景中采集混叠语音信号,经过背景噪声降噪处理,得到多通道卷积混叠信号;

步骤2,对卷积混叠语音信号进行数学建模,得到卷积语音混叠模型的数学模型表达式;

步骤3,获取所述卷积语音混叠模型的混叠信号成分;

步骤4,利用混叠信号成分,计算局部二阶协方差矩阵,通过特征值分解提取出特征矩阵;

步骤5,逐频点对特征矩阵进行聚类,得到评分序列;

步骤6,寻找最大化评分序列间隙,计算聚类中心矩阵以及聚类中心数目;

步骤7,逐频点计算聚类中心的平均体积值得到平均体积向量,对体积向量进行排序,然后对聚类中心数目向量也进行排序,提取排名靠前且重复发生概率最大的聚类中心数目,将其作为最终的估计说话人数目。

进一步地,所述的获取所述卷积语音混叠模型的混叠信号成分,包括:

通过窗长度为F的短时傅里叶变换将步骤得到的数学模型x(t)转换到时频域得到混叠信号成分xf,d,(f=0,1,...,F-1,d=1,...,D),其中f表示频点,d表示帧,D为总帧数;根据短时傅里叶变换,将混叠信号成分xf,d展开为下列线性混叠模型:

xf,d=Hfsf,d+ef,d

其中,Hf是第f个频点上维度为M×N的复数混叠信道,sf,d为时频点(f,d)上的N维语音源成分复向量,ef,d是M维复高斯噪声。

进一步地,所述的利用混叠信号成分,计算局部二阶协方差矩阵,通过特征值分解提取出特征矩阵,包括:

根据混叠信号成分xf,d,计算出个局部二阶协方差矩阵:通过特征值分解提取出特征矩阵Yf,具体步骤为:

获取连续的P帧混叠信号成分xf,d,(f=0,1,...,F-1,d=q(P-1)+1,...,qP),构造第q个局部二阶协方差矩阵:

对局部二阶协方差矩阵进行特征值分解:

其中为特征向量矩阵,为特征值矩阵,提取出最大特征值所对应的特征向量逐块提取组成特征矩阵Yf=[yf,1,...,yf,Q]。

进一步地,所述的逐频点对特征矩阵进行聚类,得到评分序列,包括:

首先,计算特征矩阵Yf中的任意两个特征向量之间的欧式距离并组成相似度矩阵Φf=[φf,qk]q,k=1,...,Q,其中

其次,对每个特征向量yf,q计算两个聚类评价指标:(1)局部密度值ρf,q,(2)特征向量yf,q到所有更高局部密度值特征向量的最小距离值δf,q,即:

其中,为阈值;

最后,对每个特征向量的上述指标进行乘积得到评分值:γf,q=ρf,q×δf,q,并按从大至小次序组成评分值矩阵,即评分序列:

进一步地,所述的寻找最大化评分序列间隙,计算聚类中心矩阵以及聚类中心数目,包括:

首先,计算评分序列中相邻评分值的差分值:

其次,计算差分值的方差值:

最后,根据最大化相邻比值确定聚类中心数目:以及相应的聚类中心矩阵

进一步地,所述的步骤7具体包括:

首先,逐频点计算聚类中心的平均体积构成体积向量V=[V0,..Vf.,VF-1],f=0,1,...,F-1;重新排列平均体积向量V得到

根据排序结果对聚类中心数目构成的聚类中心向量N=[N0,..Nf.,NF-1],f=0,1,...,F-1进行相应的排序得到

其次,提取排名靠前的部分值标记为Fα=αF,统计向量中重复发生概率最大的聚类中心数目,将其作为说话人数目。

1.本方法引用密度聚类进行估计,并利用间隙判别法识别真实聚类中心,然后通过行列式计算聚类中心的平均体积用于评价聚类效果,最后在平均体积靠前的频谱区域中统计发生概率最大的聚类估计数目作为最终的说话人数目;通过系列实验验证本发明的说话人数目检测效果比其他算法更具有优势。

2.本发明基于多语音信号的局部主导假设,即任意一个信号源成分只需存在一个特定时频点,满足该源成分活跃而其他源成分保持静默状态,该假设放宽了WDO的苛刻假设,更符合实际情况。

附图说明

图1为纯净语音信号的示意图;

图2为混叠语音信号的示意图;

图3的(a)、(b)、(c)分别为在(M,N)=(2,3)、(M,N)=(3,3)、(M,N)=(3,4)时的说话人数检测频率直方图;

图4的(a)、(b)、(c)分别为在(M,N)=(2,3)、(M,N)=(3,3)、(M,N)=(3,4)时的正确估计说话人数目概率曲线图;

图5为本发明方法的流程示意图。

具体实施方式

本发明公开了一种基于密度聚类的说话人数目自动检测方法,包括以下步骤:

步骤1,从待检测场景中采集混叠语音信号,经过背景噪声降噪处理,得到多通道卷积混叠信号。

对于待检测的场景,通过ReSpeaker Mic Array v2.0设备采集混叠语音信号,再进行步骤2后续的处理过程。

为了便于后续的说明过程,本实施例中采用合成的方法得到语音混叠信号,具体方法为:将纯净语音信号与房间响应函数(J.Allenand and D.Berkley,Image method for efficiently simulating small-room acoustics[J],J.Acoust.Soc.Amer.,65(4),1979.)进行卷积混叠。

本实施例中,语音信号数据库包含男声、女声语音各8组,设计合成三种语音卷积混叠方案,其中麦克风数目M分别为2、3,语音信号数目N分别为2、3、4,标记为:(M,N)=(2,3),(M,N)=(3,3),(M,N)=(3,4)。另外,麦克风间距设置为0.05米,语音信号源的间距设置为0.4米,麦克风中心距离语音信号源中心距离设置为1.2米,混响时间RT60分别设置为:100ms,150ms,200ms,250ms。

步骤2,对卷积混叠语音信号进行数学建模,得到卷积语音混叠模型的数学模型表达式

假设有N个语音信号s(t)=[s1(t),...,sN(t)]T,被M个麦克风接收,产生观测混叠信号,即卷积语音混叠模型x(t)=[x1(t),...,xM(t)]T的数学模型表达式可表示为:

其中,H∈RM×N是具有L阶次的混叠通道矩阵,★是卷积符号,τ是时间延迟,高斯噪声为:e(t)=[e1(t),...,eM(t)]T

步骤3,获取所述卷积语音混叠模型的混叠信号成分

具体地,通过窗长度为F的短时傅里叶变换将步骤得到的数学模型x(t)转换到时频域得到混叠信号成分xf,d,(f=0,1,...,F-1,d=1,...,D),其中f表示频点,d表示帧,D为总帧数。

根据短时傅里叶变换,混叠信号成分xf,d可展开为下列线性混叠模型:

xf,d=Hfsf,d+ef,d

其中,Hf是第f个频点上维度为M×N的复数混叠信道,sf,d为时频点(f,d)上的N维语音源成分复向量,ef,d是M维复高斯噪声。

步骤4,利用混叠信号成分,计算局部二阶协方差矩阵,通过特征值分解提取出特征矩阵

根据步骤3得到的混叠信号成分xf,d,计算出个局部二阶协方差矩阵:通过特征值分解提取出特征矩阵Yf,具体步骤为:

获取连续的P帧混叠信号成分xf,d,(f=0,1,...,F-1,d=q(P-1)+1,...,qP),构造第q个局部二阶协方差矩阵,例如:

对局部二阶协方差矩阵进行特征值分解,例如:

其中为特征向量矩阵,为特征值矩阵,提取出最大特征值所对应的特征向量逐块提取组成特征矩阵Yf=[yf,1,...,yf,Q];本方案的目的是对特征矩阵进行处理,并估计出说话人的真实数目。

步骤5,逐频点对特征矩阵进行聚类,得到评分序列

首先,计算特征矩阵Yf中的任意两个特征向量之间的欧式距离并组成相似度矩阵Φf=[φf,qk]q,k=1,...,Q,其中

其次,对每个特征向量yf,q计算两个聚类评价指标:(1)局部密度值ρf,q,(2)特征向量yf,q到所有更高局部密度值特征向量的最小距离值δf,q,即:

其中,为阈值,一般选取为按从小到大对相似度矩阵Φf进行排序的6%-8%的元素值。

最后,对每个特征向量的上述指标进行乘积得到评分值:γf,q=ρf,q×δf,q,并按从大至小次序组成评分值矩阵,即评分序列:

步骤6,寻找最大化评分序列间隙,计算聚类中心矩阵以及聚类中心数目

首先,计算评分序列中相邻评分值的差分值如下:

其次,计算差分值的方差值如下:

最后,根据最大化相邻比值确定聚类中心数目:以及相应的聚类中心矩阵

步骤7,逐频点计算聚类中心的平均体积值得到平均体积向量,对体积向量按从大到小的次序排序,然后对聚类中心数目向量也进行相应的排序,提取排名靠前且重复发生概率最大的聚类中心数目,将其作为最终的估计说话人数目。

首先,逐频点计算聚类中心的平均体积构成体积向量V=[V0,..Vf.,VF-1],f=0,1,...,F-1;det表示行列式运算;重新排列平均体积向量V得到

根据排序结果对聚类中心数目构成的聚类中心向量N=[N0,..Nf.,NF-1],f=0,1,...,F-1进行相应的排序得到

其次,提取排名靠前的部分值标记为Fα=αF(如α选取0.2-0.5),统计向量中重复发生概率最大的聚类中心数目,将其作为说话人数目。

下面通过三个具体仿真实验来说明本发明方法的可行性与优越性。

所有实验是在MacBook Air,Intel Core i5,CPU 1.8GHz,macOS 10.13.6,Matlab R2018b编程环境下实现。首先,我们采用数据集“LibriSpeech ASR corpus”(https://www.openslr.org/12)。在该数据集中,我们各选取不同的男声、女声语音数据各8组,按照完全排列组合的方式分别构造测试数据集。语音源信号的波形如图1,混叠语音波形如下图2;通过步骤6统计最大发生概率的聚类中心数目如图3所示。考察选取频谱区域占比值对说话人检测精度影响的概率曲线如下图4所示。另外,我们将正确估计说话人数目检测精度作为性能比较,概率值越高说明检测性能越好。对比几种比较流行的算法,显然,本发明方法的性能更优越,如下表1所示。

表1说话人数目检测精度

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