在已知语音信号方向的情况下,波束形成能明显改善语音质量,提高信噪比;然而在实际环境中,人可能是走动的,即使坐立不动,由于身体的扭曲使得语音到达阵列的方向也是变化的,此时波束形成效果受到限制。如果我们能在不知语音信号方向等先验知识的前提下,把混合的语音分离开来,提取感兴趣的语音信号,达到语音增强的目的,这就是独立成分分析(Independent Component Analysis,ICA)。
1 概述
独立成分分析是盲源分离(Blind SourceSepatation,BSS)的一种方法,将混合的信号分离成潜在的信息成分。“盲”的意思即这种方法能在不知或知道很少声源信号属性的情况下将其分离开来。
假设两个说话人同时对着两个位于不同位置的麦克风说话,两个麦克风接收到的信号是两个语音的混合信号,即x1(t)和x2(t),其中x1和 x2表示幅度,t为时间坐标。每个麦克风接收到的信号是两个说话人语音的加权和,假设是线性瞬时混合,则
x1(t) = a11s1+ a12s2
x2(t) = a21s1+ a22s2
其中a11, a12,a21和a21是由说话人与麦克风之间距离决定的参数。盲源分离就是仅利用麦克风接收到的信号x1(t)和x2(t)去估计出原始语音信号s1(t)和s2(t),这就是著名的“鸡尾酒会”问题。
解决这一问题的一种方法就是利用信号si(t)的一些统计信息来估测出aij,从而便解方程组得到s1(t)和s2(t)。在s1(t)和s2(t)统计独立的情况下,独立成分分析能很好解决这一问题。
假设混合变量和独立成分都是零均值的,即使不是零均值,也可通过减去一个平均值使之变为零均值。假设有n个独立成分,用向量和矩阵将独立成分分析模型一般化为
x = As
其中x=[x1 x2 …xn]为麦克风接收到的观察信号,A=[ a11a12 …a1n; a21a22…a2n;…an1an2 …ann]T为混合矩阵,s=[ s1s2 …sn]为待求解的独立信号。这里没有考虑噪声,A和s均是未知的,仅假设si是相互独立的且xi至多只有一个是高斯分布。利用独立成分分析解出A,对其求逆得W=A-1,则独立信号即可解得
s = Wx
一个独立成分分析方法本质是上一个目标函数加上一个自适应更新算法。
2 ICA目标函数
(1) 非高斯性
独立成分非高斯分布是ICA的基本限制,因为如果混合矩阵是正交的且si是高斯分布的,则x1和x2是高斯分布、非相关且具有单位方差,其联合密度曲线完全对称的,它不包含混合矩阵A列方向上的任何信息,因此A是不可估计的。所以非高斯性意味着独立。