语音分离

2024-08-12

语音分离(精选六篇)

语音分离 篇1

独立分量分析(Independent Component Analysis,ICA)起源于鸡尾酒会问题,它是在统计独立的源信号与混合矩阵未知且无其他先验知识的情况下,仅根据观测信号而恢复出源信号的一种技术,也是一种非常有效的盲信号分离技术。ICA基于信号的高阶统计量,能分解出相互独立的非高斯信号,其分离结果也更接近于实际情况,因而在诸多领域取得广泛的应用,己经被广泛应用于语音信号处理、图像处理、生物医学信号处理、模式识别、数据挖掘、通信等研究领域。

ICA是针对语音分离问题而提出的,现有的各种ICA算法一般都能比较有效地从观测到的混合信号中分离出原始语音,而图像从信号角度看可认为是二维信号,经重新排列可成为一维信号,所以利用ICA对混合图像进行分离具有可行性。在分析了ICA的基本模型与FastICA算法的原理后,采用FastICA算法分别做了语音分离与图像分离的仿真实验,取得了较好的结果。

2 ICA的基本模型

假设存在n个独立的源信号以及m个观测信号,这m个观测信号是由n个源信号经m×n阶的混合矩阵A混合而成的,即有如下关系式:

式中是混合矩阵A的基向量,由(1)式知,各观测信号是由独立源信号经过不同的线性加权得到的。(1)式写成向量矩阵的形式为:

ICA的目标就是求得一个分离矩阵W,并通过W从观测信号x中恢复出一个尽可能地逼近源信号s的向量,且y的各分量尽可能地相互独立,即分离过程为:

源信号s与混合矩阵A均是未知的,只有观测信号x是已知的,若没有其他限制条件,要求仅由x估计出s,则必有多解,所以有必要对ICA问题作一些限制:(1)观测信号x的个数m等于源信号s的个数n,混合矩阵A是一个确定且未知的n×n阶方阵,且混合矩A可逆;(2)源信号的各个分量均为零均值、实随机变量,且各分量之间是瞬时统计独立的;(3)源信号s中最多只有一个是高斯信号。

3 FastICA算法

FastICA算法分为两个部分:预处理与提取独立分量。

3.1 预处理

FastICA预处理包括去均值和白化两部分:(1)去均值。从观测信号x中减去信号的均值向量,使观测信号成为零均值变量,这样可以简化ICA算法。(2)白化。对观测信号x施加线性变换,使得变换后的分量为非相关的,且为单位方差,即满足,对观测信号进行白化处理使得I-CA算法收敛速度更快,并能获得更好的稳定性。

3.2 提取独立分量

对白化后的信号进一步处理,即寻找分离矩阵,以实现独立分量提取。该过程是一个迭代逼近的过程,令n为迭代步数,是源信号中s中的某一分量,为分离矩阵中与对应的某一行向量。分离过程中,用

所定义的目标函数对分

离结果的非高斯性进行度量,并对进行调整,当相邻两次的无变化或变化很小时,即可认为,迭代过程结束。

对于多个独立分量,可重复使用上述过程进行分离,但每提取出一个独立分量后,要从观测信号中减去这一独立分量,如此重复,直至所有独立分量完全分离。

FastICA算法具有如下优点:并行的、分布的、计算简单、要求内存小、收敛速度快、分离效果好。

4 仿真实验分析

4.1 语音分离

选择3个原始语音信号(即源信号)s1、s2、s3,如图1所示。按随机生成的混合矩阵进行线性混合,得到如图2所示的混合语音信号x1、x2、x3,然后采用FastICA算法对其进行盲分离,结果如图3所示。y1最先被分离出来,与s2对应,接着y2也被分离出来,与s1对应,最后y3被分离出来,与s3对应。分离出的语言信号的顺序虽然发生了变化,但是直观上看,分离语音信号还是很接近于原始语音信号,即分离效果很好。

定量上分析分离信号与源信号的接近程度,可以引入性能指标(Performance Index,简称PI):

其中n表示全局矩阵C=WA的维数,为C的第i行第j列元素。PI的值越小表示分离的性能越好,当PI=0时表示分离信号与源信号完全相同。

本次仿真实验,得到的分离性能指标PI为0.0208565050,非常接近于0,表明此次分离效果很好。

4.2 图像分离

选择3幅128×128的原始图像,如图4所示。将它们按逐行的方式转化为相应的3个一维信号,再按随机生成的混合矩阵进行线性混合,得到模糊的混合图像,如图5所示。然后采用FastICA算法对混合图像进行盲分离,结果如图6所示。分离出的图像顺序虽然发生了变化,但直观上看,分离出的图像与原始图像都十分接近,即混合图像都得到了较好的分离。

本次仿真实验,得到的分离性能指标PI为0.0251068702,很接近于0,表明此次分离效果很好。

5 结语

独立分量分析是基于信号高阶统计量的一种盲信号分离方法,在语音信号处理与图像处理方面有着重要的应用。本文在分析了ICA的基本模型以及FastICA算法的原理后,分别对混合的语音信号与图像进行了分离实验,仿真结果表明FastI-CA的分离效果很好。在实验中,采用线性矩阵对源信号进行混合的,而实际中的观测信号很有可能是非线性混合的,用线性的ICA方法去逼近非线性的ICA混合函数,结果往往不是那么让人满意,因此,如何对非线性混合的信号进行分离将是以后的研究工作。

摘要:独立分量分析(ICA)基于信号的高阶统计量,能从混合信号中分离出既具有统计独立性又具有非高斯性的源信号,在诸多ICA算法中,固定点算法(也称FastICA)以其收敛速度快、分离效果好被广泛应用于信号处理领域。在介绍ICA的基本模型与FastICA算法的原理后,分别对混合的语音信号与图像信号进行了分离实验,仿真结果表明FastICA应用于语音分离与图像分离,效果都很好。

关键词:独立分量分析,固定点算法,语音分离,图像分离

参考文献

[1]A.Hyvarinen,J.Karhunen,E.Oja.Independent Component Analysis[M].John Wiley and Sons Inc,New York,2001.

[2]杨福生,洪波.独立分量分析的原理与应用[M].北京:清华大学出版社,2006.

