基于ICA的语音分离技术.

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

通信工程课程设计文档

基于ICA的语音分离技术

本项目主要研究的是低噪声环境下基于ICA的语音分离技术。大致可以将我们的项目分为以下几个内容:

1、语音信号的输入;

2、语音信号的混合处理;

3、混合信号的中心化;

4、混合信号的白化;

5、FASTICA算法;

6、解混输出。

我们希望得到的最终结果是,将我们的输入的三个信号在经过混合和解混后以尽可能小的失真还原出来。

项目成员:

提交日期:

指导教师:

1、项目总结

1.1、设计动机

语音助手是一类可以通过语音交互来实现或替代部分我们在手机上的查询与操作的应用,通过此类应用,可以大大提高在不同场景下操作手机的便利性。现在的语音助手发展已经到了一个很高的位置,其中具有代表性三大语音助手是苹果公司的Siri语音助手、微软公司的Cortana和谷歌的Google Now。这些软件现在已经是在我们生活当中使用了,而语音助手中最重要的一环就是对用户输入的语音信号的识别。语音信号的采集比较简单,但是对语音信号的处理就是一项比较复杂的工作了。

语音信号处理是一门语音学和数字信号处理两个学科相结合的产物。它和认知学、心理学、语言学、计算机科学、模式识别和人工智能等学科有着紧密的联系。语音信号处理的发展依赖于这些学科的发展,而语音信号处理技术的进步也会促进这些领域的进步。

语音信号处理的目的就是要得到某些语音特征参数以便高效地传输或储存;或者是通过某种处理运算以达到某种用途的要求,例如人工合成语音、辨识出讲话者、识别出讲话的内容、进行语音控制等等。

1.2、问题分析

语音信号分离处理就是利用盲源分离(Blind Source Separation,BSS)技术对麦克风检测到的一段语音信号进行处理。混合语音信号的分离是盲分离的重要内容,目前的混叠语音分离大多是建立在低噪声环境中的混叠情形下,以BSS为主,根据信号的统计特性从几个观测信号中恢复出未知的独立源成分。

盲信号分离问题是信号处理中一个传统而又极具挑战性的课题。BSS是指仅从观测的混合信号(通常是多个传感器的输出)中恢复独立的源信号,这里的“盲”是指:

(1) 源信号是不可观测的;

(2) 混合系统是事先未知的。

本项目主要是基于独立分量分析(Independent component analysis,ICA)技术的盲源分离。基本思路是以非高斯信号为研究对象,在独立性假设的前提下,对多路观测信号进行盲源分离。在满足一定的条件下,能够从多路观测信号中,较好地分离出隐含的独立源信号。

1.3、需求分析

声音是人类从外界环境中获取信息的一个重要来源,如何对获取的声音进行加工处理显得尤为重要。对一个好的音频处理系统来说,应尽可能的还原出嘈杂环境中我们所需要的声音。然而在对获取的声音提取过程中,常常不可避免的会混进噪声,噪声可以理解为妨碍人的听觉器官或系统传感器对所接收的声源信息进行理解或分析的各种因素。

多年来,随着科技的发展,人们接收着大量的图像和声音信息,用传感器检测包含信息的信号,并通对这些信息进行加工来获得知识和改造自然的能力。然而传感器检测到的往往是多个未知成分混在一起的信号。在传感器检测方面人们一直追求对真实源信号的检测,新原理新方法新技术不断出现,如尽可能将传感器布置靠近源信号位置,采用多个传感器等措施来检测真实的源信号。由于检测到的信号是混合信号,因此对于有些情况(如公共场合信号等)中的真实源信号检测就更加困难。

所以就需要一种能够比较好的对收到的信号中的独立源信号分离的方法。我们这个项目进行的是初期的研究,也就是在理想的低噪声环境下来进行的模拟仿真实验。

2、系统设计

2.1、系统简介

本项目研究的是输入三个语音信号,然后通过混合这三个信号来模拟我们现实中的情景,达到我们一般的麦克风接收到的语音信号的情况。我们项目的重点是使用FastICA 算法来实现语音信号的分离,所以我们需要有信号的输入、FastICA语音信号分离和最终结果语音信号的输出。我们决定采用的MATLAB来进行仿真,因为我们比较熟悉的就是MATLAB仿真平台。

2.2、系统结构分析

首先在语音信号的输入方面,可以从简单的模型来研究,最后再推广到更加复杂的情况下来运用。因此在语音信号的输入方面我们采用了三个语音信号作为信号源作为输入,然后对其进行混合后再处理。

在混合三个语音信号方面是利用矩阵的方式将三个信号处理到一个矩阵中。再通过一个随机权矩阵与合并的信号矩阵进行乘,得出我们处理过的混合信号。对混合后的观测信号我们做ICA前的预处理。实际接收的数据是复杂而繁多的,其中包含有用信息和无用信

息,特别是传感器数量较多时,计算就很复杂,这时对观测数据进行预处理,能在一定条件下降低数据维数,减少后面处理的计算量。在ICA处理之前,通常先要对观测数据进行预处理,预处理主要有信号的中心化和白化。

信号中心化是将观测信号X减去其均值E{X},有X’=X-E{X}这样E{X’}=0,叫做信号X的中心化。在解混合之后,再将均值向量加回到解混得到的信号中去。

白化过程是对观测信号X实施线性变换到V,即V =MX,且使得E {VV’} =I,其中M 为白化矩阵。该变换仅仅是去掉了观测信号X之间的相关性。若要达到降维的作用,可对其协方差阵进行特征值分解,起到降维作用。

通过FastICA算法对预处理后的数据进行处理,对信号进行特征提取处理。

图1 快速ICA算法流程

(1)初始化w(0),令其模1,置k=1;

(2)期望值可由大量x向量的采样点

计算出来;

(3)用||w(x)||去除w(k);

(4)如果|w(k-1)|不是足够接近1,那么令k=k+1,返回第(2)步,否则输出w(k)。

2.3、系统层次

我们将采用自上而下的设计方法来实现这个系统的功能。本系统分为三层:(详细的系统结构会在下一节中具体介绍)

第一层:也就是顶层,是对系统整体结构的设计;

第二层:对其中的核心部分进行分解,分为几个功能模块;

相关文档
最新文档