不确定信号源个数的语音分离

时间:2022-03-21 12:23:13

不确定信号源个数的语音分离

摘 要:介绍了两种语音分离的算法――独立成分分析(ICA)方法和稀疏混合模型方法。在信号源个数小于或等于观察信号个数的情况下,使用独立成分分析方法;在信号源个数大于观察信号个数的情况下,使用稀疏混合模型方法。在各种情况下,进行了大量实验,结果表明,在信号源个数不确定的情况下能较好地分离出原始的语音信号。

关键词:独立成分分析;稀疏分解;语音分离;盲信号分离

中图分类号:TN912.3 文献标识码:B

文章编号:1004373X(2008)0312503

Speech Signal Separation for the Undetermined Number of Source Signals

DONG Youli,XIE Qinlan

(Department of Electronics and Information Engineering,South Central University for Nationalities,Wuhan,430074,China)

Abstract:The paper introduces two methods of speech signal separation:Independent Component Analysis (ICA) and sparse mixture model.In the case of the number of source signals is not more than that of the observed signals,we use the first method,while we use the second one.The experiments further prove that the rules can well separated the original speech signals under the case of the number of unknown source signals.

Keywords:independent component analysis;sparse decompose;speech signal separation;blind source separation

1 引 言

语音分离是为了解决类似鸡尾酒会问题,如在嘈杂的或多个人同时说话的环境中,将每个人单独的语音信息分离出来。这个问题涉及到同时说话的人的个数,以及记录的混合语音信号的个数。在实际环境中,有时无法知道有多少个人在同时讲话,也就是独立信号源的个数不确定。本文就是针对在独立信号源的个数不确定的情况下的语音分离的研究。

对于不确定信号源,首先需要确定信号源个数与混合信号个数的关系,进而确定信号源的个数,然后才能针对各个情况采取不同的算法。方法为:首先对N个混合信号X求秩,记为M。如果M

确定信号源个数以后,根据不同情况使用相应的分离算法。在信号源个数小于或等于观察信号个数时,使用独立成分分析方法;在信号源个数大于观察信号个数时,使用稀疏混合模型方法。

2 独立成分分析

独立成分分析(Independent Component Analysis,ICA)问题可简单描述为:假定从N个通道获得N个观测信号Xi,i=1,2,…,N,每个观测信号是M个独立源信号Si,i=1,2,…,M的线性混合,即X=A•S。其中,X=[x1,x2,…,xN]T和S=[s1,s2,…,sM]T是观测信号矢量和源信号矢量;A是M×N 的未知混合矩阵。并且要满足两个假设条件[1]:

(1) 各源信号Si之间是统计独立的;

(2) 独立成分是服从非高斯分布的。

问题就是在独立源S和混合矩阵A都是未知的情况下,从观测到的混合信号中估计出独立源信号。

2.1 负熵判据

在ICA中,寻找独立和非高斯的独立成分,常用的判据有:负熵判据、信息极大化判据、极大似然判据等。其中,负熵判据具有不需要计算信号的高阶累积量且计算量小的优势,即使独立成分的先验信息不对,负熵判据也很少给出完全错误的结果,因此具有很好的稳健性。

将密度为py(η)的随机向量y的熵H定义为:

采用负熵来检测混合信号的非高斯性,负熵J定义如下:

其中ygauss是与y有相同相关(协方差)矩阵的高斯随机向量。具有相同方差的随机变量中,高斯分布的随机变量具有最大的信息熵,即非高斯性越强,信息熵越小。为了方便计算,Hyvarinen给出了负熵的一种近似表达式[2―4]:

其中,1≤a1≤2,G(•)是非二次函数[2,3],可以选择G1(y)=1a1log cosh a1y,G2(y)=-exp(-y2/2)等非线性函数,v是标准高斯随机变量。

2.2 基于负熵的快速定点算法

快速定点算法也称为在线学习算法,每次更新不需要一批数据参与运算,而是每接受一个新样本时就更新网络权值,因而计算速度快。基于负熵的快速ICA算法,综合了定点迭代的计算速度快的性质和负熵的计算量小且稳健性好的统计性质,因而使用广泛。

对于快速定点算法,在进行ICA处理前,对观测信号要进行白化处理。设混合信号为X,则白化后的信号Z为:

Z=VX=(D-1/2ET)X[JY](4)

其中,V称为白化矩阵,D=diag(d1,…,dn)为协方差矩阵Cx=E{xxT}的特征值构成的对角矩阵,E=(e1,…,en)的每一列为Cx的单位模的特征向量。

ICA的处理过程就是寻找分离矩阵W以提取独立成分。分离过程是一个逐步迭代逼近的过程,令w表示分离矩阵W中与某个独立成分对应的某一行向量,w的迭代公式为[2]:

每次迭代后都要对w进行归一化处理ww/w。对多个独立成分,可重复使用上面的分离过程。但每提出一个独立成分后,要从混合信号中减去这一独立成分,如此重复直到所有的独立成分完全分离。

标准ICA方法要求信号源个数少于或等于混合信号个数。在确定了信号源的个数以后,就能使用式(5)逐个迭代出分离向量。

在信号源个数少于观察信号个数的情况下,未知信号源个数与混合信号数据矩阵X[WTBZ]的秩数相等;有噪声时,未知信号源个数与混合信号数据矩阵X[WTBZ]的主奇异值数相等。

所以,在信号源个数少于或等于混合信号个数的情况下,可以直接使用标准ICA算法得到分离出的独立成分。

3 稀疏混合模型

为了解决信号源个数大于混合信号个数的情况,Lewick[5―7]等学者提出超完备表示(overcomplete representations)方法,他是一个梯度算法,允许基向量的维数更大。为了改善算法的收敛性质,提出用稀疏分解方法来进行盲源分离。利用数据沿混合矩阵的列方向集中的现象,可以使用聚类方法来进行盲源分离。