[3]杨竹青,李勇,胡德文.独立成分分析方法综述[J].自动化学报,2002,28(5):762-772.

[4]张贤达,保铮.盲信号分离[J].电子学报,2001,29(12A):1766-177l.

[5]吴小培,冯焕清,周荷琴,等.基于独立分量分析的图象分离技术及应用[J].中国图像图形学报,2001,6A(2),133-137.

混合语音信号的盲分离 篇2

所谓盲源分离就是在源信号和源信号如何混合都未知的情况下,从观测到的混合信号中恢复出未知源信号。国际上关于盲源分离技术的理论总体可以分为两类:一类是关于瞬时混合信号(Instantaneous mixtures)的盲分离,另一类是卷积后混合信号(convolutive mixtures)的盲分离。盲源分离技术被成功地用在了通信、医学、图像和语音信号处理等领域。混合语音信号的分离是盲源分离技术研究初衷,也是信号处理领域中的一个难题。我们所要研究的混合语音信号盲分离问题就是用麦克风阵列或多个麦克风阵列来模仿人的耳朵,采集得到相互干扰的混叠语音信号,然后通过分离算法将混叠的语音信号相互分离开来,提取我们所感兴趣的信号。“鸡尾酒会”问题是语音盲分离问题的典型描述。它描述了在多人同时说话的嘈杂环境下,我们能够辨识感兴趣人的说话声的能力。语音混合盲分离的目标就是对经典的“鸡尾酒会”问题提供解决方法。

1卷积混合语音信号的数学模型

语音的卷积混合模型和实际环境比较接近,其混合模型表示如下:

undefined (1)

xj(k)为第j个混合信号,si是第i个源信号,hji(p)是从第i个源信号到第j个混合信号的传递函数,其阶数为P。把(1)式写为矩阵形式为:

undefined (2)

H(p)为n×m的混合矩阵。矩阵的每一个元素都是一个P阶滤波器。卷积混合信号的盲分离就是要寻求一个Q阶的m×n的分离滤波器矩阵,使得

undefined (3)

是源信号的s(k)的估计。即yi(k)=aj(sj(k)),aj(·)是一个未知的传递函数。(3)式也可写为:

undefined (4)

把(2),(3)式变换到频域分别有:

x(w)=H(w)s(w) (5)

y(w)=W(w)x(w) (6)

从(5)与(6)式可以看出,卷积混合盲分离变成了频域中的瞬时混合盲分离。因此,在频域中用瞬时混合盲分离的方法就可以求解时域中的卷积混合盲分离问题。

2 ICA基本原理

设有N个未知的的源信号Si(t),i=1~N,构成一个列向量S(t)=[S1(t),S2(t),…,SN(t)]T,其中t是离散时刻,取值为0,1,2,…。设A是一个M×N维混合矩阵,X(t)=[x1(t),x2(t),…,xM(t)]T是由M个可观察信号xi(t),i=1~M构成的列向量,三者之间满足X(t)=AS(t),M≥N。ICA所要解决的问题就是在A未知的情况下寻求一个N×N维分离矩阵W使得Y(t)=WX(t)=WAS(t),其中Y(t)=[y1(t),y2(t),…,yN(t)]T。我们把分离矩阵W称为混合矩阵A的伪逆,这是因为所估计的分离矩阵并不是A-1(这是比较理想情况),而是满足WA=PI=C,P是一置换阵,I是单位阵。这就是ICA中的不确定性问题。

ICA学习过程分为两步:第一步建立一个以W为变元的目标函数L(W),如果某个undefined能使L(W)达到极大(小)值,该undefined即为所需的解。第二步即是用一种有效的算法求undefined。按照L(W)定义的不同和求undefined的方法不同可以构成各种ICA算法。

3卷积混合语音信号的盲分离

我们知道语音信号是非平稳信号,但是它在短时间上具平稳性。因此我们可以先对语音信号进行加窗傅立叶变换(FFT)将卷积混合问题转换为频域上每个频点的瞬时BSS(blind source separation)问题。然后采用成熟的定点算法来对混合语音信号分离。

对于卷积混合模型:x(t)=A*s(t)对输入信号进行短时傅立叶变换得到:

undefined

此处w为频率,N为离散傅立叶变换的点数,ts表示窗位置,w为窗函数,如汉明窗、汉宁窗等。ΔT是移动窗的间隔时间。窗函数的长度一般比信号最稳定的持续时间要短。那么源信号和观察信号的时频域关系可以表示为:undefined。这样我们就可以在频域上用定点算法来对卷积混合语音信号分离。

定点(Fixed-point)算法也称为快速ICA(FastICA),其思路就是找一个方向,即一个权值W以使得投影WTX具有最大的非高斯性,这里的非高斯性由负墒来量度。在随机变量偶对称分布时,负熵的表达式为:

J(y)∝|E(G(y))-E(G(v))|2 (7)

其中y是零均值单位方差的随机变量,v是零均值单位方差的高斯变量。其中:

undefined

式中1≤a1≤2,把y=WTX代入(7)式可得:

W+=E[Xg(WTX)]-E[g(WTX)]W (9)

式中g(·)是G(·)的导函数。定点算法的流程为:

1) 对输入信号进行预处理,得到零均值单位方差的信号。

2) 初始化权矢量W,并归一化。

3) 对权值W进行迭代更新,既W+=E[Xg(WTX)]-E[g(WTX)]W。

4) 归一化权值W=W+/‖W+‖。

5) 若不收敛的话,则返回第三步。

4实验仿真

这里的测试语音数据我们采用了matlab提供的说话声和鸟叫声。

5总结

本文通过对语音信号进行加窗傅立叶变换(FFT)将卷积混合问题转换为频域上每个频点的瞬时性BSS问题,并采用定点(fixed-point)ICA算法对混合语音信号进行了分离。其实质就是对混合语音信号在频域上分离。频域算法相对于时域算法有很大的优越性。然而频域算法中的不确定性(Permutation和scaling)问题仍有待解决。

摘要:重点研究了卷积混合语音信号的盲分离方法。语音信号是非平稳信号,但是它在短时间上具有平稳性。因此,本文对语音信号进行加窗傅立叶变换(FFT)将卷积混合问题转换为频域上每个频点的瞬时性BSS(blind source separation)问题,采用定点(fixed-point)ICA(independent component analysis)算法对混合语音信号进行了分离,并用matlab进行了仿真。

