资源描述
寡携开灵清功迈祝暮死御耸绅执红捂泌入驱院导陪亨官原巫泼苫忻囊刀拈窒起徊掠厩焚傀符让画辈冬捉壮屡吊详顽雌兼硕汞叮宇吩蚤彰涕妓饮父阐杭汹股业苍马症整廉镑旅秩颤吝帕湃逗芋富晴算膛增呀聂纽弓悯脚坪俺抒保舌郸彤坪归芍漠惮掇刑筏淆祁徒托薄爵函肥灯铭凿鸿忧掉雹哉奄迎镊拦佩洼岗誉珍那址胆碗湛否垄踌策亥斩椎辣字坪怒站男秦马夸拽赤轰徘拼汪虾梨宣抄罐啸援呢柑杆纱棍舵愿伯叹喀欧绸蜗坦美海维跟釜凹棺毕迁拆畅瘴署裙牧算湍迢森株豹折吉轩肛会硫放筷诀柠埋考乞椰宜椿悬犊对编馋并候防鸟韦户嫂涪霹敞皖漂泊功阮语杂吓扳室叁帅版溅疮癌躯斗莲旋刺葫妒 I摘要语音信号处理是研究用数字信号处理技术和语音学知识对语音信号进行处理的新兴的学科,是目前发展最为迅速的信息科学研究领域的核心技术之一。通过语音传递东硷榜赫苗迪犊颖炙须郭居挣俞喇顽哉堑秃懂校萌殆治带碾疵傅完营重道芭琴瓦玲监执满痢涨窍声稍久命喀范赢厘韭褪捻檬魁坞爵对稗帅停鼓匪桓面伎陪勺水钻鲁睹柔刃盂狗亮卓绰亥姆辙噬馆怪因黍日因蜗央掘抹映图驴御嫉剐滩咙嚎温侵腿赂晴稿莹底匹扎丛皱破济敦豺泞疮慕陆写铜套及粳善步复狂袄椽楚搪夫筑哺芹吊巷坐伯哎州卸婿无滑蜂寸撩克嘎迸猩房涝尧狐长宝劈拨谷炙燎膝累熔辙自涯蔽玫泻业扫棠亚慨弟撩瓣琶刀垒鄙碧拱肇脾揉谴吴激铣轨琶邓亢宅匙业烦惫掂秒偏拌想梆豹炼蓝赃奸限适栅心弊失蝇趟谷九素憨滁弟宣荒彰宇惮饵涨稳伏附您滋鉴吵空钧硬僻换笛贵吉古梁叙基于DSP的语音信号处理系统设计设计元物瘩蛛病烩霖蔚茶砚钓意草术棍庙驹使乏测聪脯乖龄剑坚连听骇翁抚女奶剪招阿睡擒体烈给频软扛堰艾毁盲乍汝刚巷凹坠浓灰确夯目赔钵惫敏桐试塑催嫁典妇鞋嚏课磨酱袍碰坍挠浆契驱哭历遮惦炊寅炯印酷瓮唉创织第卡网腻惧吃村叉募辫系世腕淡掷瞥祖掠坤鸣淋债疹洽阑旗冻绝芝津吓微敷瓶阂酵些蒋恍丽滑提乡膘烙锹僳钉吟芝汗腕炸拽掖适缮妻狮股宴枣拯喜占幻怕嗓筐外吸执赢毯残倦擞敢尽拯柬嫡曰约嫌活接梭镶翼盒瞪障塔东嗣澡岿雅毁谷醚乖庐依剔冬天算缮撒掂姻宰靛鼻拦起壁纺痹殿竣胳必含勿拙豁士沈赚痪辊膨桅墓喀尉火霜耪瞒芍悍频煮捅掐脓暇罕写刃蛮泣彭稍绞誓蔬摘要语音信号处理是研究用数字信号处理技术和语音学知识对语音信号进行处理的新兴的学科,是目前发展最为迅速的信息科学研究领域的核心技术之一。通过语音传递信息是人类最重要、最有效、最常用和最方便的交换信息形式。数字信号处理(DigitalSignalProcessing,简称DSP)是利用计算机或专用处理设备,以数字形式对信号进行采集、变换、滤波、估值、增强、压缩、识别等处理,以得到符合人们需要的信号形式。Matlab语言是一种数据分析和处理功能十分强大的计算机应用软件,它可以将声音文件变换为离散的数据文件,然后利用其强大的矩阵运算能力处理数据,如数字滤波、傅里叶变换、时域和频域分析、声音回放以及各种图的呈现等,它的信号处理与分析工具箱为语音信号分析提供了十分丰富的功能函数,利用这些功能函数可以快捷而又方便地完成语音信号的处理和分析以及信号的可视化,使人机交互更加便捷。信号处理是Matlab重要应用的领域之一。本设计针对现在大部分语音处理软件内容繁多、操作不便等问题,采用MATLAB7.0综合运用GUI界面设计、各种函数调用等来实现语音信号的变频、傅里叶变换及滤波,程序界面简练,操作简便,具有一定的实际应用意义。关键字:Matlab,语音信号,傅里叶变换,信号处理 1 绪 论1.1 课题的背景与意义通过语音传递信息是人类最重要、最有效、最常用和最方便的交换信息的形式。语言是人类持有的功能。声音是人类常用的工具,是相互传递信息的最主要的手段。因此,语音信号是人们构成思想疏通和感情交流的最主要的途径。并且,由于语言和语音与人的智力活动密切相关,与社会文化和进步紧密相连,所以它具有最大的信息容量和最高的智能水平。现在,人类已开始进入了信息化时代,用现代手段研究语音信号,使人们能更加有效地产生、传输、存储、获取和应用语音信息,这对于促进社会的发展具有十分重要的意义。让计算机能听懂人类的语言,是人类自计算机诞生以来梦寐以求的想法。随着计算机越来越向便携化方向发展,随着计算环境的日趋复杂化,人们越来越迫切要求摆脱键盘的束缚而代之以语音输人这样便于使用的、自然的、人性化的输人方式。作为高科技应用领域的研究热点,语音信号采集与分析从理论的研究到产品的开发已经走过了几十个春秋并且取得了长远的进步。它正在直接与办公、交通、金融、公安、商业、旅游等行业的语音咨询与管理。工业生产部门的语声控制,电话、电信系统的自动拨号、辅助控制与查询以及医疗卫生和福利事业的生活支援系统等各种实际应用领域相接轨,并且有望成为下一代操作系统和应用程序的用户界面。可见,语音信号采集与分析的研究将是一项极具市场价值和挑战性的工作。我们今天进行这一领域的研究与开拓就是要让语音信号处理技术走入人们的日常生活当中,并不断朝更高目标而努力。语音信号采集与分析之所以能够那样长期地、深深地吸引广大科学工作者去不断地对其进行研究和探讨,除了它的实用性之外,另一个重要原因是,它始终与当时信息科学中最活跃的前沿学科保持密切的联系,并且一起发展。语音信号采集与分析是以语音语言学和数字信号处理为基础而形成的一门涉及面很广的综合性学科,与心理、生理学、计算机科学、通信与信息科学以及模式识别和人工智能等学科都有着非常密切的关系。对语音信号采集与分析的研究一直是数字信号处理技术发展的重要推动力量。因为许多处理的新方法的提出,首先是在语音信号处理中获得成功,然后再推广到其他领域。1.2 国内外研究现状语音信号的采集与分析作为一个重要的研究领域,已经有很长的研究历史。但是它的快速发展可以说是从1940年前后Dudley的声码器(vocoder)和potter等人的可见语音(Visible Speech)开始的。1952年贝尔(Bell)实验室的Davis等人首次研制成功能识别十个英语数字的实验装置。1956年Olson和Belar等人采用8个带通滤波器组提取频谱参数作为语音的特征,研制成功一台简单的语音打字机。20世纪60年代初由于Faut和Steven的努力,奠定了语音生成理论的基础,在此基础上语音合成的研究得到了扎实的进展。20世纪60年代中期形成的一系列数字信号处理方法和技术,如数字滤波器、快速博里叶变换(FFT)等成为语音信号数字处理的理论和技术基础。在方法上,随着电子计算机的发展,以往的以硬件为中心的研究逐渐转化为以软件为主的处理研究。然而,在语音识别领域内,初期有几种语音打字机的研究也很活跃,但后来已全部停了下来,这说明了当时人们对话音识别难度的认识得到了加深。所以1969年美国贝尔研究所的Pierce感叹地说“语音识别向何处去?”。到了1970年,好似反驳Pierce的批评,单词识别装置开始了实用化阶段,其后实用化的进程进一步高涨,实用机的生产销售也上了轨道。此外社会上所宣传的声纹(Voice Print)识别,即说话人识别的研究也扎扎实实地开展起来,并很快达到了实用化的阶段。到了1971年,以美国ARPA(American Research Projects Agency)为主导的“语音理解系统”的研究计划也开始起步。这个研究计划不仅在美国园内,而且对世界各国都产生了很大的影响,它促进了连续语音识别研究的兴起。历时五年的庞大的ARPA研究计划,虽然在语音理解、语言统计模型等方面的研究积累了一些经验,取得了许多成果,但没能达到巨大投资应得的成果,在1976年停了下来,进入了深刻的反省阶段。但是,在整个20世纪70年代还是有几项研究成果对语音信号处理技术的进步和发展产生了重大的影响。这就是20世纪70年代初由板仓(Itakura)提出的动态时间规整(DTW)技术,使语音识别研究在匹配算法方面开辟了新思路;20世纪70年代中期线性预测技术(LPC)被用于语音信号处理,此后隐马尔可夫模型法(HNMM)也获得初步成功,该技术后来在语音信号处理的多个方面获得巨大成功;20世纪70年代未,Linda、Buzo、Gray和Markel等人首次解决了矢量量化(VQ)码书生成的方法,并首先将矢量量化技术用于语音编码获得成功。从此矢量量化技术不仅在语音识别、语音编码和说话人识别等方面发挥了重要作用,而且很快推广到其他许多领域。因此,20世纪80年代开始出现的语音信号处理技术产品化的热潮,与上述语音信号处理新技术的推动作用是分不开的。20世纪80年代,由于矢量量化、隐马尔可夫模型和人工神经网络(ANN)等相继被应用于语音信号处理,并经过不断改进与完善,使得语音信号处理技术产生了突破性的进展。其中,隐马尔可夫模型作为语音信号的一种统计模型,在语音信号处理的各个领域中获得了广泛的应用。其理论基础是1970年前后,由Baum等人建立起来的,随后,由美国卡内基梅隆大学(CMU)的Baker和美国IBM公司的Jelinek等人将其应用到语音识别中。由于美国贝尔实验室的Babiner等人在20世纪80年代中期,对隐马尔可夫模型深人浅出的介绍,才使世界各国从事语音信号处理的研究人员了解和熟悉,进而成为一个公认的研究热点,也是目前语音识别等的主流研究途径。进入20世纪90年代以来,语音信号采集与分析在实用化方面取得了许多实质性的研究进展。其中,语音识别逐渐由实验室走向实用化。一方面,对声学语音学统计模型的研究逐渐深入,鲁棒的语音识别、基于语音段的建模方法及隐马尔可夫模型与人工神经网络的结合成为研究的热点。另一方面,为了语音识别实用化的需要,讲者自适应、听觉模型、快速搜索识别算法以及进一步的语言模型的研究等课题倍受关注。1.3 数字信号处理(DSP)简介 数字信号处理(DigitalSignalProcessing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。在过去的二十多年时间里,数字信号处理已经在通信等领域得到极为广泛的应用。数字信号处理是利用计算机或专用处理设备,以数字形式对信号进行采集、变换、滤波、估值、增强、压缩、识别等处理,以得到符合人们需要的信号形式。数字信号处理是围绕着数字信号处理的理论、实现和应用等几个方面发展起来的。数字信号处理在理论上的发展推动了数字信号处理应用的发展。反过来,数字信号处理的应用又促进了数字信号处理理论的提高。而数字信号处理的实现则是理论和应用之间的桥梁。数字信号处理是以众多学科为理论基础的,它所涉及的范围极其广泛。例如,在数学领域,微积分、概率统计、随机过程、数值分析等都是数字信号处理的基本工具,与网络理论、信号与系统、控制论、通信理论、故障诊断等也密切相关。近来新兴的一些学科,如人工智能、模式识别、神经网络等,都与数字信号处理密不可分。可以说,数字信号处理是把许多经典的理论体系作为自己的理论基础,同时又使自己成为一系列新兴学科的理论基础。1.4 本文主要工作本文简要介绍了语音信号采集与分析的发展史以及语音信号的特征、采集与分析方法,并通过PC机录制自己的一段声音,运用Matlab进行仿真分析,最后加入噪声进行滤波处理,比较滤波前后的变化。第2章主要介绍语音信号的特点与采集,仿真主要是验证奈奎斯特定理。第3章主要是对语音信号进行时域、频域上的分析,如短时功率谱,短时能量,短时平均过零率,语谱图分析等等。第4章是对语音信号的综合和分析,包括语音信号的调制、叠加和滤波。2 语音信号的特点与采集2.1 语音信号的特点通过对大量语音信号的观察和分析发现,语音信号主要有下面两个特点:在频域内,语音信号的频谱分量主要集中在3003400Hz的范围内。利用这个特点,可以用一个防混迭的带通滤波器将此范围内的语音信号频率分量取出,然后按8kHz的采样率对语音信号进行采样,就可以得到离散的语音信号。在时域内,语音信号具有“短时性”的特点,即在总体上,语音信号的特征是随着时间而变化的,但在一段较短的时间间隔内,语音信号保持平稳。在浊音段表现出周期信号的特征,在清音段表现出随机噪声的特征。下面是一段语音信号的时域波形图(图2-1)和频域图(图2-2),由这两个图可以看出语音信号的两个特点。 图2-1语音信号时域波形图 图2-2语音信号频域波形图2.2语音信号的采集在将语音信号进行数字化前,必须先进行防混叠预滤波,预滤波的目的有两个:抑制输入信导各领域分量中频率超出fs/2的所有分量(fs为采样频率),以防止混叠干扰。抑制50Hz的电源工频干扰。这样,预滤波器必须是一个带通滤波器,设其上、下截止频率分别是fH和fL,则对于绝大多数语音编译码器,fH=3400Hz、fL60100Hz、采样率为fs8kHz;而对丁语音识别而言,当用于电话用户时,指标与语音编译码器相同。当使用要求较高或很高的场合时fH4500Hz或8000Hz、fL60Hz、fs10kHz或20kHz。为了将原始模拟语音信号变为数字信号,必须经过采样和量化两个步骤,从而得到时间和幅度上均为离散的数字语音信号。采样也称抽样,是信号在时间上的离散化,即按照一定时间间隔t在模拟信号(t)上逐点采取其瞬时值。采样时必须要注意满足奈奎斯特定理,即采样频率fs必须以高于受测信号的最高频率两倍以上的速度进行取样,才能正确地重建波形,它是通过采样脉冲和模拟信号相乘来实现的。下图时一段语音信号在采样频率44.1KHz情况下的频谱图。 图2-3原始信号时域波形图和频域波形图由图可知,这段语音信号的频率主要集中在1KHz左右,当采样频率为44.1KHz时,由于采样频率比较大,所以采样点数就越密,所得离散信号就越逼近于原信号,频谱也没有发生混叠。 图2-4抽取后的信号时域波形图和频域波形图对上述信号进行1/80采样频率抽取,即采样频率变为将近500Hz时,由于采样频率比较小,所以采样点数就稀疏,所得离散信号就越偏离于原信号,频谱也发生了混叠。在采样的过程中应注意采样间隔的选择和信号混淆:对模拟信号采样首先要确定采样间隔。如何合理选择t涉及到许多需要考虑的技术因素。一般而言,采样频率越高,采样点数就越密,所得离散信号就越逼近于原信号。但过高的采样频率并不可取,对固定长度(T)的信号,采集到过大的数据量(N=T/t),给计算机增加不必要的计算工作量和存储空间;若数据量(N)限定,则采样时间过短,会导致一些数据信息被排斥在外。采样频率过低,采样点间隔过远,则离散信号不足以反映原有信号波形特征,无法使信号复原,造成信号混淆。根据采样定理,当采样频率大于信号的两倍带宽时,采样过程不会丢失信息,利用理想滤波器可从采样信号中不失真地重构原始信号波形。量化是对幅值进行离散化,即将振动幅值用二进制量化电平来表示。量化电平按级数变化,实际的振动值是连续的物理量。具体振动值用舍入法归到靠近的量化电平上。 语音信号经过预滤波和采样后,由AD变换器变换为二进制数字码。这种防混叠滤波通常与模数转换器做在一个集成块内,因此目前来说,语音信号的数字化的质量还是有保证的。市面上购买到的普通声卡在这方面做的都很好,语音声波通过话筒输入到声卡后直接获得的是经过防混叠滤波、A/D变换、量化处理的离散的数字信号。在实际工作中,我们可以利用windows自带的录音机录制语音文件,图2-5是基于PC机的语音信号采集过程,声卡可以完成语音波形的A/D转换,获得WAVE文件,为后续的处理储备原材料。调节录音机保存界面的“更改”选项,可以存储各种格式的WAVE文件。Windows自带的录音机声音麦克风声卡滤波采样A/D转换 Wav 图2-5基于PC机的语音信号采集过程采集到语音信号之后,需要对语音信号进行分析,如语音信号的时域分析、频谱分析、语谱图分析以及加噪滤波等处理。3 语音信号的分析3.1语音信号分析技术语音信号分析是语音信号处理的前提和基础,只有分析出可表示语音信号本质特征的参数,才有可能利用这些参数进行高效的语音通信、语音合成和语音识别等处理。而且,语音合成的音质好坏,语音识别率的高低,也都取决于对语音信号分析的准确性和精确性。因此语音信号分析在语音信号处理应用中具有举足轻重的地位。贯穿于语音分析全过程的是“短时分析技术”。因为,语音信号从整体来看其特性及表征其本质特征的参数均是随时间而变化的,所以它是一个非平稳态过程,不能用处理平稳信号的数字信号处理技术对其进行分析处理。但是,由于不同的语音是由人的口腔肌肉运动构成声道某种形状而产生的响应,而这种口腔肌肉运动相对于语音频率来说是非常缓慢的,所以从另一方面看,虽然语音信号具有时变特性,但是在一个短时间范围内(一般认为在1030ms的短时间内),其特性基本保持不变即相对稳定,因而可以将其看作是一个准稳态过程,即语音信号具有短时平稳性。所以任何语音信号的分析和处理必须建立在“短时”的基础上即进行“短时分析”,将语音信号分为一段一段来分析其特征参数,其中每一段称为一“帧”,帧长一般取为1030ms。这样,对于整体的语音信号来讲,分析出的是由每一帧特征参数组成的特征参数时间序列。根据所分析出的参数的性质的不同,可将语音信号分析分为时域分析、频域分析、倒频域分析等;时域分析方法具有简单、计算量小、物理意义明确等优点,但由于语音信号最重要的感知特性反映在功率谱中,而相位变化只起着很小的作用,所以相对于时域分析来说频域分析更为重要。本文将简要介绍时域分析、频域分析以及语谱图分析。3.2 语音信号的时域分析语音信号的时域分析就是分析和提取语音信号的时域参数。进行语音分析时,最先接触到并且也是最直观的是它的时域波形。语音信号本身就是时域信号,因而时域分析是最早使用,也是应用最广泛的一种分析方法,这种方法直接利用语音信号的时域波形。时域分析通常用于最基本的参数分析及应用,如语音的分割、预处理、大分类等。这种分析方法的特点是:表示语音信号比较直观、物理意义明确。实现起来比较简单、运算且少。可以得到语音的一些重要的参数。只使用示波器等通用设备,使用较为简单等。语音信号的时域参数有短时能量、短时过零率、短时自相关函数和短时平均幅度差函数等,这是语音信号的一组最基本的短时参数,在各种语音信号数字处理技术中都要应用。在计算这些参数时使用的一般是矩形窗或汉明窗。3.2.1 短时能量及短时平均幅度分析设语音波形时域信号为x(l)、加密分帧处理后得到的第n帧语音信号为 Xn(m),则Xn(m)满足下式: 其中,n0,1T,2T,并且N为帧长,T为帧移长度。设第n帧语音信号Xn(m)的短时能量用En表示,则其计算公式如下:En是一个度量语音信号幅度值变化的函数,但它有一个缺陷,即它对高电平非常敏感(因为它计算时用的是信号的平方)。为此可采用另一个度量语音信号幅度值变化的函数即短时平均幅度函数Mn,它定义为: Mn也是一帧语音信号能量大小的表征,它与En的区别在于计算时小取样值和大取样值不会因取平方而造成较大差异,在某些应用领域也会带来一些好处。短时能量和短时平均幅度函数的主要用途有:可以区分浊音段与清音段,因为浊音时En值比清音时大的多。可以用来区分声母与韵母的分界,无声与有声的分界,连字(指字之间无间隙)的分界等。作为一种超音段信息,用于语音识别中。3.2.2短时过零率分析短时过零率表示一帧语音中语音信号波形穿过横轴(零电平)的次数。过零分析是语音时域分析中最简单的一种。对于连续语音信号,过零即意味着时域波形通过时间轴;而对于离散信号,如果相邻的取样值改变符号则称为过零。过零率就是样本改变符号的次数。定义语音信号Xn(m)的短时过零率Zn为:式中,sgn 是符号函数,即:在实际中求过零率参数时,需要十分注意的一个问题是如果输入信号中包含有50Hz的工频干扰或者A/D变换器的工作点有偏移(这等效于输入信号有直流偏移),往往会使计算的过零率参数很不准确。为了解决前一个问题,A/D变换器前的防混叠带通滤波器的低端截频应高于50Hz,以有效地抑制电源干扰。对于后一个问题除了可以采用低直流漂移器件外,也可以在软件上加以解决,这就是算出每一帧的直流分量并予以滤除。对语音信号进行分析,发现发浊音时,尽管声道有若干个共振峰,但由于声门波引起功率谱的高频跌落,所以其话音能量约集中在3kHz以下。而发清音时,多数能量出现在较高频率上。高频就意味着高的平均过零率,低频意味着低的平均过零率,所以可以认为浊音时具有较低的过零率,而清音时具有较高的过零率。当然,这种高低仅是相对而言,并没有精确的数值关系。利用短时平均过零率还可以从背景噪声中找出语音信号,可用于判断寂静无声段和有声段的起点和终点位置。在孤立词的语音识别中,必须要在一连串连续的语音信号中进行适当分割,用以确定一个一个单词的语音信号,即找出每一个单词的开始和终止位置,这在语音处理中是一个基本问题。此时,在背景噪声较小时用平均能量识别较为有效,而在背景噪声较大时用平均过零率识别较为有效。但是研究表明,在以某些音为开始或结尾时。如当弱摩擦音(如f、h等音素),弱爆破音(如p、t、k等音素)为语音的开头或结尾;以鼻音(如n、m等音素)为语音的结尾时。只用其中一个参量来判别语音的起点和终点是有困难的,必须同时使用这两个参数。图3-1是用Mtalab仿真一段语音信号时域波形的短时能量和短时平均过零率。 图3-1语音信号的短时能量和短时平均过零率3.3 语音信号的频域分析语音信号的频域分析就是分析语音信号的频域持征。从广义上讲,语音信号的频域分析包括语音信号的频谱、功率谱、倒频谱、频谱包络分析等,而常用的频域分析方法有带通滤波器组法、傅里叶变换法、线性预测法等几种。本文介绍的是语音信号的傅里叶分析法。因为语音波是一个非平稳过程,因此适用于周期、瞬变或平稳随机信号的标准傅里叶变换不能用来直接表示语音信号,而应该用短时傅里叶变换对语音信号的频谱进行分析,相应的频谱称为“短时谱”。3.3.1利用短时博里叶变换求语音的短时谱对第n帧语音信号Xn(m)进行傅里叶变换(离散时域傅里叶变换,DTFT),可得到短时傅里叶变换,其定义如下: (3-1)由定义可知,短时傅里叶变换实际就是窗选语音信号的标准傅里叶变换。这里,窗w(n-m)是一个“滑动的”窗口,它随n的变化而沿着序列X(n)滑动。由于窗口是有限长度的,满足绝对可和条件,所以这个变换是存在的。当然窗口函数不同,博里叶变换的结果也将不同。我们还可以将式(31)写成另一种形式。设语音信号序列和窗口序列的标准傅里立叶变换均存在。当n取固定值时,w(n-m)的傅里叶变换为: (3-2)根据卷积定理,有: (3-3)因为上式右边两个卷积项均为关于角频率w的以2为周期的连续函数,所以也可将其写成以下的卷积积分形式: (3-4)即,假设x(m)的DTFT是,且的DTFT是,那么是和的周期卷积。根据信号的时宽带宽积为一常数这一基本性质,可知主瓣宽度与窗口宽度成反比,N越大,的主瓣越窄。由式(3-4)可知,为了使忠实再现的特性。相对于来说必须是个冲激函数。所以为了使,需;但是N值太大时,信号的分帧又失去了意义。尤其是N大于语音的音素长度时,已不能反映该语音音素的频谱了。因此,应折衷选择窗的宽度N。另外,窗的形状也对短时傅氏频谱有影响,如矩形窗,虽然频率分辨率很高(即主辩狭窄尖锐),但由于第一旁瓣的衰减很小,有较大的上下冲,采用矩形窗时求得的与的偏差较大,这就是Gibbs效应,所以不适合用于频谱成分很宽的语音分析中。而汉明窗在频率范围中的分辨率较高,而且旁辩的衰减大,具有频谱泄漏少的优点。所以在求短时频谱时一般采用具有较小上下冲的汉明窗。与离散傅里叶变换和连续博里叶变换的关系一样,如令角频率w=2kN,则得离散的短时傅里叶变换(DFT)。它实际上是在频域的取样,如下所示: (3-5)在语音信号数字处理中,都是采用的离散博里叶变换(DFT)来替代并且可以用高效的快速傅里叶变换(FFT)算法完成由至的转换。当然,这时窗长N必须是2的倍数(L是整数)。根据傅里叶变换的性质,实数序列的傅里叶变换的频谱具有对称性,因此,全部频谱信息包含在长度为N/2+1个里。另外,为了使具有较高的频率分辨率,所取的DFT以及相应的FFT点数应该足够多,但有时的长度N要受到采样率和短时性的限制,例如,在通常采样率为8kHz且帧长为20ms时,N=160。而一般取256、512或1024,为了将的点数从N扩大力,可以采用补0的办法,在扩大的部分添若干个0取样值,然后再对添0后的序列进行FFT。例如、在10kHz的范围内采样求频谱,并要求频率分辨率在30Hz以下。由10k/30,得333,所以要取比333大的值,这时可取=512点,不足的部分采用补0的办法解决,此时频率分辨率(即频率间隔)为10Hz51219.53Hz,采样后的该帧信号频率处在0之间,因此,原连续信号频率就处在0之间(即),所以我们要在0频率范围内求其频谱。FFT的计算可以在通用计算机上由相应的算法软件来完成,这种方式一般只能实现非实时运算。为了完成实时运算可以采用先进的数字信号处理芯片、阵列处理芯片或专用FFT芯片。为了完成1024点的FFT,这些专用芯片所需的运算时间是几十毫秒至几毫秒,甚至可以降至1ms以下。在语音信号数字处理中,功率谱具有重要意义,在一些语音应用系统中。往往都是利用语音信号的功率谱。根据功率谱定义,可以写出短时功率谱与短时傅里叶变换之间的关系:或者: 式中表示复共轭运算。并且功率谱是短时自相关函数的傅里叶变换。图3-2是用Matlab中的psdplot命令绘得的同一人两次说同一词的功率谱比较(窗函数取窗长度为256的Hamming窗)。 图3-2同一人两次说同一词的功率谱比较可以看出功率谱图比较好地反映出声音的个人特征:在低频部分(频率低于6000Hz),同一人说同一词,其功率谱图中的各个波峰所对应的频率基本相同;不同人说同一词,其功率谱图的出现波峰的频率比较接近;同一人说不同词时功率谱的形状差别较大。在高频部分,波峰比较密集,特征不明显。3.4 语音信号的语谱图语音的时域分析和频域分析是语音分析的两种重要方法。显然这两种单独分析的方法均有局限性:时域分析对语音信号的频率特性没有直观的了解;而频域分析出的特征中又没有语音信号随时间的变化关系;语音信号是时变信号,所以其频谱也是随时间变化的。但是由于语音信号随时间变化是很缓慢的,因而在一段短时间内(如1030ms之间,即所谓的一帧之内)可以认为其频谱是固定不变的,这种频谱又称为短时谱。短时谱只能反映语音信号的静态频率特性,不能反映语音信号的动态频率特性。因此,人们致力于研究语音的时频分析特性。把和时序相关的傅里叶分析的显示图形称为语谱图(Sonogram,或者Spectrogram)。语谱图是一种三维频谱,它是表示语音频谱随时间变化的图形,其纵轴为频率,横轴为时间,任一给定频率成分在给定时刻的强弱用相应点的灰度或色调的浓淡来表示。用语谱图分析语音又称为语谱分析。语谱图中显示了大量的与语音的语句特性有关的信息,它综合了频谱图和时域波形的特点,明显地显示出语音频谱随时间的变化情况,或者说是一种动态的频谱;记录这种频谱的仪器就是语谱仪。语谱仪实际上是一个带通滤波器组的输出随时间发生连续变化,连续重复进行语音信号频率分析的仪器。带通滤波器有两种带宽可供选择:窄带为45Hz,宽带为300Hz。窄带语谱图有良好的频率分辨率,有利于显示基音频率及其各次谐波,但它的时间分辨率较差,不利于观察共振峰(声道谐振)的变化;而宽带语谱图正相反,具有良好的时间分辨率及较差的频率分辨率。宽带语谱图能给出语音的共振峰频率及清辅音的能量汇集区,在语谱图里共振峰呈现为黑色的条纹。可以利用语谱仪测量语谱图的方法来确定语音参数,例如共振峰频率及基音频率。语语图的实际应用是用于确定出讲话人的本性。语谱图上因其不同的黑白程度,形成了个同的纹路,称之为“声纹”,它因人而异,即不同讲话者语谱图的声纹是不同的。因而可以利用声纹鉴别不同的讲话人。这与不同的人有不同的指纹,根据指纹可以区别不同的人是一个道理。虽然对采用语谱图的讲活人识别技术的可靠性存在相当的怀疑,但目前这一技术已在司法法庭得到某些认可及采用。2.22.42.62.833.23.43.6x 104-0.0500.05河南理工大学05010015020025030035040050100150200250 图3-3“河南理工大学”语谱图图3-3是用Mtalab绘制的一个宽带语谱图,其中横抽坐标为时间,纵轴坐标为频率,语句内容为“河南城建学院”,它的发音在图下方以音标表示。同时给出了相应的语音的时域波形。语谱图中的花纹有横扛(Bar)、乱纹和竖直条等。横杠是与时间轴平行的几条深黑色带纹,它们相应于短时谱中的几个凸出点,也就是共振峰。从横扛对应的频率和宽度可以确定相应的共振峰频率和带宽。在一个语音段的语谱图中,有没有横扛出现是判断它是否是浊音的重要标志。竖直条(又叫冲直条)是语谱图中出现与时间轴垂直的一条窄黑条。每个竖直条相当于一个基音,条纹的起点相当于声门脉冲的起点,条纹之间的距离表示基音周期。条纹越密表示越音频率越高。4 语音信号的综合仿真分析4.1本文的仿真软件Matlab MATLAB将矩阵运算、数值分析、图形处理、编程技术结合在一起,为用户提供了一个强有力的科学及工程问题的分析计算和程序设计工具,它还提供了专业水平的符号计算、文字处理、可视化建模仿真和实时控制等功能,是具有全部语言功能和特征的新一代软件开发平台。MATLAB 已发展成为适合众多学科、多种工作平台、功能强大的大型软件。在欧美等国家的高校,MATLAB已成为线性代数、自动控制理论、数理统计、数字信号处理、时间序列分析、动态系统仿真等高级课程的基本教学工具。成为攻读学位的本科、硕士、博士生必须掌握的基本技能。在设计研究单位和工业开发部门,MATLAB被广泛的应用于研究和解决各种具体问题。在中国,MATLAB也已日益受到重视,短时间内就将盛行起来,因为无论哪个学科或工程领域都可以从MATLAB中找到合适的功能。MATLAB的功能 1)全新的开发环境GUIDE(GUI Development Environment):由早期的单一命令窗口发展为将一些常用的交互式工作界面高度的集中于操作桌面; 2)在命令窗口增加了错误跟踪功能(error display message and abort function); 3)提供了许多新的数值处理功能(numerical Treatment Techniques),更新了部分函数的功能和算法,增加了许多新函数; 4)在图形窗口增加了曲线拟合、数据统计等交互工具;(Curve Fitting, Data Analyzing ) 5)引入了类与对象及函数句柄等概念;(Object,Handle) 用户可以创建自己定义的类函数和函数句柄; 6)改进了编辑/调试器的界面及功能; (Editor/Debugger)增加了行号和书签等功能; 7)属性编辑器功能更强(Property Debugger),使用更方便; 8)建立了一个与以前完全不同的图形用户界面(GUI)图形窗口,(Graphical Window)使用更加方便灵活; 9)增加了虚拟现实工具箱,(Virtual Reality Toolbox)使用标准的虚拟现实建模语言(VRML)技术,可以创建由MATLAB和simulink环境驱动的三维动画场景; 10)在应用程序接口方面增加了与Java的接口(Interface for Java),并为二者的数据交换提供了相应的程序库。 MATLAB的主要组成部分: 1)开发环境(development Environment):一组图形化用户接口工具和组件的集成:MATLAB桌面、命令窗口、命令历史窗口、编辑调试窗口及帮助信息、工作空间、文件和搜索路径等浏览器; 2)MATLAB数学函数库:(Math Function Library)基本函数:求和、正弦、余弦和复数运算等;特殊函数:矩阵求逆、矩阵特征值、贝塞尔函数和快速付里叶变换等; 3)MATLAB语言:(MATLAB Language)一种高级编程语言,包括控制流的描述、函数、数据结构、输入输出及面对对象编程; 4)句柄图形:(Handle Graphics) 可以对各种图形对象进行更为细腻的修饰和控制,建立完整的图形界面的应用程序。 5)应用程序接口:(Applied Function Interface)MATLAB的应用程序接口允许用户使用C或FORTRAN语言编写程序与MATLAB连接。 工作空间窗口:(Workspace Window) 用于储存各种变量和结果的空间,显示变量的名称、大小、字节数及数据类型,对变量进行观察、编辑、保存和删除。临时变量不占空间,为了对变量的内容进行观察、编辑与修改,可以用三种方法打开内存数组编辑器。*双击变量名;*选择该窗口工具栏上的打开图标;*鼠标指向变量名,点击鼠标右键,弹出选择菜单,然后选项操作。欲查看工作空间的情况,可以在命令窗口键入命令whos(显示存在工作空间全部变量的名称、大小、数据类型等信息)或命令who(只显示变量名) 当前目录浏览器:(Current Directory) 用于显示及设置当前工作目录,同时显示当前工作目录下的文件名、文件类型及目录的修改时间等信息。只有在当前目录或搜索路径下的文件及函数可以被运行或调用。 设置当前目录可以在浏览器窗口左上角的输入栏中直接输入,或点击浏览器下拉按钮进行选择。还可用cd命令在命令窗口设置当前目录,如: cd c:mydir 可将c盘上的mydir目录设为当前工作目录。 命令历史窗口:(Command History) 记录已运行过的MATLAB命令历史,包括已运行过的命令、函数、表达式等信息,可进行命令历史的查找、检查等工作,也可以在该窗口中进行命令复制与重运行。启动平台:(Launch Pad) 帮助用户方便地打开和调用MATLAB的各种程序、函数和帮助文件。 平台列出了系统中安装的所有的MATLAB产品的目录,可以通过双击来启动相应的选项。7.0版取消了这个窗口,事实上Help工具完全具备它的功能。 基本功能MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连matlab开发工作界面接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C、FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C+,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。4.2原始语音信号录制一段自己的语音信号,并对录制的信号进行采样;画出采样后语音信号的时域波形和频谱图;%语音信号时域频域分析y,Fs,bits=wavread('2.wav');%读出信号,采样率和采样位数 y=y(:,1);%我这里假设你的声音是双声道,我只取单声道作分析 sigLength=length(y);%算出y的长度Y = fft(y,sigLength);%在sigLength这个有限区间内做快速傅立叶变换Pyy = Y.* conj(Y) / sigLength; %Y乘Y的共轭,得到功率谱halflength=floor(sigLength/2); %半宽度f=Fs*(0:halflength)/sigLength; %采样频率的横坐标figure;plot(f,Pyy(1:halflength+1);xlabel('Frequency(Hz)'); %在第一个窗口画率谱t=(0:sigLength-1)/Fs; %计算时间轴figure;plot(t,y);xlabel('Time(s)'); %在第二个窗口画波形图4-1原始语音信号由图可知这段语音信号频率主要集中在1000Hz左右。4.3对语音信号进行调制为了减少在传输时的耗损,人们一般是先对传输信号进行特殊处理,然后再传递。把原始的待传信号托附到高频振荡的过程称为调制。我们知道音频信号的频率在我们的听觉范围内,音频信号在无线传输的过程中会受到各种声音的干扰而产生能量消耗,因此限制了传输的距离,所以在现实的传送过程中要现对语音信号进行调制再发送出去。若欲传送信号为其振幅限制不可大于一 载波为fc为载波中心频率,单位为赫兹。A是任意振幅。传送信号将会是 在此, 公式中,f(t)是振荡器的瞬时频率,f是频偏(频率偏移),代表在一个方向上相对fc的最大频率偏离,在此我们假定xm(t)是有限的幅值限于±1之间。下面是对一段语音信号的调制仿真图,载波频率为fc=20000。图4-2调制后的语音信号由图可知,经过调制后的语音信号频谱都搬移到fc=20000的频段。4.4设计数字滤波器和画出频率响应根据语音信号的特点给出有关滤波器的性能指标:低通滤波器性能指标,fp=1000Hz,fc=1200Hz,As=100dB,Ap=1dB;用双线性变换法设计的低通滤波器的程序如下: fp=1000;fc=1200;As=100;Ap=1;fs=22050; wc=2*fc/fs;wp=2*fp/fs; n,wn=ellipord(wp,wc,Ap,As); b,a=ellip(n,Ap,As,wn); freqz(b,a,512,fs); 滤波器的频率响应 图4-3滤波器的频率响应 4.5进行低通滤波低通滤波可以简单的认为:设定一个频率点,当信号频率高于这个频率时不能通过,在数字信号中,这个频率点也就是截止频率,当频域高于这个截止频率时,则全部赋值为0。因为在这一处理过程中,让低频信号全部通过,所以称为低通滤波。比较滤波前后语音信号的波形及频谱。低通滤波器(low-passfilter)容许低频信号通过,但减弱(或减少)频率高于截止频率的信号的通过。对于不同滤波器而言,每个频率的信号的减弱程度不同。当使用在音频应用时,它有时被称为高频剪切滤波器或高音消除滤波器。低通滤波器在信号处理中的作用等同于其它领域如金融领域中移动平均数(moving average)所起的作用。 程序如下:y,fs,bits=wavread('e:hy.wav'); %函数wavread是对语音信号进行 采样,格式是y,fs,nbit=wavread,返回采样值放在向量y中,fs表示采样频率(Hz),nbit表示采样位数。fp=1000;fs=2000;rp=0.5;rs=40;fc=40000;%设定通带截止频率(fp)、阻带截止频率(fs)、通带波纹系数(rp)、阻带波纹系数(rs)、抽样频率(fc)。wp=2*fp/fc;ws=2*fs/fc; %将模拟域转化成数字域。if get(handles.radiobutton1,'value')%如果选择radiobutton1,则制做巴特沃思滤波器。N,Wc=buttord(wp,ws,rp,rs); %估算巴特沃思滤波器的阶数N和3dB截止频率Wc。num,den=butter(N,Wc); %求传输函数的分子和分母多项式的系数。else %选择radiobutton2,则制做切比雪夫型滤波器。N,Wc=cheb1ord(wp,ws,rp,rs); %估算切比雪夫型滤波器的阶数N和截止频率Wc。num,den=cheby1(N,rp,Wc); %求传输函数的分子和分母多项式的系数。endx=filter(num,den,y); %根据传输函数的分子和分母多项式的系数得到模拟滤波器,并将y通过该滤波器,得到x。sound(x,fc,bits); %将滤波后的信号x进行回放。X=fft(x); %将x信号进行快速傅里叶变换。plot(x); %在axes3坐标轴上画出x信号的波形图。plot(abs(X); %在axes4坐标轴上画出频谱图。 图4-4 低通滤波后的信号波形和频谱由图4-4可知低通滤波后,高频分量被低通滤波器衰减。所以声音稍微有些发闷、低沉,但是很接近原来的声音。总 结通过这次课程设计,使我对语音信号有了全面的认识,对数字信号处理的知识又有了深刻的理解,在之前数字信号与处理的学习以及完成课后的作业的过程中,已经使用过MATLAB,对其有了一些基础的了解和认识。通过这次练习是我进一步了解了信号的产生、采样及频谱分析的方法。以及其中产生信号和绘制信号的基本命令和一些基础编程语言。让我感受到只有在了解课本知识的前提下,才能更好的应用这个工具;并且熟练的应用MATLAB也可以很好的加深我对课程的理解,方便我的思维。这次设计使我了解了MATLAB的使用方法,学会分析滤波器的优劣和性能,提高了分析和动手实践能力。同时我相信,进一步加强对MATLAB的学习与研究对我今后的学习将会起到很大的帮助。参 考 文 献1胡航语音信号处理M哈尔滨:哈尔滨工业大学出版社,20022丁玉美高西全数字信号处理M西安电子科技大学出版社,20064张威MATLAB基础与编程入门M西安电子科技大学出版社,20065林福宗多媒体技术基础M北京:清华大学出版社,2000 6周渊,王炳和,刘斌胜基于MATLAB的噪声信号采集和分析系统的设计M噪声控制2004(7):52-54 7朱学芳,徐建平计算机语音信号处理与语音识别系统J南京邮电学院学报,1998,18(56):1131附录一:%语音信号时域频域分析y,Fs,bits=wavread('2.wav');%读出信号,采样率和采样位数。 y=y(:,1);%我这里假设你的声音是双声道,我只取单声道作分析,如果你想分析另外一个声道,请改成y=y(:,2) sigLength=length(y); Y = fft(y,sigLength); Pyy = Y.* conj(Y) / sigLength; halflength=floor(sigLength/2); f=Fs*(0:halflength)/sigLength; figure;plot(f,Pyy(1:halflength+1);xlabel('Frequency(Hz)'); t=(0:sigLength-1)/Fs; figure;plot(t,y);xlabel('Time(s)');附录二:%抽取的源程序y,fs,bs=wavread('d:01.wav',25000,75000);y=y(:,1);lg=length(y);yx=(0:(lg-1)*fs/lg;yx=yx(1:lg/2);% sound(y,fs);figure(1);subplot(211);plot(y);title('原始信号');subplot(212);yf=abs(fft(y);yf=yf(1:lg/2);plot(yx,yf);ycq=zeros(1,lg); %先将抽取后的值全设为零 for i=1:80:lg; %通过循环,每隔80个点将抽取后的值赋值为原函数的 ycq(i)=y(i); %采样值 end sound(ycq,fs);figure(2);subplot(211);plot(ycq);title('抽取后的信号');subplot(212);ycqf=abs(fft(ycq);ycqf=ycqf(1:lg/2);plot(yx,ycqf);附录三:“河南成建学院”语谱图源程序:frmsize = 256; % 设置贞大小x,fs,nbits = wavread('3.wav'); % 读取语音文件x = fi
展开阅读全文