为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > 基于matlab的语音识别

基于matlab的语音识别

2010-08-30 9页 pdf 321KB 146阅读

用户头像

is_314089

暂无简介

举报
基于matlab的语音识别 基于MATLAB的声波分析研究 许文仪 谷雨 指导老师:俞熹* (复旦大学物理系,上海,邮编 200433) 作者简介: 许文仪(1986~)男,籍贯上海,现就读于复旦大学物理系本科,2004级。 移动电话:13761735753;E- mail:niaotaiji@sohu.com。 谷雨(1986~)男,籍贯四川,现就读于复旦大学物理系本科,2004级。 移动电话:13636397638;E- mail:robert_gu@163.com。 指导老师简介: 俞熹 (1978~)男,讲师,籍...
基于matlab的语音识别
基于MATLAB的声波分析研究 许文仪 谷雨 指导老师:俞熹* (复旦大学物理系,上海,邮编 200433) 作者简介: 许文仪(1986~)男,籍贯上海,现就读于复旦大学物理系本科,2004级。 移动电话:13761735753;E- mail:niaotaiji@sohu.com。 谷雨(1986~)男,籍贯四川,现就读于复旦大学物理系本科,2004级。 移动电话:13636397638;E- mail:robert_gu@163.com。 指导老师简介: 俞熹 (1978~)男,讲师,籍贯上海,现任复旦大学物理系实验中心副主任。 移动电话:13585710010;Email:whyx@fudan.edu.cn。 l 摘要 Matlab是一款功能强大的数学软件,它附带大量的信号处理工具箱,如 sptool、fdatool、 wavelet、simulink工具箱等,为信号分析研究,特别是文中主要探讨的声波分析研究带来极 大便利。声音的特征可用声压强,频律等各种参数描述,文中主要探究声音在频率上体现出 的各种特性,并在此基础上在Matlab平台下对声纹识别技术做初步探索。 l 关键词 频谱分析,声纹识别,Matlab,Simulink,小波分析 l 中图分类号:TN912.3 Voice Analysis Based On MATLAB Wenyi Xu Yu Gu (Instructor:Xi Yu) (Physics Department of Fudan University,Shanghai China,Postcode200433) Authors Introduction: Xu Wenyi (1986~), Shanghai,China,E-Mail: niaotaiji@sohu.com Gu Yu (1986~), Sichuan,China, E-Mail: robert_gu@163.com Instructor Introduction: Xi Yu (1978~), Lecturer, Shanghai,China, E-Mail:whyx@fudan.edu.cn Vice Director of the physics lab center of Fudan University l Abstract Matlab is a powerful mathematic software with a mass of toolboxes dealing with signal processing, like ‘sptool’, ‘fdatool’, ‘wavelet’, ‘simulink’ etc. It gives a terrific shortcut to the research of signal processing,especially the wave analysis. We can characterize the sound with key parameters such as intensity, frequency etc. Our experiment is based on Matlab 7.0 to make a general research of the relations between voice and frequency. Besides, to have a simple exploration of the voice recognition is another target. l Keywords: frequency analysis, speech recognition, Matlab, Simulink, wavelet analysis l 正文 1.引言 Matlab原始程序于 20世纪 70年代中期由美国新墨西哥大学计算机系主任 Clever Moler 开发完成,于 1984 年由 Mathworks 公司推向市场。在 20 多年的发展过程中软件版本不断 更新,功能逐步完善,深受大学教师、学生及科研工作人员好评。Matlab 也成为数值计算 领域耳熟能详的名词,活跃在数值计算的各个舞台。 语音与自然界中存在的千变万化的声音的的本质差别,在于它本身的高度有序性和完美 的作为信息交流的媒体即意性。对语音特性的好奇激发了人们对语音的大量研究。在此基 础上语音识别技术在最近几十年中逐步发展起来,经历了从相对简单的有限集说话人身份识 别(也称为声纹识别)到开放集识别,进而到孤立词词义识别再到连续语音识别的发展过程, 是声学、语言学、信息处理技术等多门学科的交叉综合应用的典范。作为人工智能中人机交 互手段的首要实现步骤,语音识别及合成技术成为了近年的研究热点,也有不少实用化的技 术成果被商家成功推向了市场,让人们看到了它在 PDA、智能家电、工业控制等领域的广 阔发展前景。本文就结合 Matlab 优秀的数值计算能力及强大的信号处理功能,借助于对声 音的部分基本特征的研究,拓展Matlab在物理实验中的应用,并初步揭开语音识别的奥秘。 2.原理与背景知识 2.1 实验平台介绍: 在本实验中,基本上最主要的仪器为话筒、耳机与 pc机(另有定音器等发声工具),整 个实验平台建立在 Matlab 软件的基础上,使得信号的采集、分析与数据转换完全一体化, 并且利用Matlab各工具包的强大功能,还可以对数据进行即时的处理反送。由于Matlab各 个工具包往往采用了业界中最尖端的算法,因此相比与传统的实验方式,本实验不但在设备 搭建上方便易行,而且在数据处理方面更加快捷、精确。 以下是在本实验中主要采用的几个Matlab工具包 (1)Simulink工具箱 MATLAB附带的 Simulink工 具包具有强大而快捷的实时分析 功能,为语音信号的实时处理带来 便利。 图1为通过 simulink实现的信 号采集器。数据直接读入工作空 间。可实现波形实时显示,即时频 谱显示,即时回放等多项功能,是 本实验数据采集的主要平台。 (2)sptool工具包 对于已经采集的数据,可通过 Matlab 共有的工作空间导入至 sptool工具包,此间可以对信号时 域、频域进行更详细的分析:例如 图 1:simulink数据采集面板 选取某一段短时域部分发音,或者使用其内带的数字滤波器在频域中选取一段来发音,通过 反复挑选发音段,可以发现人声与频率、音节长短、衰减快慢的定性关系。 (3)封装子模块 当需要对大量的声音信号作快速处理时(如不同人的同一发音或同一发音人的不同语 言),此时可以先在 simulink中设计子模块:再利用子模块构建一个复杂系统,通过延迟线, 就可以使经过不同滤波处理的信号依次输出到耳机、音响等外设上。籍由这样连续的输出, 人耳就能更加清晰地便别出不同频率成分的影响。 可见,凭借 Matlab 强大的实时信号处理能力,只要在其中将程式模块组装完毕,就可 以将繁琐的仪器搭建、数模转换、信号分析等过程轻而易举地程序化,从而集中精力于研究 发声机理。 2.2 发声的生理机理与发声模型 对声音特别是人声的研究,首先得从人发声的基本规律开始。人的发音机理如图所示: 发音时由肺部收缩送出一股直流空气,经气管流至喉头声门处。在发声之初,声门处声带肌 肉收缩,声带并拢间隙小于 1mm,这股直流空气冲过很小的缝隙,使声带得到横向和纵向 速度,此时,声带向两边运动,缝隙增大,声门处压力下降,弹性复力将声带拉回平衡位置 继续趋向闭合,即声带振动,且具有一定的振动周期。[1] 为对发生模型作一个定性了解,考虑如图 4 的简化的一维模型。按以上发声机理,气 流上冲,获得一个特定的频率,在口腔中形成发射,最后由口部出射由于口腔中气体的速度 一定,故给定一个谐振动的话,可得相应波长为 f ×λ=ν,于是初态入射波的空间部分可表 达为:sin(k0x) 。 口腔是产生不同声音的重要部位,现用最简单的驻波模型,易知其本征态为: nsin( x)ω , ( nω 与 L 有关,实际中 L=L(x)),故驻波模式数与频率特征位置对应, n n n n n 2 2 vf , f n, n 1, 2, 3 L v 2L p p p l = = = × \ = × = Lω 。这就是声音频域图中产生基频与泛音的 原理。 初 态 t~0 , 有 n n 0 n 1 c sin( x) sin(k x)w ¥ = =å , 求 得 L L n n 0 n 00 0 c cos( k )xdx cos( +k )xdxw wµ - +ò ò , 2n| c | 即为对应频率为 nw 的振动频率波的 功率。由上式,仅当 n 0k 0w -  时,被积在 0~L的周期内才会有很大的值,否则由于 cos 函数的振荡性,积分值必不会很大。 2.3 采样与降噪 根据采样定理:一个连续变化的模拟信号,假设有最高频率或带宽 Fmax,若采样周期为 T,则采样频率为 F=1/T,若能满足 F=1/T>=2Fmax,即采样频率大于或等于模拟信号最高频 率的两倍,那么采样后的离散序列就能无失真地恢复出原始连续模拟信号[2]。为了同时兼顾 运算数据量的要求,试验中采用 44.1kHz采样率,16位数据。 在录音过程中,环境噪声和系统噪声将会对试验结果带来干扰,故需经过滤波预处理, 除去噪声干扰[3]。试验在无声试验室中实施,故环境噪声可略去。滤波可由滤波器实现,设 置中心频率为 50Hz 的带阻滤波器即可除去电流噪声对信号产生的影响。滤波器的设计在 Matlab中可由 fdatool或 sptool工具箱方便的实现。在命令行分别输入“fdatool”和“sptool” 即可分别进入二者工作界面。fdatool 工具箱能方便而快捷的完成滤波器的设计,并可保存 为 m文件方便调用。sptool是一个功能高度集成的工具箱,能实现信号的回放、滤波器设计、 fft等多种变换等多种功能[4]。 2.4 小波分析方法对语音识别的改进 在 matlab中重写 DTW等经典识别算法即可实现比较高精度的识别率。但这些算法由于 物理例外使用傅立叶变换直接处理信号,在其诞生之初本身即存缺陷。傅立叶变换在实现将 信号转换至频域进行处理时,其缺点是只能对全时域信号作分析,而作为瞬变的语音信号, 其瞬时特征得不到反映。针对这种不足,前人提出了可以提高辨识精度的的改进方法,如通 过加窗实现“短时变换”等,但仍然存在缺陷,主要表现在: 1.时频局域化是一次性的,即窗函数的形状和大小是固定的,不能敏感的反应信号的 突变。而突变恰好是语音信号的特征之一。 2.由于信号分析中的“不确定性”原理,高频部分时域相对窄,即需较高的时域分辨 率而较低的频率分辨率;而低频部分,时域相对宽,即需较高的频率分辨率而较低的时域分 辨率。 [5] 而小波变换恰能满足这些要求。它的窗宽随频率增高而减小,符合高频信号高时域分辨 率的要求。故笔者考虑在算法中引入小波变换作为作为尝试作为改进。 3.实验内容与数据分析 3.1 频谱分析方法及结果分析 语音感知过程与人的听觉系统具有频谱分析功能是紧密相关的。傅立叶变换为时域信号 的频域化分析提供了有力的数学工具。而更为重要的是 FFT(快速傅立叶变换算法)的出现, 大大降低了数据处理的计算量,为实际应用铺平了道路。在 MATLAB 中可以通过命令: z=fft(s).*conj(fft(s)),(fft为快速傅立叶算法)实现该变换。其中 s为信号序列,z为频率功 率谱。 人的声道和鼻道都是非均匀的声道管,声道管的谐振频率称为共振峰频率,或简称共振 峰。它与发音器官的确切位置和形状有很大关系,即共振峰和声道的形状与大小有关。经研 究,韵母音色差异可用前三个共振峰 f1、f2、f3表示,f1主要分布在 290到 1000Hz范围内, f2 主要分布在 500 到 2500Hz 范围内,f3 主要分布在 2500到 4000Hz范围内。[6] 实际中,声带对给定的 f是差不多的, 改变口腔的形状、舌的位置等,相当于调 整 n 0k 0w -  ,因此引起主极大位置的变 化。假定保持口腔位形几乎不变,多次发 音,实得图形中主极大位置几乎不变,次 极大位置也少有变化,两者高度对比的变 化也不大。由于人声带起振频率偏低,因 此频图中能量集中于低频段。见图 5,横 轴为频率,单位 Hz,纵轴为功率。 图 5:发声频谱 图 9:高频半峰宽 图 8:低频半峰宽 图 6 图 7 为两人同发“A”音时的频谱。可以看出,基频部分(小于 1000Hz)差异不 大,但高频部分的衰减有显著的差距,这和不同人的声带结构不同,导致谐波结构不同是一 致的。基于高频衰减行为随说话人改变而对应改变的特征,可作为声纹识别的初步。但 易受发声人身体条件等的影响,这也是声纹识别技术最大的缺陷,即可通过刻意模仿,自然 走音等状况产生漏判和误判[2]。 再考虑模型中时间部分 n if te- ,假定时间部分为延时达 2A 的谐波 nif te- ,则 n A i(f f ) n A n sin(f f )AF(f ) e dt f f - - - µ = -ò , 功 率 2 n 2 n sin (f f )A (f f ) - µ - , 半 峰 宽 n xf A D = 。 X为方程 xsin(x) 2 = 的解,故如 A为常数, nfD 不变。 实验得到的是高频率半峰宽显著增加,说明 A 随 n 的增加而减少,即高频段持续时间 减少。见图 8图 9。 图 7 图 6 图 10:峰的衰减现象 图 8 为中心频率为 193Hz 附近的基频,半峰宽(图中圆形 数据点之间)读数为 6.5Hz 左 右;图 9为中心频率 2790Hz附 近的共振峰中的一条主峰,半峰 宽(圆形数据点之间)读数为 17.3Hz 左右。可见随频率的增 高,半峰宽的增加是相当显著 的。 实验中还发现衰减并不是 单纯的 A 的减小,时间部分或 许是类似 e指数形的衰减因子, 如图 10 所示,考虑到模型比较 粗糙,故只能定性给出上述的一 些基本说明。 通过傅立叶变换还可方便 的读取发音源的频率,例如音 叉、乐器等,可以简便可行的拓 展 MATLAB在物理实验中的应 用。图 11 为定音器的三个基音 (分别以不同的颜色标示)的频 图,从主峰可方便的辨识频率。 高频谐波的存在与定音器的加 工工艺有关。 3.2 小波分析在语音识别中的应用研究 在Matlab中,小波分析可由“wavlet”工具箱实现,也可由命令行输入。分解过程如图 12,图中以 3层分解为例。返回值以图中存于工作空间。 在命令行键入“wavemenu”即可进入小波工具箱界面。单击“wavelet 1-D”即可进入 一维连续小波分析界面。小波函数种类繁 多,每一种都有自己的特性,最适函数需要 经验和反复试验寻求,不同的条件有不同的 选择[5]。为统一比较各种参数,笔者使用被 广泛应用的“haar”小波作为分解小波函数, 其函数形式为: {H 1, 0 x 1 / 2 -1,1 / 2 x 1 0, £ £ Y = £ £ 其他 ,其支集长度 为 1,滤波器长度为 2。 图 13和图 14中显示的分别是发“A” 音以“haar”小波做 8层分解的细节系数图 和对应的经 FFT变换至频域后的图形,随图 的序号增加,频带范围递增。 图 11:定音器频谱 A1 D1 原始信号 S A2 D2 C(D3) C(D2) C(D1) 信号长度矩阵 系数向量 A3 D3 S C(A3) 图 12:小波分解图 D2 A3 A2 A1 而我们更关心的是频域的结果,特别是高频部分细节系数变换的结果。根据发声原理, 低频部分标志着基音的特征,所以当不同的人发同样的音时(本实验中受试者都以正常方式 发“A”音),基频频谱峰值应大致相同,而不同的人由于声带构造不同,在基音大致相同 的情况下(都发同一个音),高频谐波的衰减将会有很大不同,体现在频谱上就是高频区频 谱差异显著,这是分辨不同人的特征之一。从此下面的图中我们可以看到以上预测是准确。 以上结果也可调用命令:[c l]=wavedec(s,N,n)实现。其中,c为分解得到的细节系 数;l为对应细节系数的长度;s为信号名称;N为分解层数;n为小波函数名。 图 15、16为同一人两次发声的结果。由于每次发声声带结构都会有细微不同,故两幅 图仍有细微差别,但可以看出图形具有较高的一致性,具有同样的分布特征。图 17、18为 不同人发声的结果。同时结合对比图 15或 16,可以看出,除坐标为[1,1](图片标号自上 而下)的图外,差别都是相当明显的,符合基音相同的要求。 图 16 图 15 图 14(横坐标为频率/Hz,纵坐标为 计算机的内部数据强度) 图 13 小波分解系数图 图 15-18 为采样数据运算结果,频率(Hz)的相对强度分布 经过采样对比,最后选用序号为[1,3],[2,1],[3,1],[3,2]的图形作为个人特征参 数的提取源。在封闭集(实验人数为 8人)中,可有效分辨说话人身份,正确率不小于 80%。 4.结论和展望 通过试验的探索,充分展示了 MATLAB强大而且专业的数值计算和信号处理能力。通过 对其附带的各工具箱的使用,及 simulink模块的快速实时开发,结合自由的程序编写,使 得一些原本复杂的数据处理过程变得快捷简便,大大提高了实验的可操作性能。MATLAB 提 供的强大的实时处理能力是信号处理特别是语音识别所梦寐以求的,结合软件提供的各类软 硬件接口和高级语言编写环境,为实验的展开提供了可靠的软硬件支持,展示了 MATLAB平 台在物理实验领域广阔的应用前景。 在笔者基于 Matlab 环境下实现的初步说话人识别实验中,小波变换表现出的在信号处 理中的强大优势,符合其在信号处理领域愈发受到人们重视的现状,为人们描绘了深入研究 其在语音识别中的应用的美好图景。在算法方面,试验可以考虑采用更为完善但同时更复杂 的 HMM(隐马尔科夫)模型等提高辨识的准确率。这些都对未来的研究方向提出了可行的 切入点。 l 致谢:本文获得复旦大学青年科学基金(EYH1512025)以及国家基础科学人才培养 基金(J0730310)资助,特此致谢 l 参考文献: [1]马大猷,理论声学,北京,科学出版社,2004 [2]王炳锡等,实用语音识别基础,北京,国防工业出版社,2005年 [3]王炳锡,语音编码,西按,西安电子科技大学出版社,2002年 [4]飞思科技产品研发中心,MATLAB7 辅助信号处理技术与应用,北京,电子工业出版 社,2003 [5]董长虹,Matlab小波分析工具箱原理与应用,北京,国防工业出版社,2004 图 18 图 17 [6]杨家沅,语音识别与合成,成都,四川科学技术出版社,1994年 [7]王沫然,MATLAB与科学计算,北京,电子工业出版社,2003年 [8]董泽、谢华等,小波变换模极大值消噪算法的研究,电力科学与工程,2005 ,No.3,12-16 [9]蒋文建、韦岗,一种多层子带的噪声语音识别新方法,数据采集与处理,2002.3, Vol.17.1 [10]Okawa S.Bocchieri E.Potamianos, A Multi-band speech recognition in noisy environments[C],ICASSP,1998,641~644.
/
本文档为【基于matlab的语音识别】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索