关键词:盲分离,语音信号,ICA

参考文献

[1](波)CICHOCKI A,(日)Shun-ichi AMARI.自适应盲信号与图像处理[M].吴正国,唐劲松,章林柯,等译.北京:电子工业出版社,2005.5.

[2]杨行峻,郑君里.人工神经网络与盲信号处理[M].北京:清华大学出版社,2002.

[3]Ikeda S,Murata N.A method of ICA in Time-FrequencyDomain,International Conference on Independent Compo-nent Analysis and Signal Separation,1999,365371.

基于麦克阵列的实时盲语音分离系统 篇3

随着语音识别技术在计算机应用领域的不断发展,人们需要在不知道源信号的先验知识情况下,将多个人说话的混合语音分离得到单个人的语音,这样才能更好得对某一说话人进行语音识别。很多在仿真信号环境下工作有效的算法常常不能成功地分离真实环境中录取的混叠语音信号,因此本文提出了一种针对真实环境下的快速实时的盲语音分离系统。

首先通过对真实环境下录制的混叠语音信号进行短时离散傅立叶变换,在频域内应用麦克阵列的多波束形成算法,本文采用经典的延时相加波束形成器,抑制了一部分噪声和混响。接着进行去均值和白化,采用均衡白化滤波器对被观测信号进行解相关。然后利用独立分量分析算法(Independent component analysis-ICA)[1]找到合适的分离矩阵,对白化后的数据进行分离,经典的时域内的ICA算法只能对线性瞬时混叠信号进行很好的分离,而且运算开销很大,对于考虑到时间延时的情况下,观测到的语音信号应该是源信号和通道的卷积,因此需要采用频域内的ICA算法把时域的卷积混叠问题转变为频域的线性瞬时混叠问题。因为频域ICA算法本身存在尺度(Scaling)不定性和排列(Permutation)不定性,所以如何解决尺度问题和排列问题是频域盲分离方法的关键。本文采用Asano[2]提出的频率间相干(Inter-frequency Coherency)的方法,利用混叠矩阵在相邻频率上的相干性来快速解决排列问题。另外本文对Ikeda[3]提出分裂语谱(Splitting Spectrogram)方法结合Matsuoka[4]提出的最小畸变原理进行改进,很好地解决了尺度问题。最后将频域分离出的结果变换到时域就完成了整个的盲语音分离系统。在进行频域ICA算法的时候,我们通过迭代求得每一帧的分离矩阵,为加快收敛速度,可以用前一帧的分离矩阵作为新一帧的初始迭代值, 但会由于等待上一帧数据而导致延时,因此我们使用在计算新一帧的分离矩阵的同时,使用前一帧的分离矩阵来分离当前帧的语音信号,这样就能够减少因为等待和计算带来的延时。

2鲁棒实时盲语音分离算法

这一部分,我们简要描述了包括预处理、频域ICA分离算法和解尺度和排列问题的后处理等各个环节,并介绍了如何采用帧块批处理方法对语音信号进行实时分离。整体系统框图如图1所示。

2.1基于麦克阵列的多波束形成器

在强噪声和强反射/混响的环境下,很多盲分离算法性能都会有所下降,因此我们在进行分离算法之前首先利用经典的延时相加的多波束形成器(delay-and-sum beamformer),对非相干噪声或散射噪声进行抑制。如图1所示,采用具有I个麦克风的线性阵列采集真实环境下的N个声源(I>N),将得到的混叠语音信号进行短时离散傅立叶变换,采用多个指向不同角度的操纵矢量的波束形成器,计算出N个波束。undefined (1)

其中Οi(ω,n)为第i个麦克风接收到的语音信号的短时离散傅立叶变换,αi为第i个波束的权矢量,Δi是与第i个输入信号的入射角度θi有关的相移因子。经过多波束形成器得到的作为后面分离算法的x(P)被观测信号,实验证明,加入延时相加的多波束形成器后对实时盲语音分离系统的整体性能有一定的提高,尤其当声源信号为2个,分别处于麦克阵列0度和90度的入射角度时,性能提高的效果最佳。

2.2去均值和白化等预处理算法

为减少待估计的参数个数,我们采用白化的预处理方法,可以使ICA算法获得更加稳定和快速的收敛过程。设白化滤波的输出向量为:

v=Ux (2)

采用Bell[5]提出的均衡解Uz=〈xxH〉-1/2,经过均衡白化得到的数据能够为后面的独立分量分析算法提供更好的迭代初值,从而能更进一步提高ICA算法的收敛速度。

2.3频域独立分量分析算法(ICA)

经过多波束形成器后得到的x仍然包含屋内环境和麦克阵列系统带来的卷积冲激响应。时域的卷积混叠信号对应于频域的瞬时混叠信号,我们将时域内的ICA算法应用到频域内,能很好解决混响环境下的盲分离问题。ICA算法的分离模型在频域内可表示为:

Y(ω,n)=W(ω)X(ω,n) (3)

为了计算分离矩阵W,我们使用信息最大化算法(Infomax)[1][6]。优化的W由下面的迭代方程式计算所得:

W(i+1)=W(i)+μ[I-〈ϕ(Y)YH〉]W(i) (4)

其中ϕ(·)是一个非线性函数。因为信号在频域是复数值,所以我们使用一个基于极坐标系统的非线性函数,它可以有效地提高收敛速度,特别是在数据样本较少时:

ϕ(Y)=tanh(g·abs(Y))ejang(Y) (5)

此处是控制非线性函数的增益因子。

结合白化过程的均衡解,我们将U(ω)和W(ω)的乘积作为最终的分离矩阵:

T(ω)=U(ω)W(ω) (6)

2.4帧块批处理方法

我们对每一时块Bm={t:(m-1)Tb≤t≤mTb}更新分离矩阵,其中Tb是块大小,m表示块索引(m≥1)。使用前一块的分离矩阵作为新块的初始迭代值,比如,Wundefined(ω)=Wundefined(ω),此处NI是公式(4)的最大迭代次数。这样可以缩短每一时块内计算W的迭代次数。

