毕业设计(论文)-基于ICA算法的混合语音信号分离(29页).doc
-
资源ID:38983012
资源大小:1.44MB
全文页数:27页
- 资源格式: DOC
下载积分:15金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
毕业设计(论文)-基于ICA算法的混合语音信号分离(29页).doc
-毕业设计(论文)-基于ICA算法的混合语音信号分离-第 22 页学校代码: 10128学 号:200811204070 本科毕业设计说明书题 目:基于ICA算法的混合语音信号分离学生姓名:学 院:电力学院系 别:自动化系专 业:自动化(电厂热工过程控制及其自动化方向)班 级:自动化(电)08-1指导教师: 讲师二一二 年 六 月摘 要现阶段对语音识别、医学、生物、通信等领域中的盲源混合语音信号进行分离有着较高的要求。在任意环境下,会普遍遇到从多维信号源提取或分离出某一独立语音信号这种类似于“鸡尾酒会”的问题。这时,就迫切需要一种合理可靠的方法将观测信号分解为若干独立份。由于信号源是不可观测的,并不知道信号源是由哪些独立信号混合而成。正是,由于ICA算法建立在独立统计之上,适用于解决这种分离混合语音的问题。本文参考算法中独立统计的原则。建立信号源的目标函数,对目标函数进行预处理,运用负熵极大化法求出原独立信号向量的预估向量Y。ICA算法中的负熵极大化法具有使分离后的语音快速发散、信息极大化的特点。所以本文选择ICA算法中的负熵极大化法来分离混合语音。这就是使用ICA算法独立统计原则推断混合系统的独立源信号的基本原因。经过对实验仿真图与原独立语音图比较,实验得出如下结论:利用ICA算法处理盲源混合信号,分离后得到的独立语音清晰、准确、算法优化、方便快捷。关键词:独立分量分析;ICA算法;熵极大化法AbstractAt the present stage speech recognition at medicine, biology, communications and other fields for BSS(Blind Source Speech Separation)has an important position. Whatever the environment is,we need deal with something about separate independent voice from the unknow mixed voice. This situation is nearly “Cocktail party”.So,we need find a good way to solve this problem. As source is not observed, we dont know the source be made up by which independent signals . ICA algorithm is apply to solve the problem which mixed voice of this separation. This reference algorithm independent statistical principles to establish the source of the objective function. Pretreatment of the objective function, the use of negative entropy maximization method to calculate the estimated vector Y of the original independent signal vector. ICA algorithm in a negative entropy maximization method after the separation of voice rapid divergence, the characteristics of information maximization. Therefore negative entropy maximization method in the ICA algorithm to separate the mixed voice. This is the basic reason of the independent source signals using the ICA algorithm independent statistical principles to infer hybrid systems.Experimental results show that:using the algorithm of ICA (Independent Component Analysis) process the blind source mixed-signal.We can easy get an independent signal which is very clear, accurate, algorithm optimization and convenient.Keywords:Independent component analysis;Algorithm of ICA;Method of negative entropy maximization.目 录引 言1第一章 前 言21.1 ICA算法应用背景21.2 ICA算法的研究现状21.3 ICA算法的发展趋势21.4 研究任务与方向3第二章 ICA算法42.1 ICA算法的提出42.2 ICA算法的原理42.3 独立统计简介52.4 ICA算法的预处理72.5 负熵极大化法9第三章 仿真实验153.1 流程图153.2 仿真实验163.3 结果分析20总 结21参考文献22附 录23谢 辞25引 言在多语音源情况下,要求分离得到独立声音,即仿真人类语音的识别能力,“鸡尾酒会”就是典型的此类问题。现阶段许多有关多源声音处理的领域,对混合语音信号的分离提取都属于重点研究课题。最近几年盲源语音分离技术已经接近成熟。很多项目已经投入使用,例如我国就把这种技术使用在CDMA通讯中,用于改良语音信号传输的清晰度,实践证明可以得到非常理想的效果。通过改进算法和智能化的引入,现阶段已经能做到排除噪声干扰等外界环境因素对分离结果的影响。但是,还是有很多复杂的语音分离环境仅仅通过算法是无法解决的。进而说明虽然人类对盲源语音分离的研究已经迈出关键一步,但这仅仅只是个开始。我们还需要做更多的科学研究,来使技术更成熟,应用领域更广泛。因此,我们还要走很长的路。第一章 前 言1.1 ICA算法应用背景随着社会的进步,科技的发达,人民生活的需求,在很多领域都需要对盲源信号进行分离提纯。因此,为了解决此类问题,我们必须了解混合声音的特性,以便于我们找到合理有效的算法将独立语音声音按要求分离出来。由于ICA算法是基于独立统计基础之上,各个随机变量之间互不相干。基于负熵极大的ICA算法对此类盲源信号分离后的噪声小,与原独立语音信号相比较语音效果非常近似。正是由于这种对症下药的特点,面对盲源信号等分离问题,ICA算法是最合理的选择。1.2 ICA算法的研究现状上世纪90年代,国外学者利用大量数学算法和模型,例如:递归神经网络模型、独立分量算法、中心归一法等处理多个独立源混合信号的分离。各国学者通过大量的科学验证,ICA算法是处理盲源混合语音最有效的方法。本世纪以来,为了方便处理各个领域盲信号分离问题,许多种优化算法应运而生。但是算法有利有弊,算法间也很难得到统一处理。因此,学者们从不同的角度考虑这个问题。在算法上,BBS算法包括批处理算法与自适应算法;在准则上,又可以分为多种方法,例如:统一处理准则,寻求最优化准则,网孔模式化准则等。随着时代的发展,运用优化算法处理盲源信号已经趋于成熟,技术应用已经与人民生活息息相关。尽管我国对此类技术研究较晚,但在实际应用上已经获得很大进展。本文处于初级研究阶段,仅仅简要介绍一下有关盲分离的基础理论,对盲源分离技术的深层次了解请参照更多文献。很多国家已经把此类技术应用于军事侦查和间谍监听中,我国则大范围应用于提高通信质量,生物技术和民用方向。由北京科技大学研究开发的盲源语音甄别系统第二代升级版,已经试用于辅助公安机关侦破案件。这也间接证明我国对此类技术的广泛重视与开发应用。借此希望国家加大对此类技术各类基金的扶持,成立专门的科学研究小组。1.3 ICA算法的发展趋势有需求就有问题,就有解决问题的方法应运而生。就如30年前学者为了处理“鸡尾酒会”问题应运而生的ICA算法。处理盲源语音信号的方法发展至今,经过改良已经应用于更广泛的领域。诸如国外马里兰大学和欧洲、日本的一些研究机构已经着手于运用此技术研究外太空声音、海上声纳监听识别系统和用于预测海洋地震的发生等。在生物领域也有望通过此类技术研究导致帕金森症产生的真实原因。目前,各国学者一致统一,ICA算法的研究中主要面对的问题有两个。一个是稳定性问题,另一个是收敛性问题。在未来的发展趋势下,力求对多维混合语音分离条件下的分离效果更准确;在多噪声环境下,排除噪声干扰的能力更强;获得独立语音信号更理想清晰。盲源分离技术将会朝着算法更优,分离效果跟明显,去噪效果更好,完全智能化等方向发展。1.4 研究任务与方向本文主要探讨ICA算法的基本理论,知道混合语音的特点,了解算法中处理独立信号的原理,了解ICA算法中负熵极大化算法的应用。运用matlab软件对算法进行编程,学会用程序表示矩阵方程和单独方程的方法。利用已编写程序对录制好的盲源混合语音信号进行语音分离。完成多种二维线型混合语音信号的分离,做好应对各种不确定因素导致仿真结果的不同,及时调整程序,观察仿真图,对比原独立信号与分离信号,找出误差,分析实验结果,得出正确的实验结论。第二章 ICA算法2.1 ICA算法的提出当人们寻求一种解决分离盲源混合声音的方法时,需要了解混合声音的特点。盲源混合语音的特点是由多个独立自主的语音信号所构成。因此,我们只要寻找一个可以解决处理独立统一的算法,就可以继续探讨下一步解决问题的方法。因此,学者们提出了ICA算法。图2-1就是类似此类问题的简图。 图2-1 盲源混合语音信号框图2.2 ICA算法的原理本文用这个公式模拟录音机录制的的多维混合语音信号,用公式来模拟每个独立信号,并且每个独立信号间是没联系的,从公式(1)可以看出,矩阵是由矩阵和A矩阵混合构成的: (2-1)A为混合矩阵。ICA算法关键在于假设一个独立统计的信号源,并且找到一个W矩阵对X矩阵进行解混。本课题里所涉及的混合矩阵A和源信号均未知,本论文介绍的算法就是要分离出每一个独立信号。通过上述方法,得到维输出向量,向量即为独立分量的预估,即,如2-2图示:图2-2经线性混合后的ICA模型由图2-2可知,通过公式(中各行各列仅存在一个元素)求解值,得到。需要找出确定矩阵的值,才能进一步解决问题。事实上未知,因此无法确切的求出,但可以寻找一种方法求出的近似解。推理证明,得到公式,是源信号的线性组合,通过定可以证明的高斯性大于的高斯性。如果(式中的可作为单独的独立分量),这样做的目的是寻找最小高斯性区域,经过计算中各行各列仅存在一个非零元素,通过问题转化,就可以求能使非高斯性最大的来解决。ICA算法最简洁的方法就是寻找最优解,找出最合适的目标函数(又称对比函数)通过最合适的算法求出的最优解。这样就可以认为ICA算法就是求出目标函数与寻找优化算法的过程。在明确目标函数的情况下,可以利用传统的最优化算法进行求解,目标函数的选取决定了算法的一些统计特性,例如算法收敛的速度和计算的稳定性是由优化算法所决定。 2.3 独立统计简介一、概念简介ICA算法的核心内容是独立统计。简要说明,在统计学上独立的定义由概率密度来定义,假定和是两个随机变量,和互不包含各自信息,如果他们的联合概率密度可按公式进行分解,和为和的边缘概率密度,则可以证明和是独立的。由大量实验和数据证明,在个随机变量条件下,上述定理依然成立,由此可以间接证明联合密度可用个随机变量的乘积来表示。二、独立性的随机变量的性质对于假定函数和,总有,正常情况下随机变量的概率密度无从知晓,仅仅从概率的角度来考虑独立问题是非常麻烦的,我们可以换一种角度来讨论独立的定义。依然假设两个随机变量和,如果公式成立,推导出和不相关,如果公式成立,并且(和R),就可以确切的推导出和是统计独立的。综上所述,假设的和独立,那么和一定不相关;同理可证,假设的和不相关,那它们却不一定是独立的。最终讨论出来的结果证明,上述两种方法表达的意思相同,第一种从定义出发,有很强的严谨性,依赖于数学计算和公式推导,但也存在着很强的局限性,不方便初学者对其综合性计算;第二种的核心讨论问题是“相关性”理论的考虑,相关性使独立概念浅显易懂,更适合初学者理解。三、ICA模型中的几个限制条件:(1) 必须确保信号源之间相互独立;(2) 在诸多源信号、之中最多只有一个正态(高斯)分布, 本来分离高斯信号就是一个病态问题,而且混合后的高斯信号依旧以高斯信号形式表现;(3) 仿真过程中观测信号的数量要源信号的数量,即,当时,矩阵为不可逆矩阵,在这种情况下不可能分离出源信号或者是非常困难的分离出来,大多数的情况下应该取;(4) 需要注意的是:本文要求混合矩阵必须是列满秩的矩阵,并且程序设计中取为非奇异方阵。正常情况中,提取的盲源声音中都包含噪声。为了使问题处理简单化,本轮文涉及的盲源混合语音是在非常安静的环境下录制的,可以近似认为忽略噪声带来的的影响。四、ICA算法中存在的不确定因素:在求解时,我们可以通过不同的方法,得到不同的结果,所得到的解也不是唯一的,下面主要谈论几种常见解W矩阵的小方法:(1)还原法:信号源属于盲源信号,信号的幅度是任意的,导致仿真结果图与原独立信号图存在幅度不同的问题。因此在计算时,由于和确切数值并不知道,但是本文通过将中分量扩大倍,在求解W解混矩阵时,仅仅把中对应的混合系数除以,就可以轻易求出W矩阵。运用这种方法可以在确保观测信号幅度不变,排出源信号存在的不确定因素。(2)排序混乱法:联系上文,可知和矩阵都未知,而且在不知道盲源语音信号的前提下,不可能按照人们的意愿先分离出哪个声音,再分离出哪个声音。通常情况下分离出的独立语音都是没有顺序的。但本文将置换矩阵和它的逆矩阵插入在中,经计算可以求得,作为一个新的混合矩阵,起到保持语音有序性的原则,这样程序就可以通过所有分量完成分离独立语音顺序的的任务,得到理想有序的独立分离语音。综上所述,尽管以上谈到这两点问题虽然对信号特征分析起不到太大影响,但是本文力求对最终结果的稳定性、清晰性有序性达到一个合理的设计。还是考虑了信号的主要特征。正是因为信号的波形与幅度,排序无关。因此,在独立分量的求解中,通常情况下设矩阵存在单位方差,并且把S中各分量的均值都看作是零,用公式表示为: , (2-2) ICA算法的目的是要分离盲源语音信号,通过大量实验证明,作为一种新的盲源分离技术,独立分量分析算法在特定条件下,可以有效的将多维盲源语音混合信号进行分离提纯,最终获得清晰、准确的独立信号源。2.4 ICA算法的预处理为了减少噪声和存在的一些潜在病态问题。本文撰写过程中对ICA进行了预处理。ICA预处理应该分两步进行:中心化和白化。对混合矩阵X进行ICA预处理可以大大提高分离结果的准确度,减少程序编写时的工作量,提高了ICA算法的工作效率。为了高效的完成混合语音分离,在论文编写和程序设计中对ICA的预处理是最关键,且必不可少的步骤。通过实验结果可以看出,ICA算法经过预处理后,使程序设计变得更简洁明了,使问题更简单化。一、中心化:中心化就是要要对原始混合语音矩阵X进行处理,利用X减去平均值,为期望,本文取作平均值,用公示表达: (2-3)此时,=0。二、白化:白化法是ICA预处理的核心步骤。白化需要做的工作是把原信号X进行线性变,得到一个新的向量Z。并且向量各个分量之间没有任何瓜葛,然后得到的协方差矩阵:,此矩阵是单位矩阵。向量以空间白色的形式表现出来,这就是“白化”说法的由来。白化很形象的表现出Z向量的特点。通过白化,我们可以很形象的了解处理后向量的规律。方便进行下一步的工作。为了更好的实现白化过程,本文采用了奇异值分解法。通过学习概率论可知,N维随机变量协方差矩阵可用:表示,其中: , (2-4)因为,所以,通过矩阵概念了解到,语音信号的协方差矩阵可分解为: (2-5) (5)式中存在的矩阵是由这个特征向量的正交矩阵所构成,使公式成立。是由特征值的对角阵组成。最终确定白化公式为: (2-6)令作为白化矩阵,由此可以推导出上式是由公式: (2-7)推导出来的。已知ICA线性模型: (2-8)对语音信号矩阵白化处理结束后,由(2-8)式知,向量和都成为白化矩阵 (2-9)上式中的属于正交变换。白化预处理结束后,工作量大大减少,减少量大约为原工作量的50%。这样就可以从寻求正交矩阵B的方法去处理ICA算法上的问题。矩阵的自由度从减少到 ,方便程序的运行和计算。注意:跟语音信号有关的实验中避免不了噪声产生的影响。在深层次研究ICA的过程中,可以借鉴PCA方法来减少协方差矩阵中没有用的较小特征值,力求排出噪声影响实验结果的目的。但是在本实验中,只是要求运用算法实现混合语音的分离,达不到那么高的要求。在此只作简要介绍。本实验中可以根据实际需要对观测信号进行降维,也可达到减少工作量的目的。2.5 负熵极大化法一、负熵极大化法公式推导:本文对于混合语音的处理主要运用ICA算法中的负熵极大化法。负熵的定义是:熵函数的负向变化量,即熵减。由于混合语音X是随机变量,熵正好可以表述随机变量的不确定因素,本文对随机变量的熵定义可分为如下两个公式:离散随机变量用下式表示: (2-10)连续随机变量用下式表示: (2-11)通过公式(2-10)和公式(2-11),可以知道熵从始至终都必须是非负的,可以表示为,由此可以得出结论:面对明确存在的事件或零概率事件的熵为零。讨论完上述问题,设两个连续型随机变量,对于联合熵的定义式如下: (2-12)然后给出两个条件熵和的定义: (2-13) (2-14)表示对x观测结束后, 中所剩余不确定因素的大小,同理,表示对y观测结束后,x中所剩余不确定因素的大小。联合熵用表示,、用来表示条件熵,、则表示边缘熵,得出其关系式如下: (2-15)正常情况下,熵越大,随机变量就存在更大的不确定性,这是负熵极大化法中重要的特点。所以要使ICA算法中不确定因素降到最低点,就要考虑熵的问题,可见对于本文所处理的问题,熵越小越好。下面本文重点讨论等方情况下差随机变量熵的特点。最大熵定理规定:当任意一个随机变量满足高斯分布时,熵可以取近似最大值。根据这条定理,本文采用负熵理论来弄清楚任意分布与随机高斯分布之间存在的不相同问题。首先假设与的均值和方差都一样,负熵的公式如下: (2-16)由公式(2-16)得,负熵的值总永远都只是非负的。但也在特殊条件下,例如为高斯分布时,负熵只能为零。下面介绍一个有关于负熵的性质:在一切可逆线性变换过程中,要求负熵的数值必须不可以变化。这样从统计角度特性可以得出,统计随机变量的非高斯性,用负熵的定义来考虑问题是目前最好的方法,也是使用最普遍的方法。就算负熵有他合理的判断不确定性,也依然存在一些缺陷。本文尽最大努力做好问题全面性的考虑。负熵计算中不可避免要对随机变量的概率密度进行预测判断。经验告诉我们,对概率密度进行随意的预测判断是不合理的。预测判断是否具有可行性,主要取决于参数选取的正确性。本文还考虑到抛去计算大的问题不谈,只对对负熵的预测判断一项要做的工作量,就需要大量的实验去验证。这不仅仅是本次仿真实验的一个难点,更是一个较为棘手的问题。但本文必须要找到行之有效的计算方法,来解决以上难题。下面我们就开始寻找这种计算公式,任意给出随机变量的均值和方差,用下式表示负熵近似计算公式: (2-17)对于上式,还是有不合理处值得指出,现在讨论的问题要尽量避免使用随机变量,可是上式出现了随机变量的函数值,这里有很多不稳定的因素存在,这样避免不了对负熵的预测判断产生影响,使负熵处于波动状态。更严重的是,上式对负熵的近似精确度估计较弱,面对随机采集语音信息分离效果并不会理想。这也是通过对大量随机样本的实验得出的经验结论。然后本文在讨论另一种基于最大负熵法的预测判断,介绍这种方法的目的是为了寻找出比(2-17)式精确度更准确的办法来解决不确定性的问题,计算公式为: (2-18)公式中的是非负常数,用来表示标准的高斯随机变量,的均值为零且存在单位方差。假定上文提到的随机变量存在,本文设定一个值,y的均值为零且存在单位方差。设代表任意一种二次函数的形式,本文给出常见的三种二次函数供编程过程中验证使用。三种函数公式如下: (2-19) (2-20) (2-21)其中,(2-19)式属于万能二次函数;(2-20)式适用于独立分量为超高斯分布和收敛性能有较强的要求;对亚高斯独立分量的误差值不必精确估测时应该使用公式(2-21)。在二次函数中,也存在特殊情况,例如时,负熵可近似表示为: (2-22)由(2-22)式和得到负熵的近似二次函数表达式为: (2-23)前面已经讲过,本文主要核心问题是求解混矩阵,目的是让函数达到最大。正好印证了负熵极大化法中的“极大”含义。至此,我们所要做的主要工作已接近尾声。剩下的只是要处理一些细节问题。当时,得到以下公式: (2-24)经过推导证明,得到以下公式: (2-25)根据定理求解此目标函数的最优解,对求导得: (2-26)其中是常数,是的倒数。若,则,是使最大的。令得到一个矩阵表示成: (2-27)是白化处理后的向量, (2-28) (2-29)根据,把(2-29)式中第一式两端同时乘以得到以下公式: (2-30)通过以上的介绍,可以将ICA算法中负熵极大化法求解迭代步骤总结如下:首先利用公式对目标混合语音信号X进行预处理;其次,是处理后的起始值,令;然后整理值,得到公式: (2-31) 接下来进行归一整合处理,得到下式: (2-32)再次考虑算法的收敛性,如果不收敛,就继续迭代,知道收敛为止;最后得到收敛结果,就可以求出独立分量的数值。经过各种公式推导,终于得到了独立分量的数值。基于此种方法,可以进一步讨论到提取多个独立分量的问题上来。在实际实验过程中,仿真图出现多次与原独立语音图不相似的情况。经过分析,很大原因是由于迭代时,公式运算过程中去近似值,造成仿真结果的近似。因此,考虑到迭代后与前面求得的个权值向量的收敛性和方可能产生相同的方向,本文采用分离矩阵与已求得的分离矩阵向量相互正交的办法来消除这种疑虑。这样,在对新向量迭代过程中,要充分做好近似值取值过程等工作,得到计算公式如下: (2-33)考虑对于目标函数: (2-34)本文还可采用共扼下降法求解混合矩阵,但是此算法的收敛速度只能达到二阶,对于(2-34)式所示目标函数还可用梯度法进行求解得迭代公式为: (2-35)二、ICA算法下负熵极大化法的特点:第一,二次方收敛速度极快,即以做到稳、准、快;第二,收敛性能非常理想,没有过于复杂的计算过程;第三,收敛最次数高,包含信息量巨大,可以同时处理多维独立分量;第四,负熵极大化法没有步长参数,简化运算步骤。三、ICA算法中负熵极大化法的缺点与不足:(1)在实际计算过程中,只能选择样本的平均值来代替方差,这与理论上存在很大的差异,间接增大了计算的复杂性和计算量。本文在面对这种情况下,只能调节采样点数以达到控制计算量的目的,但最终的仿真图效果不是非常理想。这也留给后续研究者可创新的研究项目。鉴于水平有限,只能在符合运算简洁化的前提下,配合整个仿真图象征性的进行试验对比。(2)由于迭代过程中独立分量和源信号间存在符号不确定性问题,而且在算法中需要判断迭代的收敛性,在迭两次后和的正负号仅代表方向,但在计算过程中,却很难排出正负的影响,进而影响收敛性。所以需要强调的是,在ICA算法中,尽可能选择能收敛的初始值,随机选择可能导致结果不收敛,符号不确定,以至于实验结果偏差过大。小结:本章是本次设计的关键,一切实际问题将在本章完成,从算法的目的,到预处理,再到最优算法的选择。都对最后实验结果产生直接的作用。本章也是ICA算法实现盲源混合语音分离的核心,盲源混合语音的特点就是不管你是有多少个独立语音合成的,每个独立语音必然有自己独特的波形特点。就要寻求一种分离这种独立混合声音的方法。ICA算法正好从概率论的角度讨论独立统一问题的方法,从理论上解决了此类问题。接下来,本文就开始对仿真实验效果进行验证。第三章 仿真实验通过上一章的介绍,利用负熵极大化法,对二维混合语音信号进行分离,运用matlab仿真,通过仿真图与原独立语音图比较,验证试验的准确性。3.1 流程图本文采用的是ICA算法中非高斯性负熵极大化方法对混合语音信号进行分离。设计所选用的函数式为第二章中的公式,其导函数为,二阶导函数为,式中,为方便取a1=1。算法总流程图如图3-1所示,负熵极大化法流程图如3-2所示。初始化录制语音线性混合语音中心化白化FastICA算法结束Y=WT.S图3-1 算法总流程图N归一化W白化后X迭代W是否相关?去相关是否收敛?YYN初始化权值|W|=1结束图3-2 负熵极大化法流程图3.2 仿真实验一、实验一:录制两女声语音sig1和sig2,这两路语音信号是在11025Hz的采样频率下录制的,如图3-3所示。将这两路语音信号按比例进行线性混合,如下式所示: (3-1) (3-2)从而得到模拟实际采集的混合语音信号,对此混合信号进行预处理(即中心化和白化处理得到矩阵X),然后根据白化后的矩阵X,运用负熵极大化法迭代寻找解混矩阵W,最后利用Y=WTS即可得到独立分量Y,利用负熵极大化法分离的结果如图3-3。图3-3 两女声混合语音分离实验一分离的语音信号在波形上能基本保持了原始信号的波形,从图3-3可看出在幅值上有差别不大,分离效果很好。从仿真误差图可以看出误差不是很大,误差值在允许的范围内。实验一验证了,在安静环境下,ICA负熵极大化法可以清晰,快速的分离二维混合语音,只迭代了3次就得到仿真实验图。二、实验二:在同样安静的环境下,以11025Hz的采样频率下录制两段独立声音源。将这两路语音信号按比例进行线性混合,得到以下两式: (3-3) (3-4)图3-4 两独立语音的混合和分离从而得到模拟实际采集的混合语音信号,对此混合信号进行预处理(即中心化和白化处理得到矩阵X),然后根据白化后的矩阵X,运用负熵极大化法迭代寻找解混矩阵W,最后利用Y=WTS即可得到独立分量Y,利用负熵极大化法分离的结果如图3-4div1和div2。 实验二使混合声音中一个人的声音极弱,弱到人耳几乎不可辨别的程度,另一个人的声音清晰可辨,使其变成一个人为混合的2*2矩阵。通过图3-4中err1和err2两幅误差图分析得到原语音信号与分离语音信号在振幅上基本一致,仿真误差在允许范围内波动。且实际分离的混合语音信号在听觉上和原始信号基本一致,几乎不失真。由实验二可得出结论:分离语音信号在波形上能很好的保持了原始信号的波形,几乎不可辨别的语音可被清晰的分离出来,且分离效果很理想。实验只需要迭代3次就可以迭代出语音信号,收敛速度快。因此,利用基于负熵极大化法能很好的分离这两个语音信号。三、实验三:同实验二,在相同且安静的环境下,以11025Hz的采样频率下录制两段独立声音源。将这两路语音信号按比例进行线性混合,如下式所示: (3-5) (3-6)从而得到模拟实际采集的混合语音信号,对此混合信号进行预处理(即中心化和白化处理得到矩阵X),然后根据白化后的矩阵X,运用负熵极大化法迭代寻找解混矩阵W,最后利用Y=WTS即可得到独立分量Y,利用负熵极大化法分离的结果如图3-5中div1和div2所示。图3-5 两独立语音的混合与分离实验三是通过人为混合使验证实验二中不清晰的声音变得清晰可辨,而其清晰可变的声音则变成了不可辨别的语音。则通过仿真实分离实验图3-5比较。得出与与实验一相似的结论。实验二结合实验一验证出:在相同环境下,同样的混合语音,在不同的可辨独立语音下,可以通过ICA算法分离得到清晰可辨的独立语音信号。但通过误差分析图还可看出本次误差相比实验一中的误差较大。这是由于:第一,这两个语音信号比较接近,同一种语音信号出现的概率比较多,所以系统不能很好地准确地做出判断;第二,受噪音和人为设定误差值造成此分离效果。但通过加上滤波,会减小以上原因产生的影响,效果就会更理想。但误差还是在允许范围内,分离的语音信号在听觉上和原始信号依然一致,效果依然理想,没有明显失真效果,同样只需要迭代1次就可以迭代出语音信号,收敛速度也比较快。3.3 结果分析本文主要探讨混合语音分离后的效果受否理想。不论初始混合语音是什么状态。达到最终能清晰可辨的分离出俩种原始独立声音的实验目的。通过仿真实验图比较我们可以看出,分离后的独立语音信号,与原独立信号振幅相似。在初始阶段也存在不相关振幅点现象。这很可能是因为语音录制环境有噪声引起的,因为实验初期已经介绍过,假设的语音录制环境是绝对安静,无噪声的。因此,可以认为分离效果接近理想,达到预期要求。总 结 本文利用ICA算法中的负熵极大化算法对非高斯性盲源信号X进行分离,在对非高斯信号预处理过后,使盲源信号X的非高斯性达到最大,这样有利于实验结果的得出。经过对实验仿真图与原独立语音图比较,毕业设计实验得出如下结论:利用ICA算法处理的盲源混合信号,分离语音清晰、快捷。通过人为调节初始值,可以避免不收敛的情况发生。实验本身就是模仿“鸡尾酒会”的,在有很多人说话并且语音强弱不一样等实际情况下,为了更好的验证这个算法,录制了两个通道的语音信号,仿真结果在波形上误差相对不大,但是在听觉上除了有点噪音外基本能保持原语音信号,这种算法是一种基于概率密度最大化的,即负熵最大的分离算法。因此,通道语音信号越多,其分离越难,分离效果对初值的选取很敏感,随机选择的初始值有可能导致不收敛。在程序中如果加入滤波,滤除如在录制语音信号时产生的噪声,相信语音分离的效果会更好,由于时间的关系,这一部分的程序没有完成。本文根据ICA算法原理用负熵作为度量随机变量非高斯性的目标函数,它的最大化使随机变量的非高斯性达到最大,从而使输出的各个分量间相互独立。通过实验,可以看出基于负熵极大化法能够很好的分离线性混合语音信号,它的主要优点:1、算法简单,计算量比较少,迭代过程中避免了计算各个独立分量的概率密度,也不需要计算信号的高阶统计量;2、负熵极大化法的收敛速度是二次方收敛,当独立分量对称时可达到三次方收敛,迭代次数一般不会超出四次就可以分离出混合语音;3、此算法适用于任何非高斯的信号线性混合的分离,可以通过选择不同的非线性函数,适当的非线性函数可以优化算法的性能。它的一个缺点是对初始值的选择较为敏感,随机选择的初始值有可能导致不收敛。如何选择初始值使该算法迭代确切的极少次数就能收敛,这是将要继续研究的问题。参考文献1赵立权.ICA算法及其在阵列信号处理中的应用研究D.哈尔滨工程大学博士学位论文.2009.2申丽岩,方滨,沈毅.基于负熵极大的独立分量分析方法D.中北大学学报.2005.3傅祖云.信息论-基础理论与应用M.北京电子工业出版社.2001.4钟静,傅彦.基于快速ICA的混合语音信号分离D.计算机与应用.2006.5胡津津.基于信息极大化的ICA混合语音信号盲分离算法的研究D.池州学院学报.2011.6洪英,韩周安.偏亚高斯语音信号有效分离ICA方法研究D.电子科技大学学报.2008. 7 M.G. Jafari , J.A. Chambers, D.P. Mandic,“A novel adaptive learning rate sequentialblind source separation algorithm ”J,Signal Processing,801-804,2004.8