本发明涉及语音分离技术领域,具体涉及一种基于nmf算法的单传声器语音分离方法。
背景技术:
在很多应用场景中(如自动语音识别,语音通信),语音信号不可避免地受到周围干扰的影响,而在各类干扰中,非目标说话人产生的干扰由于其和目标语音有相似的频谱结构,使其更加难以去除,因此需要对这类干扰噪声专门设计算法进行处理。而且很多听力设备(或仪器)通常只有一个传声器来拾取语音信号,算法需要从一个混合语音中分离出两个说话人语音信号,这是一个欠定问题,进一步增加了问题的解决难度。
近年来,多种算法已经被提出来解决单传声器语音分离问题,如基于因子隐markov模型(factorialhiddenmarkovmodel,fhmm)的分离算法,基于非负矩阵分解(non-negativematrixfactorization,nmf)的语音分离算法以及基于计算听觉场景分析(computationalauditorysceneanalysis,casa)的分离算法。在这些算法中,基于nmf算法由于分离效果显著,而且运算简单而得到了广泛关注。具体而言,首先针对两个说话人训练数据通过非负矩阵分解得到对应的字典,然后再将这两个说话人混合测试语音分解为字典矩阵和权重矩阵的乘积,最后将每个说话人字典和其对应的权重矩阵相乘重构出分离后的语音信号。然而,这种方法也存在一些问题,如该算法假设语音信号的相邻帧之间是相互独立的,不能对语音信号的时间连续性建模,而且该算法对每个说话人都采用一个较大字典建模,导致一个说话人的字典可能描述出另一个说话人的语音信号,从而难以进行语音分离。
技术实现要素:
本发明的目的在于,为了克服传统的基于nmf分离算法无法对语音信号时间连续性建模的限制,提出了一种新的基于nmf算法和因子条件随机场(factorialconditionalrandomfield,fcrf)的单传声器语音分离方法,该方法能够同时对语音信号的谱结构信息和时间连续性信息建模,提高了语音分离效果。
为实现上述目的,本发明提供的一种基于nmf算法的单传声器语音分离方法,该方法具体包括:
步骤1)针对两个说话人单独采集各自对应的语音信号;
步骤2)对步骤1)中采集到的语音信号进行预处理,然后提取语音信号的幅度谱;
步骤3)对每个说话人对应的语音信号幅度谱进行k均值聚类和非负矩阵分解,得到两个说话人对应的字典矩阵和状态序列;;
步骤4)通过步骤3)中得到的两个说话人对应的字典矩阵和状态序列训练fcrf模型;
步骤5)对两个说话人的混合语音信号进行特征提取,然后将提取的特征送入经过训练的fcrf模型中进行解码,得到两个说话人状态的后验概率;
步骤6)利用步骤5)中得到的后验概率和步骤3)中得到的字典矩阵重构两个说话人的语音信号。
作为上述技术方案的进一步改进,所述步骤2)具体包括:
步骤201)对每一帧语音信号补零到n点,m=2i,i为整数,且i≥8;
步骤202)对每一帧的语音信号进行加窗或预加重处理;
步骤203)将步骤202)处理后的语音信号通过快速傅里叶变换算法提取语音信号的幅度谱。
作为上述技术方案的进一步改进,所述步骤3)具体包括:
步骤301)对每个说话人对应的语音信号幅度谱进行k均值聚类,将谱结构相似的语音帧聚成一类,然后对聚类后每一类的幅度谱进行非负矩阵分解,获得各类对应的字典矩阵,非负矩阵分解公式表示为:
其中,
步骤302)将所有不同类别的字典矩阵组合成一个完备的语音字典集,所述的语音字典集表示为:
其中,训练语音幅度谱每一帧对应的类的标记组成状态序列。
作为上述技术方案的进一步改进,所述步骤4)具体包括:
步骤401)对两个说话人的混合语音信号进行两种特征提取,第一种特征为两个说话人混合语音信号的幅度谱,第二种特征为将混合语音信号的幅度谱进行非负矩阵分解之后的权重矩阵;
步骤402)将步骤401)中提取得到的两种特征输入到fcrf模型中,令fcrf模型的输出为步骤3)中得到的两个说话人对应的状态序列,在确定fcrf模型输入和输出之后,采用l-bfgs算法估计得到fcrf模型参数。
作为上述技术方案的进一步改进,所述步骤5)具体包括:
步骤501)对两个说话人的混合语音信号进行两种特征提取,第一种特征为两个说话人混合语音信号的幅度谱,第二种特征为混合语音信号的幅度谱经过非负矩阵分解之后的权重矩阵;
步骤502)将步骤501)中提取的两种特征送入经过步骤4)训练后的fcrf模型中,通过lbp算法进行解码,得到每一帧混合语音信号对应的两个说话人状态的联合后验概率p(y1,t,y2,t|x)。
作为上述技术方案的进一步改进,所述步骤6)具体包括:
步骤601)利用步骤5)中得到的后验概率和步骤3)中得到的两个说话人对应的字典矩阵,重构两个说话人的语音信号:
其中,
步骤602)通过维纳滤波的形式获得最终分离后的两个说话人的语音幅度谱:
其中,
步骤603)利用步骤602)中分离得到的两个说话人的语音幅度谱
本发明的一种基于nmf算法的单传声器语音分离方法优点在于:
本发明的方法能够同时对语音信号的谱结构信息和时间连续性信息建模,提高了分离效果;通过采用因子条件随机场对时间连续性建模,能够利用更多的观测信息,使语音分离效果更好;针对不同帧混合语音,相比于传统的算法采用了较大的字典矩阵而言,由于本发明的算法采用了不同的较小的字典矩阵来描述各帧语音幅度谱,使得一个说话人的字典不太可能描述出另一个说话人的语音信息,提高了算法的鲁棒性。
附图说明
图1为本发明提出的一种基于nmf算法的单传声器语音分离方法流程图。
图2a是本发明实施例中的单传声器语音分离方法的模型训练操作流程图。
图2b是本发明实施例中的单传声器语音分离方法的语音信号分离操作流程图。
具体实施方式
下面结合附图和实施例对本发明所述的一种基于nmf算法的单传声器语音分离方法进行详细说明。
如图1所示,本发明提供的一种基于nmf算法的单传声器语音分离方法,该方法包括:
步骤1)针对两个说话人单独采集各自对应的语音信号;
步骤2)对步骤1)中采集到的语音信号进行预处理,然后提取语音信号的幅度谱;
步骤3)对每个说话人对应的语音信号幅度谱进行k均值聚类和非负矩阵分解,得到两个说话人对应的字典矩阵和状态序列,用来描述对应说话人的频谱结构和时间连续性;
步骤4)通过步骤3)中得到的两个说话人对应的字典矩阵和状态序列训练fcrf模型,用来对两个说话人混合语音信号的时间卷积特性建模;
步骤5)对两个说话人的混合语音信号进行特征提取,然后将提取的特征送入经过训练的fcrf模型中进行解码,得到两个说话人状态的后验概率;
步骤6)利用步骤5)中得到的后验概率和步骤3)中得到的字典矩阵重构两个说话人的语音信号。
实施例一
基于上述单传声器语音分离方法,在本实施例中,该方法包括模型训练和语音信号分离两部分操作,参考图2a所示,本发明的模型训练部分具体包括以下步骤:
步骤101)对两个说话人分别单独采集大量的纯净语音信号作为模型的训练数据。
步骤102)对步骤101)中采集到的语音信号进行预处理,然后通过快速傅里叶变换(fft)提取语音信号的频谱,所述的频谱信息中包含幅度谱。
对语音信号进行预处理的过程包括:对每一帧语音信号先补零到n点,n=2i,i为整数,且i≥8;然后,对每一帧的语音信号进行加窗或预加重处理,加窗函数可采用汉明窗(hamming)或哈宁窗(hanning)。
步骤103)对上述每个说话人训练数据的幅度谱通过聚类和分解得到两个说话人对应的字典矩阵和状态序列,具体操作过程为:
首先,对每个说话人对应的训练数据幅度谱进行k均值聚类,将谱结构类似的语音帧聚成一类,然后对聚类后每一类的幅度谱进行如下非负矩阵分解,获得各类对应的字典矩阵:
其中,
然后,将所有不同类别的语音字典矩阵组合成一个完备的语音字典集,用于描述该说话人的频谱结构,所述的语音字典集表示为:
在聚类完成之后,每一帧语音信号都对应一个标记来确定其聚类类别,那么所有帧数据会对应一个标记序列来确定每帧语音信号的类别信息,该标记序列即为状态序列,用于描述语音信号的时间连续性。
这样通过上述信号处理方法,就可以针对每个说话人的训练数据得到很多较小的字典矩阵
步骤104)通过步骤103)提取的两个说话人对应的字典矩阵和状态序列训练fcrf模型,具体操作过程为:
首先,对两个说话人的混合训练语音信号提取特征,用于训练fcrf模型。在训练fcrf模型时,主要提取两种特征作为模型的输入,第一种特征为两个说话人混合语音信号的幅度谱,第二种特征为将混合语音信号幅度谱进行非负矩阵分解之后的权重矩阵,在分解时运用的字典矩阵通过将每个说话人所有的小字典矩阵组合得到;
然后,将提取得到的两种特征输入到fcrf模型中,令fcrf模型的输出为步骤103)中得到的两个说话人对应的状态序列。在确定fcrf模型输入和输出之后,再采用limited-memorybroyden-fletcher-goldfarb-shanno(l-bfgs)算法估计得到fcrf模型参数。
参考图2b所示,本发明的语音信号分离部分具体包括以下步骤:
步骤105)首先对两个说话人的混合语音信号提取特征,提取操作和步骤104)类似,即提取第一种特征为两个说话人混合语音信号的幅度谱,提取第二种特征为混合语音信号的幅度谱经过非负矩阵分解之后的权重矩阵;
步骤106)将步骤105)中提取的两种特征送入步骤104)已经训练好的fcrf模型中,通过theloopybelief(lbp)算法进行解码,得到每一帧混合语音信号对应的两个说话人状态的联合后验概率p(y1,t,y2,t|x),y1,t,y2,t表示两个说话人对应的状态标记;
步骤107)利用步骤106)中得到的联合后验概率和步骤103)中得到的字典矩阵重构两个说话人的语音信号:
其中,
在得到
其中,
最后,利用步骤602)中分离得到的两个说话人的语音幅度谱
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。