2.5解尺度问题和排列问题

频域ICA算法有两个固有的不定性:尺度不定性和排列不定性。尺度不定问题的一个较经典的方法是Ikeda[3]提出的分裂语谱方法,它对于N个源M个麦克的情况,将会得到NM个分离的结果,每个麦克上得到N个分离结果,这通常是不必要的。根据Matsuoka[4]提出的最小畸变原理,我们对Ikeda的方法进行了改进,可由下式对分离矩阵进行修正,令:D(ω)=diag(T(ω)-1)

T(ω)←D(ω)T(ω) (7)

另一方面,我们采用Asano[2]提出的频率间相干(Inter-frequency Coherency)的方法来解决排列问题。主要思想是对于所有可能的排列,使得相邻频率对应的方向矢量间的夹角最小的排列即为正确的排列。因此对正确的排列的求解可转化为对下面的优化问题的求解:

undefinedarg max F(P)P (8)

其中,代价函数undefined。

求得正确的排列矩阵P(ω)后,按下式修正分离矩阵:

T(ω)←P(ω)T(ω) (9)

3系统实现

为验证本文提出的算法在实时盲语音分离系统中的性能,我们设计了包括软硬件在内的全套实验平台。硬件系统包括通用PC机(Pentium 4/2.4G Hz处理器),和本人开发的基于USB2.0接口的麦克阵列语音数据采集板。软件部分包括USB底层数据采集驱动程序和用户层盲语音分离主程序。其中USB底层数据采集驱动程序以WindowsXP DDK WDM驱动程序集里的isousb程序为蓝本,实现了在操作系统内核态将USB数据实时传输给用户态所创建的内存缓冲区里。而盲语音分离主程序以VC++ 6.0为开发环境,在C语言一级对算法中所涉及到的一系列矩阵运算进行优化。

在当前流行的基于GNU GPL协议的C/C++的矩阵库里,我们选择Meschanch库,因为它是用C代码编写,结构清晰、运算速度快,而且在各种系统平台上移植非常方便,这对于今后将实时盲语音分离系统从PC移植到嵌入式平台上有优势。盲语音分离主程序首先将麦克阵列的USB语音数据流采集上来并拆分为多通道的语音数据,然后按照图1所示的系统流程图,对数据流进行帧块批处理。为尽可能地缩短程序处理过程中带来的延时,我们采用多进程,其中前端的采集和拆包部分放在一个进程内,同时另一进程进行算法部分的处理。整个程序的实时性能关键在于2.4节中提出的帧块批处理,除了使用前一块的分离矩阵作为新块的初始迭代值能加速收敛外,还要考虑到此方法带来的内在延时问题,因为计算W需要等待上一块数据的到来,另外计算本身也会花费时间。因此在Tb内计算完成后,我们利用Wm-1来分离bm内的信号,这样就能够避免因等待和计算带来的延时。这个技巧能够减少输入输出的延时,更好得满足实时应用需求。

4实验

我们使用真实会议厅进行实时盲语音分离实验。会议厅大小为15m×11m×2.8m,混响时间TR=800ms。麦克风数目为4,呈线性状一字排开,间距4cm,我们使用两个扬声器同时播放不同的863中文语音数据库里的文件作为声源信号,两个扬声器位于麦克阵列中心轴线的角度分别为45度和-45度的位置,距离中心点60cm远。实验参数如表1所示:

在以上实验条件下,我们通过男声女声搭配的

三种组合分别进行了分离实验,选取其中男声/女声搭配的数据计算所得到的分离结果如图2所示。

为评估实时盲语音分离系统的性能,我们使用信号干扰比率(SIR)作为衡量分离性能的尺度,使用信号失真比率(SDR)作为衡量麦克风录制的信号质量尺度:

undefined (10)

undefined (11)

我们通过对三组男声/男声,女声/女声,男声/女声的源信号分布搭配分别进行采用多波束形成器和不采用多波束形成器两种分离实验,然后计算各自的SIR和SDR如表2、表3所示,比较发现,采用多波束形成器能够比不采用的情况提高一定的SIR,获得了更好的分离结果。表中所测得的数据均是在满足表所用的参数条件下获得的。其中表2是采用多波束形成器,SDR值包括4通道的麦克采集信号失真比率,而表3仅使用了中间两通道的麦克风。

5结束语

本文通过对一系列预处理,频域独立分量分析(ICA)和后处理算法有机结合和进行优化,提出了一种基于麦克阵列的鲁棒快速的盲语音分离系统,尤其是通过在ICA 算法之前加入延时相加的波束形成器和进行ICA过程当中采用帧块批处理的优化算法,有效地提高了整个系统的分离性能。本系统对于声源固定的情况能获得很好分离性能,对于声源移动的情况,分离性能有所下降,需要进一步的深入研究。

参考文献

[1] Bell A.J.and Sejnowski T.J.An information maximization approach to blind separation and blind deconvolution.Neural Compu-tation,1995,7(6):1129-1159

[2] Asano F,Ikeda S,Ogawa M,Asoh H,Kitawaki N.Combined Approach of Array Processing and Independence Component Analy-sis for Blind Separation of Acoustic Signals.IEEE trans.Speech,Audio Processing,.2003,11(5):204-215

[3] Murata N,Ikeda S,and Ziehe A.An approach to blind source separation based on temporal structure of speech signals.Neurocom-put,2001,41(2):1-24

[4] Matsuoka K. Independent Component Analysis and Its Applications to Sound Signal Separation. IWAENC2003, Kyoto, Japan, 2003, 9:15-18

[5] Bell A.J. and Sejnowski T.J. Edges are the independent components of natural scenes. Advances in Neural Information Processing Systems 9, MIT press.1996

语音分离 篇4

语音分离器是用来将电话线路中传输数据的高频数字信号和低频话音信号有效分离的装置。语音分离器的测试具有瞬时性、可重复性等特点。本文设计的语音分离器测试系统旨在将整个测试过程自动化,从而提高测试效率,降低测试成本。本系统具有良好的软件交互界面,编程简单,控制效果良好。

1 语音分离器测试原理和测试指标