为了确定数据集中的方向,将数据从直角坐标系映射到极坐标系下,先将数据投影到单位球面上:

然后,将数据点移至一个半空间,例如使第一个坐标x1(t)的符号为正,再利用其他坐标数据来计算数据α=(α1,…,αT)。在二维情况下,通过x2(t)=sin(αt)来计算;在三维情况下,αt=(α1(t),α2(t))T,通过x3(t)=sin(α1(t)),x2(t)=cos(α1(t))sin(α2(t)),x1(t)=cos(α1(t))cos(α2(t))来计算,依此类推。从数据α=(α1,…,αT)的直方图,可以看出数据α是由几个聚类分布组成,也对应着独立信号源的个数。数据α的聚类中心对应混合信号的不同的聚类方向,且聚类中心的坐标决定了混合矩阵的列向量。在二维情况下,聚类中心的坐标是b1,b2,…,bT,可由下式来计算混合矩阵A:

在多维情况下,依此类推。

所以,只需要找到聚类中心,就可以计算出混合矩阵A,从而估计出独立成分。

实际中的语音信号都是超高斯的,可以用稀疏密度分布来模拟语音信号的密度函数,典型代表即Laplacian密度函数:

其中,bk是聚类中心,βk是宽度参数。通过极大化似然函数得到一个梯度上升迭代学习算法,如下:

参数θk={βk,bk}是随机初始化的,迭代到一定的次数后,对数似然渐进稳定于某一个值,这就是所求的聚类中心,再计算出混合矩阵A。

4 实验及结论

从4种不同语言的语音信号中,截取了样本率为44 100 b/s、长度为10 s的数据,使用Matlab采样处理后,得到4段数据长度为4 000的语音信号作为实验对象。分别在信号源个数等于、小于和大于观察信号个数的3种情况下使用本文所提出的方法进行分离,以下是实验结果:

(1) 信号源个数等于观察信号个数的情况下,直接使用ICA算法。图1(a)中的4段语音信号作为信号源S,图1(b)是信号源经过随机混合矩阵A混合后得到混合信号X,图1(c)是使用该算法分离出的独立成分,可见分离效果很好。

(2) 信号源个数少于观察信号个数的情况下,取图1(a)中的3个原始语音信号为信号源S,用5×3的随机矩阵进行混合,得到5个混合信号X。求得秩rank(X)=3,再使用ICA算法进行分离,如图2所示,可见分离效果良好。

图1 信号源个数等于观察信号个数

图2 信号源个数少于观察信号个数

(3) 信号源个数大于观察信号个数的情况下,使用图2(a)中的3个原始语音信号为信号源S,用2×3的随机矩阵进行混合,得到2个混合信号X。以混合信号X1,X2分别为横轴和纵轴,得到混合信号X1对X2的分散点图,如图3所示,从该图中可看出分散点图呈现3个不同的方向,即有3个独立信号源,分别对应于混合矩阵的列向量,是可视化的。

使用第3节中的方法,得到这两个混合信号映射到极坐标下的数据α的直方图,如图4所示,可以看到数据α由3个不同的聚类分布组成,对应于在直角坐标下的3个聚类方向。数据α的密度函数可以由3个稀疏密度函数的线形组合来表示。使用式(9),式(10)可以估计出每个稀疏密度函数的聚类中心bk和宽度参数βk。聚类中心点的直角坐标就对应混合矩阵的列,从而可以估计出独立成分,如图5(c)所示,分离出的独立成分有些噪声,但基本上可识别出来。

图3 两个混合信号X1对X2的分散点图

图4 数据α的直方图

图5 信号源个数大于观察信号个数

5 结 语

源信号个数未知的盲源分离是盲信号分离的难题之一,本文针对各种情况进行分离,并提出了可行的方法。特别是在超完备情况下,用稀疏密度分布来模拟语音信号的密度函数,采用了稀疏混合模型对语音信号进行有效的分离。但是该算法的稳定性也受初值和混合矩阵的影响,因此进一步提高该算法的稳定性将是下一步的研究工作。

参考文献

[1]Hyvarinen A.Survey on Independent Component Analysis[J].Neural Computing Surveys,1999,1(2):94―128.

[2]Hyvarinen A.Independent Component Analysis:Algorithms and Applications [J].IEEE Trans.on Neural Network,2000,13(5):411―430.

[3]Hyvarinen A.Fast and Robust Fixed―point Algorithms for Independent Component Analysis[J].IEEE Trans.on Neural Networks,1999,10(3):626―634.

[4]Hyvarinen A.Gaussian Moments for Noisy Independent Component Analysis [J].IEEE Signal Processing Letters,1999,6(6):145―147.

[5]Te―Won Lee,Michael Lewicki S,Mark Girolami.Blind Source Separation of More Sources Than Mixtures Using Overcomplete Representations[J].IEEE Signal Process,1999,6(4):87―90.

[6]Michael Lewicki S,Bruno Olshausen A.Probabilistic Framework for the Adaptation and Comparison of Image Codes.1999,16(7):1 587―1 601.

[7]Lewicki M S,Sejnowski T J.Learning Overcomplete Representations[J].Neural Comput.,2000,12(2):337―365.

[8]l.salk.edu/~tewon.

作者简介

董优丽 女,1984年出生,湖北武汉人,硕士研究生。从事模式识别方向的研究。

谢勤岚 男,1968年出生,湖北武汉人,副教授,硕士生导师。

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。

上一篇:基于故障注入的基准电路故障响应分析 下一篇:基于多Agent的校园网络管理系统