语音分离器一般具有三个端口:POTS端口,DSL端口以及LINE端口。低频话音信号由分离器接PSTN(Public Switched Telephone Network)交换机或POTS(Plain Old Telephone Service)电话机/传真机等用来传输普通话音信息;高频数字信号则接入DSLAM(DSLAccess Multiplexer)或DSL调制解调器(MODEM),用来传输上网信息和视频点播节目等。在通信线路中使用了语音分离器,不仅可以保证通话话音清晰,而且能同时降低通话对数据通信的影响。

从图1语音分离器原理图中可以看出,由POTS端口到LINE端口或者由LINE端口到POTS端口的传输函数可以看作是一个低通滤波器;由DSL端口到LINE端口或者由LINE端口到DSL端口的传输函数,根据设计的需要可以是直通线路或者是一个高通滤波器。

基于上述原理,市场上现有语音分离器大多是由电感、电容和电阻等被动元件构成的多阶滤波器电路,其主要指标有POTS插入损耗、POTS反射损耗、群延时、纵向平衡、频带隔离度、DSL频带插入损耗等[1]。生产中一般测试插入损耗、反射损耗及频带隔离度等参数。

插入损耗反映了语音分离器的低通滤波和高通滤波分别在各自的通带内信号衰减的程度,决定了分离器对通过信号的影响程度,损耗越小则通过信号衰减越小。

反射损耗反映出语音分离器各个端口对接口阻抗的匹配程度,匹配程度越好反射损耗越小,源信号绝大部分得以被传递到负载。

频带隔离度反映语音分离器在分离低频语音信号和高频数字信号时,对两种信号的隔离程度,频带隔离度越大越好。

2 语音分离器的测试方法

对上述参数的测量可以通过信号发生器和选频电平表搭配使用来实现。本文只给出插入损耗和隔离度的测试线路,反射损耗的测试线路可以参考相关标准[2]。插入损耗和隔离度的通用测试线路如图2所示:利用信号发生器产生某个频段的测试信号,进入语音分离器的其中一个测试端口,经由分离器另外一个测试端口输出,输出信号由选频电平表接收。图2中测试输入端口是POTS端,输出端口是LINE端,通过转换开关S的闭合或打开使DSL端口连接终接阻抗或者不连接终接阻抗。

上述测试也可以通过矢量网络分析仪来实现。矢量网络分析仪本身自带了一个信号发生器,可以对设定的频段进行频率扫描。如果是单端口测量的话,将激励信号加在端口上,通过测量反射回来的信号的幅度和相位,就可以判断出阻抗或者反射情况,这对应于分离器产品的反射损耗参数。而对于双端口测量,则可以用来测量传输参数,这对应于分离器产品的插入损耗或者频带隔离度参数,如图3所示。图中巴伦的作用是用来实现非平衡线路和平衡线路之间阻抗匹配转换。需要注意的是由于受分布参数等影响明显,网络分析仪在使用之前必须要进行校准。

3 基于Lab VIEW的测试系统设计

本文是采用网络分析仪作为测试的硬件设备,与不同匹配阻抗值的巴伦搭配来实现不同测试参数的测试线路。利用Lab VIEW程序读取网络分析仪测量的不同频率点的数据值,然后将测量的数据值与标准值进行比较,同时给出分离器产品的性能判断(通过或者不通过)。

3.1 测试设备

网络分析仪采用OMICRON Lab公司的Bode 100矢量网络分析仪,外形小巧。设备本身自带了一套控制软件Bode Analyzer Suite,安装在电脑上可以通过USB接口对网络分析仪进行实时控制。但是软件操作步骤比较复杂,对于生产线工人来讲使用不是很方便;另一方面,该控制软件不能对语音分离器产品测试的结果给出通过与否的判断,只是给出每个频率点的数值。这就要求生产线工人需要根据测试的频段和测试的结果与标准值作比较,进行判断后才能给出最终的结果,这势必容易造成误读、漏读数据。通过这种方式进行测试既费工时又费人工成本,而且对生产线工人要求比较高,直接用于产品生产测试不是很实际。

3.2 测试软件及设计环境配置

Lab VIEW是美国国家仪器公司开发的虚拟仪器开发平台软件,功能强大、灵活,广泛应用于自动测量系统以及工业过程自动化等领域。它是一种图形化的编程语言(G语言),与以往的C程序、C++或者Java等编程语言不同的是,它用各种图标、连线和框图代替文字程序代码,使得编写的程序结构比较清晰,也能比较形象地观察数据的传输过程。目前,计算机辅助实时测量技术的发展使得实时测量和控制更加智能化、高精度和高效率。Lab VIEW基于以上的特点,已经成为国内外应用最广的数据采集和控制开发的语言环境。

Lab VIEW提供了无与伦比的、与数以千计的硬件设备的集成,并提供了数百种不同接口测试仪器的驱动程序。这些仪器驱动程序,可以用来完成对某一特定仪器控制与通信,是应用程序实现仪器控制的桥梁[3]。OMICRON Lab公司提供了对于Bode 100网络分析仪控制的仪器驱动程序库,利用Lab VIEW调用Bode 100网络分析仪的设备驱动库文件,可以直接控制操作网络分析仪。这些设备驱动库文件可以在OMICRON Lab的网站上直接下载[4]。复制完整文件夹下的"Bode 100"进入"instr.lib"文件夹,这可以在Lab VIEW安装文件夹以下位置找到:

Lab VIEWinstr.lib

当下次运行Lab VIEW软件时,Bode 100设备驱动程序就已经自动安装。在框图程序窗口中功能模板下查看"Instrument I/O→Instrument Drivers"子目录下查找"Bode100",如下图4所示。

点击鼠标右键,选择"InstrumentI/O→instrumen Drivers→Bode 100→....",可以快速地访问Bode 100子模板,调用其中的子函数,如图5所示。

3.3 测试系统设计

首先,调用初始化子程序,初始化网络分析仪,建立Lab VIEW与网络分析仪之间的通信。初始化完成后,设备的序列号信息会显示在程序主界面上。如果初始化不成功,同时会给出相应错误信息。

参数设定子程序。可以用来设定不同测试参数类型,如:插入损耗、隔离度或者反射损耗等;同时设定测试的起始频率、终止频率、测试频率点数N、测试电平、采样频率等参数。

校准子程序。用来对网络分析仪在接入语音分离器产品前进行测试校准。插入损耗/隔离度与反射损耗的校准方法有些不同。插入损耗/隔离度只需要进行一次直通(through)的校准;而反射损耗需要在测试口进行开路(open)、短路(short)和负载(load)共三次校准。校准成功后,程序主界面上校准完成的指示灯会高亮绿色显示;如果校准没有成功,指示灯不会点亮,同时给出错误提示信息。

测试子程序。就是开始对产品进行测量,绘出产品测试曲线,同时给出产品测试通过与否的测试信息判断。每个产品的测试结果,根据之前参数设定子程序中设定的测试频率点数,有N个测试值。程序将N个测试值获取后,存放在一个数组中,然后执行循环程序,将N个测试结果值依次与标准值进行比较。如果发现有错误,程序主界面就给出"FAIL"(不通过)的判断,指示灯显示黄色告警信号;如果N个测试值都在标准值范围内,则主界面上会给出"PASS"(通过)的判断,指示灯显示绿色通过信号。同时,在提示信息下方会给出当前测试结果的图形。如果分离器产品全部测试结束,点击退出按钮,退出测试程序;如果这批产品还没有测试完成,系统会自动进行下一个产品的测试,直到产品测试结束。

图6为整个系统测试的流程图:

图7为测试部分的Lab VIEW源程序:

下面图8、图9和图10分别为语音分离器产品插入损耗(产品不通过情形)、频带隔离度(产品不通过情形)和反射损耗(产品通过情形)不同测试参数的程序主界面。

利用本测试系统进行分离器产品测试,据统计,对于每个产品的每个测试时间,相比原来时间大大缩短。这大大提高了测试的效率,同时也避免了按照原有测试方法生产线工人误读、漏读数据的可能性,提高了测试的精度。本测试程序具有用户友好的界面,编程简单,在工厂实际使用中控制效果良好。

4 结束语

应用基于Lab VIEW编程控制矢量网络分析仪对语音分离器进行自动测试与原有测试方法相比具有明显的优势。利用基于Lab VIEW的测试方法对语音分离器产品进行测试,不仅能提高产品的测试效率,降低生产测试成本,还能提高测试的精度,避免误读、漏读数据的可能性。本文所提出的设计能够方便地应用于语音分离器产品的工厂生产测试,可大大提高生产测试效率,具有开发方便、编程简单的优点。

参考文献

[1]巴谋兵.浅谈语音分离器和分离器板的发展与应用[EB/OL].http://www1.eccn.com/xsj07/xsj091653w.asp

[2]YD/T 1187-2006,ADSL/VDSL分离器技术要求及测试方法[S].

[3]杨乐平,李海涛,杨磊.LabVIEW程序设计与应用[M].北京:电子工业出版社,2006.

语音分离 篇5

关键词:萤火虫算法,变步长,盲源分离

盲源分离[1,2]是指在不知道源信号和混合方式条件下,根据源信号的统计特性从观测信号中恢复出源信号的过程。最典型的例子就是鸡尾酒会[3]问题。作为当今信息处理领域中研究的热点,随着其理论和技术的不断发展和成熟,已在语音信号分离与识别[4]、图像处理与识别[5]、生物医学信号处理[6,7]等领域有着广泛应用。

独立成分分析[8](Independent Compo-nent Analysis,ICA)作为盲源分离的一种主要方法,先假设源信号间相互独立,再对观测信号进行某种非线性变换,使各输出信号间尽可能的相互独立。目前ICA中有许多有效的算法,如扩展Infomax算法[9],Fast ICA[10],自然梯度算法[11]等。其中以自然梯度算法最为著名。

Amari在随机梯度算法的基础上,从黎曼空间的角度出发,提出了自然梯度算法[12]。事实上,自然梯度算法的稳定性更强,分离效果更好。学习步长和非线性函数的选取影响自然梯度算法的性能,因此选择一个理想的步长是关键。当传统的自然梯度算法对语音信号盲分离时,步长通常被设定为一个固定常量,设定过大虽然收敛速度快,但影响算法的稳定性,甚至不能收敛;过小虽增加一定的稳定性,但收敛速度慢,不能满足人们的要求。本文提出了一种基于萤火虫算法的变步长自然梯度算法,通过用萤火虫算法去优化自然梯度算法中的步长,使选择的步长不断变化且达到信号的最大分离度,从而更快、更好地分离观测信号。

1 盲源分离问题

1.1 盲源分离的基本模型

盲源分离问题的一般模型如图1所示。

S(t)=[S1(t),S2(t),…Sn(t)]T为n个语音源信号,X(t)=[X1(t),X2(t),…Xn(t)]T为n个传感器接受到的观测信号,忽略噪声和传输延迟的影响,即线性瞬时无噪声混合模型。则观测信号与源信号之间的关系为

式中,A是一个n×n的非奇异矩阵,模拟传输信道的参数。盲源分离问题的实质就是在混合矩阵A和源信号St未知的情况下估计分离矩阵W,使X(t)通过W后输出各分量尽可能相互独立的Y(t)即

输出的Y(t)为源信号S(t)的估计。

1.2 自然梯度算法

能否找到最佳的分离矩阵W是盲源分离问题的关键。为此人们用互信息最小化、最大似然估计法、信息极大化等许多不同的方法求得最优解。依据自然梯度算法的定义,所有方法可总结为相同的迭代表达式

式中,k为迭代次数;Wk为k次的分离矩阵;u为步长(学习率);I为单位矩阵;为非线性函数,与源信号的概率密度有关,不同的信号分布采用不同的非线性函数,由于所研究的算法针对语音信号的盲源分离,绝大数语音信号服从亚高斯分布,因此本文采用。

2 萤火虫算法

剑桥学者Yang在2009年提出萤火虫算法[13,14](Firefly Algorithm,FA),是模拟自然界中萤火虫发光行为的随机优化算法。利用其发光特性和趋光特性向亮度更高的位置移动,进而找到最大亮度的萤火虫位置。与遗传算法和粒子群算法相比,萤火虫算法具有使用简单、鲁棒性强、易于实现等特点,收敛速度更快、搜索全局最优解的能力更强且不易于陷入局部极值,从而使寻优结果更准确。目前已被应用到装配序列规划问题[15]、图像分割处理[16]等方面。

亮度和吸引度是萤火虫算法的两个重要参数。亮度体现了萤火虫所处位置的优劣并决定其移动方向;萤火虫移动的距离则由吸引度决定。不断地更新亮度和吸引度使被优化的目标达到最佳位置。

萤火虫的相对荧光亮度为

其中,I0为萤火虫的自身最大荧光亮度(r=0),其大小取决于目标函数,目标函数值越大其自身亮度就越亮;γ为光强吸收系数,传播介质的吸收和萤火虫个体间距离的增加使荧光逐渐减弱,rij为萤火虫个体i和j之间的空间距离。

萤火虫的吸引度为

其中,β0为最大吸引度,即萤火虫间距离为零时的吸引度。被吸引后,萤火虫i根据式(6)向荧火虫j移动,更新自身的位置

其中,Xi,Xj为萤火虫i和j所处空间的位置;α为步长因子,是[0,1]上的常数;rand为[0,1]上服从均匀分布的随机因子。萤火虫移动的距离主要由吸引度的大小决定。亮度高的萤火虫向亮度低的萤火虫移动。在萤火虫位置的更新过程中加入扰动项α×(rand-0.5)可扩大搜索区域,防止过早陷入局部极值点。所有萤火虫个体在经过多次的扰动后都聚集在亮度最高的萤火虫的位置上,从而找到最优解。

3 变步长自然梯度算法

3.1 目标函数的选取

式中,‖·‖为Frobenius范数;ΔWk定性上表示的是信号的分离的状态:若信号的分离状态差,则ΔWk值越大;反之ΔWk值越小。当ΔWk=0时,信号得到完全分离。由式(7)可知信号的分离状态与步长u的大小有关。因此,可通过对ΔWk的控制选择合适的u。

3.2 算法原理

初始化萤火虫个体的个数及位置,个数表示步长参数的数量;位置表示所选步长参数的大小。将ΔWk作为萤火虫算法的目标函数,通过最小化这个目标函数使得经过数次迭代后算法返回的值是亮度最大的萤火虫的位置,即达到最大分离度时的步长。

3.3 算法步骤

(1)对观测信号白化和去均值处理。可减小计算量,提高算法精度;(2)初始萤火虫算法参数。萤火虫个体初始位置、萤火虫的个体数量M、最大吸引度β0、步长因子α、光强吸收系数γ、最大迭代次数T;(3)计算萤火虫的亮度并排序。计算每个萤火虫对应的ΔWk,将其值视为其亮度,排序后得到亮度最大的萤火虫位置;(4)判断迭代是否结束。判断迭代次数是否到达到最大迭代次数T,达到则转步骤(5),否则转(6);(5)输出亮度最大的萤火虫位置及其亮度,将得到的最大亮度的位置作为自然梯度算法的步长,对语音信号进行分离;(6)更新萤火虫位置。对已在最优位置的萤火虫进行一次随机扰动,故搜索次数加一次,转步骤(3)进行下一次移动。

4 仿真实验及性能分析

4.1 仿真实验

选取3路纯净的语音信号S1,S2,S3作为源信号来验证算法的可行性。计算机仿真后得到图2所示。再随机产生一个阶的混合矩阵,与语音源混合后变成三路混合信号X1,X2和X3。仿真结果如图3所示。

选取固定步长为u=0.000 1;萤火虫个数M=50;萤火虫的初始位置U=0.000 5×rand(1,50);最大吸引度β0=1.0;光强吸收系数γ=1.0;步长因子α=0.000 2;最大迭代次数T=100。使用传统固定步长自然梯度算法和本文所提出的基于萤火虫算法的变步长自然梯度算法分别对混合信号进行分离,两种算法各自最大的迭代次数为300;初始化分离矩阵W=0.1×eye(3,3);计算机仿真的分离结果如图4和图5所示。

4.2 性能分析

通过观察两种算法分离后得到的分离信号,如图4和图5所示,两种算法都能有效地分离出信号。由于ICA算法存在分离顺序和幅度的不确定性,因此暂时不考虑这两个因素。用萤火虫算法改进的变步长自然梯度算法得到的分离信号相比于固定步长的自然梯度算法更加接近原始语音信号。

通过具体的评价指标分析:本文选用分离后输出信号的串音误差E[17]来量化分离算法的性能。串音误差

式中,Pij为全局矩阵G的元素;G=W×A;maxk|Pij|表示G的第k行或列元素绝对值中的最大值。当信号得以精确分离时,理论上的值应该为零,但实际上一般为较小的值。

通过仿真得到两种算法的串音误差E如图6所示。

两种算法独立运行30次,得到两种自然梯度算法达到收敛时的平均串音误差和平均迭代次数的结果如表1所示。

从两种算法的串音误差E可看出,本文提出基于萤火虫算法的变步长自然梯度算法与传统的固定步长的自然梯度相比,有更快的收敛速度和更小的串音误差,说明改进后的算法在语音信号的分离性能优于传统的自然梯度算法。

5 结束语

语音分离 篇6

正因为信号盲分离技术具有广阔的应用前景,促使国内外广大的科研工作者关注这一领域研究,盲分离技术也因此获得了飞速的发展,现在的研究多数都假设传感器个数不少于源信号的个数,对源信号个数多于传感器个数的问题如何解是又一个困难的问题。此前关于多路输入-单路输出的盲源分离成果是较少的[1]。

1 单通道信号基本概念

假设接收到的信号XM是有M路信号S(t)=[S1(t),…,SN(t)]T通过某种方式混合而成,并受到加性噪声的干扰

XM=A[S(t)]+V(t) (1)

其中,A(·)为混合方程V(t)为加性噪声;XMS(t)中,M表示观察信号的维数。当M=1时就是一个观察信号,即形成了单通道信号,因此单通道信号处理问题都可以用式(1)来表示,对于不同的应用,区别在于源信号S(t):类型、数目的差异,以及混合方式A(·)的差异。针对不同的情况,单通道信号分离可以分为以下几类问题[3]:

(1)N=1,混合方程A(·)己知,模型转化为信号去噪问题,即由接收信号X1(T)通过去噪算法,尽量精确地恢复出源信号。

(2)N=1,混合方程A(·)未知,模型转化为信号的盲估计问题,或是混合方程和源信号的联合估计问题,即由接收信号X1(t)估计出混合方程A(·)和源信号。

(3)N>1,混合方程A(·)己知,模型转化为多路混合信号的分离问题,即由接收信号X1(t),通过分离算法,估计多路源信号。

(4)N>1,混合方程A(·)未知,模型转化为多路混合信号的盲分离问题,用盲分离的方法根据单路接收信号估计多路信号,即特殊的欠定盲信号分离问题[1]。文中根据情况(1)进行分析研究。

2 盲源信号分离描述

2.1 源数目估计

为实现单通道信号的盲分离,首先要求估计系统的源信号数。在此提出基于 EMD 的源数估计方法[4]。

首先,单通道观测信号x1(t)进行 EMD 分解[12],并得到其本征模函数xlimf=(c1,c2,…,cn,r1n)T。其次,将单通道信号x1(t)和其IMF组合成为新的多维信号ximf=(x1,c1,c2,…,cn,r1n)T,即可解决源信号数目大于观测信号数目的难题[4,9,10,11]。

ximf=(x1,c1,c2,…,cn,r1n)T的相关矩阵为

Rx=E[ximf(t)xHimf(t)] (2)

当噪声是白色信号,且其对应的本征函数和源信号对应的本征模函数不相关时,ximf=(x1,c1,c2,…,cn,r1n)T的相关矩阵为Rx=E[sH(t)s(t)]+δ2IM-N式中,Mximf=(x1,c1,c2,…,cn,r1n)T的维数,IM-N是单位矩阵,δ2是噪声的功率。

Rx奇异值分解为

Rx=VsΛsVTs+VbΛbVTb (3)

式中,Λsn个主特征值,Λs=diag{λ1≥λ2,…,λn},ΛbM-n个噪声特征值,Λb=diag{λn+1,…,λM}=δ2I

在假设噪声方差相对小和精度估计协方差矩阵的前提下,通过判断Rx最小特征值的个数即可确定其噪声子空间的维数,进而估计源信号的数目。文中将利用Bayesian信息准则(BIC)来判断源信号的数目[4,10]。

基于贝叶斯模型,MINKA提出一个真实维数估值的有效准则:Minka Bayesian 选择模型(MIBS)。其目标函数是寻找一个能使代价函数最大的序号k=n,1≤kl,l为非零特征值个数。该序号n即为观测数据x(t)隐含的维数。MIBS可用Bayesian信息准则近似

Bayesian信息准则可以分析非高斯源信号,因此文中利用BIC进行语音源数估计的研究。

2.2 盲源分离步骤

(1)单通道观测信号x1(t)的EMD分解[4],单通道观测信号的EMD分解将得到IMF分量ximf=(c1,c2,…,cn,r1n)T。

(2)源数估计[4,10]。单通道信号x1(t)和其IMF组合成为新的多维信号ximf=(x1,c1,c2,…,cn,r1n)T,其相关矩阵为Rx=E[ximf(t)xHimf(t)],并奇异值分解,根据其特征值估计源信号数目。

(3)合成新的多维信号[1,10,11,12]。将单通道信号x1(t)和其IMF组合成为新的多维信号x=(x1,c1,c2,…,cn,r1n)T,并使其维数等于估计的源信号数。

(4)的盲信号分离[2,3,5,6,7,8]。针对新的多维信号x=(x1,c1,c2,…,cn,r1n)T,应用ICA相关算法实现盲源分离[2,5],得到分离后的源信号y

3 算法应用研究

仿真实验中使用的语音信号为:WAV文件,PCM音频格式,采样大小16位,单声道,采样频率为8 kHz,数据长度156 kB,语音信号10 s,语音信号作为源信号。

研究试验中假设只知道观察信号x1,根据盲分离的步骤,利用EMD分离出imf信号[4,9,10,11,12]并完成步骤(1)。

根据图3的分层结果,按照步骤(2)对相关矩阵Rx奇异值分解[4,10],得到特征值矢量Λ=diag(λ1,λ2,…,λ11)根据特征值的数值利用BIC估计语音源数目为3,与提供的参考数据相符。在此基础上重新取用观察信号的本征函数的前两位并组成新的3维信号x=(x1,c1,c2)T。再将此3维信号进行FastICA盲分离[2,3,5],图4为分离后的信号。

运用相似系数来评估分离效果[1],定义为

yi=CSj时,C为常数,ξij=1;当yisj相互独立时,ξij=0。由式(5)可知,相似系数抵消了盲源分离结果在幅值尺度上存在的差异,从而避免了幅值尺度不确定性的影响。当由相似系数构成的矩阵每行每列都有且仅有一个元素接近于1,其他元素接近于0时,则可认为分离算法效果较为理想。

从分离系数看,结果比较理想。

4 结束语

文中采用贝叶斯准则估算出盲源数目,这为后面的工作做了铺垫,然后利用EMD分解为相同长度的IMF信号,对IMF信号和观察信号结合后再进行独立分量分析及筛选得到的源信号的估计。但研究过程中还存在一些问题,如采样率高低影响信号的包络完整性,当采样率提高时又影响迭代次数而增加运算量。

摘要:针对单通道语音信号盲分离的问题,结合盲源分离和经验模式分解的优点,提出了一种基于经验模式分解的单通道语音信号源数估计和盲源分离方法。对语音混合信号进行经验模式分解,利用贝叶斯算法估计语音源数目,根据源信号数目重组多通道语音混合信号,并采用独立分量分析实现语音信号的盲分离。仿真实验表明,使用此法能有效地估计通道语音信号源数和分离盲源。

本文来自 360文秘网(www.360wenmi.com),转载请保留网址和出处

【语音分离】相关文章:

粤语语音与英语语音的比较探究09-11

歪歪语音(YY语音)详细使用教程04-27

分离诗歌05-31

分离制备05-01

分离定律05-01

分离机理05-11

毒株分离05-13

临床分离05-18

四分离06-03

泡沫分离06-11

上一篇:财政廉政风险下一篇:企业数据安全管理