当前位置:首页 >> 信息与通信 >>

matlab的语音信号处理


本 科 毕 业 设 计
题目:基于 Matlab 的语音信号处理

姓 学 专 年 学

名 院 业 级 号 信息与电气工程学院 通 信 工 程 200 级

指导教师

2012 年 5 月 23 日

独 创 声 明
本人郑重声明: 所呈交的毕业论文(设计

), 是本人在指导老师的指导下, 独立进行研究工作所取得的成果,成果不存在知识产权争议。尽我所知, 除文中已经注明引用的内容外,本论文(设计)不含任何其他个人或集体 已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体 均已在文中以明确方式标明。 此声明的法律后果由本人承担。

作者签名: 二〇一二 年 五 月 二十 日

毕业论文(设计)使用授权声明
本人完全了解鲁东大学关于收集、保存、使用毕业论文(设计)的规 定。 本人愿意按照学校要求提交论文(设计)的印刷本和电子版,同意学 校保存论文(设计)的印刷本和电子版,或采用影印、数字化或其它复制 手段保存论文(设计) ;同意学校在不以营利为目的的前提下,建立目录检 索与阅览服务系统,公布论文(设计)的部分或全部内容,允许他人依法 合理使用。 (保密论文在解密后遵守此规定)

论文作者(签名) : 二〇一二 年 五 月 二十日

毕业设计选题报告
姓 名 设计题目 课题来源 性 别 男 学 院 信息与电气 工程学院 年 级 2008 级 学 号 200

基于 Matlab 的语音信号处理

教师推荐

课题类别

应用研究

选做本课题的原因及条件分析: 随着现代科学技术和计算机技术的发展,除了人与人的自然语言的沟通,人机 对话和智能机领域也开始使用语言。这些人造的语言拥有词汇,语法,语法结构和 语义内容等。控制论创始人维纳在 1950 年曾经指出:“通常,我们把语言仅仅看 做人与人之间的通信手段,但是,要使人向机器、机器向人及机器向机器讲话,那 也是完全办得到的。在人机对话中使用的语言为数字语音信号,要想更充分的了解 语音信号,那么对语音信号的分析就必不可少了。 此次设计为基于 Matlab 的语音信号处理,通过 Matlab 的仿真绘图,我们可以 清楚的了解到语音信号的特性,从而设计出更好的人机语言。

指导教师意见: 此毕业设计对语音信号的特性做了详细的分析, 让我们能直观的看到语音信号 的各个特性,如短时能量函数,短时自相关函数,基音周期和功率谱等。选题内容 较为合理,有较好的研究价值,对深入的学习语音信号,了解语音信号有很大的帮 助,符合设计相关的要求,同意选题。 签名: 年 院(系)毕业论文(设计)领导小组意见: 月 日

(公章) 年 月 日

毕业设计任务下达书
学院 信息与电气工程学院 专业 通信工程 学号 2008000000 姓名 00000 现将毕业设计任务下达书发给你。毕业设计任务下达书内容如下: 一、 二、 毕业设计题目 基于 MATLAB 的语音信号处理 主要内容 1.本文基于 Matlab 的语音信号处理包括短时能量分析、短时自相关分析、AMDF

法提取基音周期、谱估计等; 2.论文设计,参考文献的简介,作者简单介绍等; 3.程序模块功能设计,完成各个功能所需代码。 三、 具体要求 设计当中借鉴参考文献的内容要在正文当中标注清楚,外文资料翻译部分要做到 准确无误,所查阅文献要确保是正版权威的文献,写作时要严格按照大学毕业论文的 格式来写,同时还要保证在设计过程中不抄袭,杜绝学术造假现象。正文内容的字数 要达到 8000 字及以上。 四、 主要参考文献 [1] 张雪英. 数字语音处理[M]. 北京: 电子工业出版社, 2010. [2] 薛年喜. MATLAB 在数字信号处理中的应用[M].北京:清华大学出版社,2003. [3] 胡航. 语音信号处理[M]. 哈尔滨: 哈尔滨工业大学出版社, 2000. 五、 进程安排 阶 段 起 止 日 期 2011.11.18-2012.3.7 2012.3.8-2012.4.30 主 要 内 容

准备开题阶段 设计实现阶段

熟悉选题,查找阅读相关资料。 根据选题要求提取各种用信息,完成论文总体框架。 修改论文,在老师指导下调试程序,完成总体设计。 在老师指导下进行最后一次精心修改,完成了终稿。

说明书完成阶段 2012.5.1-2012.5.20 2012.5.21-2012.5.27 答辩阶段

六、 毕业设计任务下达书于 2012 年 1 月 6 日发出。毕业设计应于 2012 年 5 月 20 日前 完成后交指导教师,由指导教师评阅后提交毕业设计答辩委员会。 七、 毕业设计任务下达书一式两份,一份给学生,一份留学院存档。 指导教师: 分管院长: 签发于 2012 年 1 月 6 日 签发于 年 月 日

毕业设计开题报告
姓 名 性 男 别 学 信息与电气 年 学 2008 级 工程学院 级 号 院 预计 2008 完成 时间
2012.5.20

设计题目 基于 Matlab 的语音信号处理 课题来源 教师推荐 课题类别 应用研究 指导教师 白艳梅

毕业设计实施方案: 第一阶段:开题 在做好需求分析的基础上,深入了解语音信号处理的知识,学 会应用 MATLAB 对语音信号进行分析; 第二阶段:综合分析 完成语音信号处理论文的内容设计,完成 MATLAB 对语 音信号分析的编码仿真,并截取仿真结果; 第三阶段:修改完善设计 在初步完成的基础上,查看所做设计是否完善,功能 是否欠缺,后充实内容,各种操作能否达到预期效果,如内容是否连贯,程序是否正 确,能否正常运行等; 第四阶段:完成设计,对完成的设计进行最后的试用并修改细节; 第五阶段:完成论文,定稿。 设计主要内容(提纲) : 1、语音信号的获取与分析; 2、主要进行语音信号的短时能量分析、短时自相关分析、AMDF 法提取基音周 期以及谱估计; 3、设计程序,完成各个分析所需的代码; 4、分析仿真结果,得出结论。 指导教师意见: 学生对于 MATLAB 较为熟悉,可以实现语音信号的基本仿真,整个实施方案 过程合理清晰,步骤合理,阶段任务明确;设计内容完整、科学,符合设计的相关要 求,已经具备了开题的条件,同意开题。 签名: 2012 年 3 月 12 日 学院毕业论文(设计)领导小组意见: (公章) 年 签名: 年 月 日 月 日







毕业设计结题报告
姓名 性别 男 学院 信息与电气工 程学院 年级 2008 级 学号 20082

设计题目 基于 Matlab 的语音信号处理 课题来源 教师推荐 课题类别 应用研究 指导教师 白艳梅

本课题完成情况介绍(包括研究过程、实验过程、结果分析、存在的问题及应用 情况等。 ) 通过学习语言信号处理的相关课程,学习了语音信号处理的基础、原理、方法 及应用,通过 MATLAB 对自己的录音进行了短时能量分析、自相关分析、AMDF 法提 取基音周期还有谱估计等。通过此次毕业设计,我明白了只有准确分析并提取出语 音信号的特征参数,才能够利用这些参数进行语音编码、语音合成等处理,因此基 音周期的提取十分重要,AMDF 法提取基音周期还存在一些缺陷,当语音信号的幅 度变化过快时,AMDF 法提取的基音周期精度下降,从而影响了识别的准确率,这 有待于我更进一步的学习。

指导教师意见: 本此设计基本上完成了对语音信号的处理与仿真,通过软件的仿真了解了语音信 号的的特征,如何对语音信号进行短时能量分析,短时自相关分析,AMDF 法提取基 音周期和谱估计等,从而深入了解了语音信号的特性,对语音信号的处理有了更加直 观的认识。同意结题。

签名: 2012 年 5 月 学院毕业论文(设计)领导小组意见: 23 日

(公章) 年 设计成绩 月 日

毕业设计成绩评定表
学院:信息与电气工程学院 姓 名 设计题目 学号:20082312579 设计总成绩:

基于 MATLAB 的语音信号处理

指 导 教 师 评 语 评定成绩: 评 阅 人 评 语 答 辩 小 组 评 语 答辩成绩: 组长签名: 年 月 日 评定成绩: 签名: 年 月 日 签名: 年 月 日

注:1、论文(设计)总成绩=指导教师评定成绩(50%)+评阅人评定成绩(20%) +答辩成绩(30%) 2、将总成绩由百分制转换为五级制,填入本表相应位置。

目 录
1 引言 ........................................................................................................................................ 1 2 本文主要工作及仿真软件 MATLAB .................................................................................... 3 2.1 本文主要工作 ................................................................................................................... 3 2.2 MATLAB 简介和选择 MATLAB 的原因 ....................................................................... 3 3 语音信号的特点 ..................................................................................................................... 4 4 语音信号的处理 .................................................................................................................... 4 4.1 语音信号分析技术 ........................................................................................................... 4 4.2 语音信号的时域分析 ....................................................................................................... 5 4.2.1 MATLAB 的简单应用 .............................................................................................. 5 4.2.2 短时能量分析 ........................................................................................................... 7 4.2.4 短时自相关分析 ........................................................................................................ 8 4.3 AMDF 法提取基音周期 ................................................................................................ 11 4.3.1 基音提取 .................................................................................................................. 11 4.3.2 AMDF 法提取基音周期.......................................................................................... 11 4.4 功率谱估计 .................................................................................................................... 13 4.4.1 功率谱估计的概述 .................................................................................................. 13 4.4.2 直接法 ...................................................................................................................... 13 4.4.3 间接法 ...................................................................................................................... 15 4.4.4 Welch 法 ................................................................................................................... 17 5 结束语 .................................................................................................................................. 18 参考文献 .................................................................................................................................. 18 致 谢 ........................................................................................................................................ 19

鲁东大学本科毕业设计 基于 Matlab 的语音信号处理
XXX
(信息与电气工程学院,通信工程专业,2008 级 2 班,2008200000)



要:语音信号处理与数字信号处理、心理学、语言学、模式识别、计算机科学和人工智

能等相结合的交叉学科,是目前发展最为迅速的信息科学研究领域中的一个,是目前极为活跃和热 门的研究领域,其研究设计一系列前况科研课题,且处于迅速发展之中,其研究成果具有重要的学 术及应用价值。语音采集和分析仪器的小型化、智能化、数字化以及多功能化的发展越来越快,分 析速度较以往也有了大幅度的高。本文通过应用 MATLAB 对语音信号进行处理仿真,包括短时能 量分析、短时自相关分析、AMDF 法提取基音周期、谱估计等。

关键词:语音信号;语音信号处理;Matlab

Based on Matlab Digital Processing of Speech Signals

Abstract: The voice signal processing and digital signal processing, cross-discipline, a combination of
psychology, linguistics, pattern recognition, computer science and artificial intelligence is one of the fastest growing area of scientific research is extremely active and popularareas of research, research and design a series of former status of research projects, and in the rapid development of its research results have important academic value.Speech acquisition and analysis instrument miniaturization, intelligence, digital and multi-purpose of the development of faster and faster analysis speed than in the past has also been substantial. In this paper the speech signal processing using MATLAB simulation, including short-term energy analysis, short-term autocorrelation analysis, AMDF method to extract the pitch period, spectral estimation, and so on.

Key words: voice signal; digital processing of ppeech pignals; matlab

1 引言
人类交换信息最方便的、最快捷的一种方式是语言,在高度发达的信息社会中,用 数字化的方法进行语音的识别、合成、增强、传送和储存等是整个数字化通信网中最重 要、 最基本的组成部分之一。 数字电话通信、 高音质的窄带语音通信系统、 智能机器人、 声控打字机、语言学习机、自动翻译机等,都要用到语音信号处理技术,随着现在集成

鲁东大学本科毕业设计
电路和微电子技术的飞速发展,语音信号处理系统逐步走向实用化。 语音信号处理是一个新兴的交叉学科,是语音和数字信号处理两个学科的结合产 物。与认知科学、心理学、语言学、计算机科学、模式识别和人工智能学科有着密切的 联系。语音信号处理技术的发展依赖于这些学科的发展,语音信号处理技术的进步也将 促进这些领域的进展。 语音信号处理目的是得到一些语音特征参数,以便高效的传输或存储,或通过某种 处理以达到特定目的,如语音合成,辨识出讲话者、识别出讲话的内容等。 随着现代科学技术和计算机技术的发展,除了人与人的自然语言的沟通,人机对话 和智能机领域也开始使用语言。这些人造的语言拥有词汇,语法,语法结构和语义内容 等。控制论创始人维纳在 1950 年曾经指出:“通常,我们把语言仅仅看做人与人之间 的通信手段,但是,要使人向机器、机器向人及机器向机器讲话,那也是完全办得到 的”[1],一般的语音信息交换大致可以分为三类: ①人与人之间的语音通信:它包括语音压缩与编码、语音增强等。 ②第一类人机语言通信的问题,指机器讲话、人听话的研究,即语音合成。 ③第二类人机语言通信的问题,指人讲话、机器听话的情况,即语音识别和理解。 上述这些应用程序构成的语音信号处理技术的主要内容。早在两千多年前,人们便 进行了语言的学习。因为缺乏适当的设备,长期以来,一直由耳听和用口模仿来研究。 因此,这种语言的研究通常被称为“口耳学校,所以对于语言仅仅停留在定性描述上。 语音信号处理的研究可以追溯到 1876 年贝尔电话的发明,其在真正意义上首次用 声电,电声转换技术实现了远距离语音传输。 1939 年 Homer Dudley 提出并研制成功 第一个声码器,奠定了语音产生模型的基础。这项发明在语音信号处理领域具有划时代 意义。 19 世纪 60 年代,赫姆霍兹用声学的方法对元音和唱歌进行研究,奠定了基础 语言的声学基础。在 20 世纪 40 年代,一种语言声学的专用仪器 – 语谱图仪问世。它 可以让你把语音的时变频谱用语图表示出来, 得到一个“可见的语言”。 1984 年 Haskins 实验室研制成功“语音回放机,此仪器可以自动转换手工绘制的语谱图成为语言,并进 行语音合成。在 20 世纪 50 年代对语言产生的声学理论有了系统描述。随着计算机的出 现,语音分析技术可以在电子计算机上进行,在此基础上,语音信号处理无论是在基础 研究或在技术应用,都已取得了突破性进展。以下讨论的语音信号的三个主要分支的发 展和当前状态处理(语音合成,语音编码和语音识别技术) 语音合成技术,第一个合成器是在 1835 年由 W.von Kempelen 发,经过 Weston 改 进的机械讲话机。机器完全模仿人的生理过程,分别应用了特别设计的哨和软管模拟肺 部空气动力、模拟口腔。Homer Dudley 在 1939 年发明了第一台电子语音合成器,它不 是一个简单的生理过程的模拟,而是在电子电路基础上来实现语音产生源 – 滤波器理 论。 语音编码的目的就是在保证一定语音质量的前提下,尽可能降低编码比特率,以节 省频率资源。[1]语音编码技术的研究开始于 1939 年, Homer Dudley 提出并实现了在低 带宽电话电报上传输语音信号的通道声码器,第一个研制成功了语音编码技术。到 20 世纪 70 年代,国际电联于 1972 年发布了 64kbit/s 脉冲编码调制(PCM)语音编码算法 的 G.711 建议,它被广泛应用于数字交换机、数字通信等领域,从而占据统治地位。在 1995 年 11 月 ITU-T SG15 全会上共轭代数码激励线性预测(CS-ACELP)的 8kbit/s 语
[1]

鲁东大学本科毕业设计
音编码 G.729 建议被通过,并于 1996 年 6 月 ITU-T SG15 会议上通过 G.729 附件 A:减 少复杂度的 8kbit/s CS-ACELP 语音编解码器,正式成为国际标准。这几种语音编码算 法也成为分组化语音通信的可选算法。[1] 语音识别的研究开始于 20 世纪 50 年代贝尔实验室的 Audry 系统, 它是第一个可以 识别 10 个英文数字的语音识别系统, 1959 年 Fry 和 Denes 等人采用频谱分析和模式 匹配来进行识别决策构建音素识别器来辨别 9 个辅音和 4 个元音。20 世纪 60 年代末单 语音识别的研究取得实质性进展,并将其作为一个重要的课题。一方面是因为计算机的 计算能力有了迅速的提高,计算机能够提供实现复杂算法的硬件、软件;另一方面,数 字信号处理在当时有了蓬勃发展, 从而自 20 世纪 60 年代末开始引起了语音识别的研究 热潮。动态规划(DP)和线性预测编码(LPC)分析技术就是在这时期提出的,其中线 性预测编码较好地解决了语音信号产生模型的问题, 对语音识别、 语音合成、 语音分析、 语音编码的研究发展产生了重大的影响。 在 20 世纪 70 年代末和 80 年代初,Buzo、Linda、Gray 等人解决了矢量量化码本 生成的方法,并将应用到语音编码中,从此矢量量化技术很快被推广应用。从 20 世纪 80 年代开始,语音识别研究进一步深入,更多地追求从整体统计的角度来建立语音识 别系统。HMM 技术就是一个典型技术。在 20 世纪 80 年代末,美国卡内基梅陇大学用 VQ/HMM 实现 997 个词的非特定人连续语音识别系统 SPHINX 成为世界上第一个高性 能的非特定人、大词汇量、连续语音识别系统。这些研究让语音识别进入了新时代。

2 本文主要工作及仿真软件 MATLAB
2.1 本文主要工作
本文简要介绍了语音信号处理的发展史以及语音信号处理分析方法,获取一段 wa v 格式的声音文件,运用 Matlab 进行仿真分析,包括短时能量分析、短时自相关分析、 AMDF 法提取基音周期、 谱估计等。 MATLAB 是美国 MathWorks 公司出品的商业数 学软件,用于数据可视化、算法开发、数值计算及数据分析以的高级技术计算语言 和交互式环境,主要包括 MATLAB 和 Simulink 两大部分。

2.2 Matlab 简介和选择 Matlab 的原因
MATLAB 产生于 1982 年,是一种效率高、功能强的数值计算和可视化计算机高级 语言,它将信号处理、数值分析和图形显示结合一体,形成了一个极其方便又强大的操 作环境。 通过 MATLAB 可以对数字化的语音信号进行时频域分析。 通过 MATLAB 可以 方便地展现语音信号的时域及频域曲线,并且根据语音的特性对语音进行分析。例 如,请浊音的幅度差别、语音信号的端点、信号在频域中的共振峰频率、加不同窗 和不同窗长对信号的影响、LPC 分析、频谱分析等。

鲁东大学本科毕业设计
通过 MATLAB 可以对数字化的语音信号进行估计和判别。例如,根据语音信 号的短时参数,一级不同语音信号的短时参数的性质对一段给定的信号进行有无声 和请浊音的判断、对语音信号的基音周期进行估计等。 通过利用 MATLAB 编程对语音信号进行处理。 由于 MATLAB 是一种面向科学 和工程计算的高级语言,允许用数学形式的语言编程,又有大量的库函数,所以编 程简单、编程效率高、易学易懂。我们可以对信号进行加噪去噪、滤波、截取语音 等,也可进行语音编码、语音识别、语音合成的编程等。

3 语音信号的特点
通过采集大量语音信号的观察和分析,发现语音信号主要有下面两个特点: ① 在频域内, 语音信号的频谱分量主要集中在 300Hz~3400Hz 的范围之内。 利用这 个特点,可以用一个防混迭的带通滤波器将此范围内的语音信号频率分量取出,然后按 8kHz 的采样率对语音信号进行采样,就可以得到离散的语音信号。 ② 在时域内,语音信号具有“短时性”的特点,即在整体上,语音信号的特征是随着 时间变化而变化的,但在一段较短的时间间隔内,语音信号保持平稳。在浊音段表现出 信号的周期特性,在清音段表现出随机噪声的特征。

4 语音信号的处理
4.1 语音信号分析技术
语音信号的分析是语音信号处理的基础和前提,语音通信、语音合成和语音识别这 些技术只有在分析出可表示语音信号本质特征的参数, 才能利用这些参数进行高效的处 理。而且,语音信号分析的准确性和精确性也决定了语音合成的音质好坏。因此,在语 音信号处理应用中语音信号分析具有十分重要的地位。 语音分析中使用到的是“短时时间分析技术”。之所以不能用处理平稳信号的数字信 号处理技术对它进行分析,是因为语音信号的属性和特征是随时间变化而变化的,它是 一个非平稳态的过程。然而,由于不同的语音由口腔肌肉通过运动产生的声音,口腔肌 肉运动的频率相对声音频率反应是很慢的,所以另一方面,虽然声音信号有时变性,但 在短期的时间内,它的基本特征保持不变,即是相对稳定的,因此,可以将语音信号看 成是一个准稳态过程,即语音信号具有短时平稳特性。所以语音信号的分析和处理一般 建立在短时的基础上,进行短时分析,将语音分成多段,每一段为一帧,帧长一般取 10-30ms。这样,每一帧的语音信号为稳定的,然后将每一帧的分析结果组成一个整体 即为整体的语音信号特征参数。[3] 根据分析参数的性质,语音信号分析划分成时域分析,频域分析,同态分析等,本 文将简要介绍短时能量分析,短时自相关分析,AMDF 方法提取基音周期,谱估计等。

鲁东大学本科毕业设计
4.2 语音信号的时域分析
语音信号的时域分析是分析和提取语音信号的时域参数。语音分析时,第一次接触 到的且也是最直观的是时域波形。 语音信号本来就是时域信号, 因此时域分析是最早的, 也是最广泛使用的分析方法,这种方法是直接使用的语音信号时域波形。通常用于时域 分析基本的参数分析,如语音分割,预处理,大型分类。这种分析方法的特点是: (1) 表示语音信号更直观,清晰的物理意义。 (2)实施相对简单,运算少。 (3)可以得 到一些语音的重要参数。(4)只使用一般的简单设备,如示波器。 语音信号时域参数包括短时能量,短时过零率,短时自相关函数和短时平均幅度差 函数等等,这是一个基本的短时参数,在各种语音信号处理中都有重要的应用。

4.2.1 MATLAB 的简单应用
在语音信号处理中将会用到MATLAB,MATLAB是一种功能强大、效率高、交互 性好的数值计算和可视化计算机高级语言,通过MATLAB可以对数字化的语音信号 进行时频域分析。通过MATLAB可以方便地展现语音信号的时域及频域曲线,并 且根据语音的特性对语音进行分析。例如短时能量分析,短时自相关分析等,通过 MATLAB也可以对数字化的语音信号进行估计和判别。例如AMDF法提取基音周 期,谱估计等。 下面对一语音绘制其原始信号波形、原始信号频谱、原始信号幅值和原始信号 相位,以此来简单介绍MATLAB的使用。(注:本文使用的是MATLAB 2009) 打开MATLAB,单击文件(File),选择新建选项(New),在右弹窗选择建 立空白M文件(Blank M-File)如图4.1;

图 4.1 MATLAB 主界面

在打开的M文件里,将程序写入,注意输入法要用英文输入法。将程序写入后, 单机保存按钮,选择要保存的文件夹,保存好后,单击Debug选择运行如图4.2

鲁东大学本科毕业设计

图 4.2 MATLAB 的 M 文件界面

运 行 后 , 若 出 现 错 误 返 回 主 界 面 找 到 错 误 的 地 方 ( Error in==>yuanshi at 4 magXabs(x);)表示第四行“magXabs(x);”语句错误如图4.3,单击后到M文件修改 此语句为“magX=abs(x)”,调试后运行,得到最终结果。如图4.4

图4.3 程序错误时MATLAB的主界面

鲁东大学本科毕业设计

图4.4 语音信号分析结果

4.2.2 短时能量分析
因为语音信号的能量是随时间变化的, 清音信号和浊音信号之间的能量差别相当显 著。因此,对语音的短时能量进行分析,可以描述语音的这种特征变化情况。定义短时 能量为:
?

En ?

m ???

? [ x(m)w(n ? m)]
En ?

2

?

m ? n ? N ?1

?

n

[ x(m)w(n ? m)]2
,

其中 N 为窗长。特殊地,当采用矩形窗时,可简化为:

m ???

?x

?

2

( m)
,

也可以从另外一个角度来解释。令

h(n) ? ? 2 (n)
则 En 可表示为:
??

,

En ?

m???

?x

2

(m)h(n ? m) ? x 2 (n) * h(n)

,

可以理解为:首先语音信号各个样点值平方,然后通过一个冲击响应为 h(n)的滤 波器,输出为由短时能量构成的时间序列。

鲁东大学本科毕业设计
短时能量的计算直接受冲击响应的选择即窗函数的选择的影响。 如果冲击响应的幅 度是恒定的,它的序列长度 N(即窗长)会很长,将其等效为非常窄的低通滤波器,这 时冲击响应对 x 2 (n) 产生的平滑的作用比较明显,使短时能量基本没有很大的变化,将 不能表现出语音的时变的特性。相反,如果冲击响应的序列长度过于小,等效窗就不能 提供出够用的平滑,以导致语音的振幅在瞬时的变化的许多细节仍被留了下来,进而不 能看出振幅包络变化的规律,一般我们要求窗长是几个基音周期的数量级。 图 4.5 为采样率 8000Khz,16 位,单声道的一个语音信号在不同矩形窗长时的短时 能量函数,我们会发现:语音信号的幅度变化在被短时能量所反映时,窗长的长短都有 影响。 短时能量函数的应用: (1)可用于区分清音段与浊音段。En 值大对应于浊音段,En 值小对应于清音段。 (2)可用于区分浊音变为清音或清音变为浊音的时间(根据 En 值的变化趋势) 。 (3)对高信噪比的语音信号,也可以用来区分有无语音(语音信号的开始点或终 止点)。无信号(或仅有噪声能量)时,En 值很小,有语音信号时,能量显著增大。

图 4.5 不同矩形窗长的短时能量函数

4.2.4 短时自相关分析
对于确定性信号序列,自相关函数定义为

鲁东大学本科毕业设计
R(k ) ?
m ? ??

? x(m) x(m ? k ) ,

??

对于随机性信号序列或周期性信号序列,自相关函数的定义为
R(k ) ?
? 1 ? x(m) x(m ? k ) , 2 N ? 1 m???

自相关函数具有以下几项性质: ① 若序列是周期性的(假设序列周期为 N p ) ,那么其自相关函数也是具有相同周期 的周期函数,即 R(k)=R(k+ N p ) ② 自相关函数是偶函数,即 R(k)=R(-k) ③ k=0 时,自相关函数有极大值,即 R(0) ? R(k ) 当 ④ R(0)为随机性序列的平均功率或确定性信号序列的能量。 自相关函数的上述性质,完全可以适用于语音信号的时域分析中。例如,浊音语音 波形序列具有周期性,因此可用自相关函数求出这个周期,即是基音周期。此外,自相 关函数也可用在语音信号的线性预测分析中。 短时自相关函数的定义如下

Rn ?k ? ? ? x?m?w?n ? m?x?m ? k ?w?n ? m ? k ? ,
m ? ??

?

令 m ? n ? m ,并且 w?? m ? ? w ?m ? ,可以得到:
*

R ?k ? ? ? ?x?n ? m? w ?m???x?n ? m ? k ? w ?m ? k ??
? * * n

?

N ?1? k m ?0

? ?x?n ? m? w ?m???x?n ? m ? k ? w ?m ? k ??
* *

m ? ??

,

图 4.6 是观察清音短时自相关的函数的波形,图 4.7 是在不同的矩形窗窗长条件下 的浊音的短时自相关的函数的波形。对两图分析可得:清音信号的短时自相关函数的波 形不具有周期性,也没有明显的峰值,且随着延时 k 的增大迅速变小,因此其接近于随 机噪声;浊音是具有周期性的信号,浊音信号的周期为自相关函数的周期,由此可知, 语音信号的性质是浊音还是清音,如果是浊音,还可以得出它的基音周期,它的基音周 期可由自相关函数波形中的第一个峰值的位置来估计。所以,自相关函数常用作一下两 种作用: (1)区分语音信号是清音还是浊音; (2)估计浊音语音信号的基音周期。

鲁东大学本科毕业设计

图 4.6 不同矩形窗下清音的短时自相关函数

鲁东大学本科毕业设计
图 4.7 不同矩形窗长条件下的浊音的短时自相关函数

4.3 AMDF 法提取基音周期
4.3.1 基音提取
声带振动频率的倒数即为基音周期。 语音信号的基音检测的是一个重要的工作。 然 而,基音检测实际上是相当困难的。这是因为声门激励信号不是一个完整的周期序列, 在信号开头和结束部分没有声带振动那种周期性,清音和有的浊音的过渡帧是难以判断 是否有周期的;同时语音共振峰严重影响激励信号的谐波结构,因为话音信号具有音调 变化的特性;另外,人的基音周期波动比较大,从50—500Hz。 基音提取的方法大致可分为以下三类:① 波形估计法。直接由语音波形来估计基音 周期,分析出语音波形上的周期峰值。② 相关处理法。在语音信号处理中大多使用这种 方法,因为这种方法抗波形的相位失真强,另外这种方法在硬件处理上结构简单。③ 变 换法。将语音信号变换到频域或倒谱域来估计基音周期。本文将主要介绍 AMDF 法提 取基音周期。与自相关法相比,AMDF 方法具有运算量小、精度高等优点,在语音编码中 得到广泛应用。 传统的平均幅度差函数(Average Magnitude Difference Function ,AMDF) 是由Ross等 人于1974提出的 ,其定义为:

Fn (k ) ?

1 N

? S (n) ? S (n ? k ) ,
n

其中s(n) 为离散化的语音采样序列,若采用短时处理方法加方窗时 ,上式变成:

Fn (k ) ?

N ? k ?1 m?0

?S

n

(m ? k ) ? S n (m)

,

4.3.2 AMDF 法提取基音周期
提取基音周期的方法一直以来就饱受关注, 提取基音周期通常分两种方法: 第一种 是非基于事件的方法,第二种是基于事件的方法。其中非基于事件的提取方法一般是先 将语音分成长度一定的语音帧, 然后对每一帧的语音求平均基音周期。 这些方法主要有: ( 1 ) 倒谱法; ( 2 ) 自相关法; ( 3 ) 平均幅度差法(AMDF) 。其中 AMDF 法相对于常用 的基音估计器, 它不会涉及乘除, 相比基于相关、基于同态信号处理等比较适合应用在 嵌入式系统等平台上。 AMDF 法的思想是: 如果信号是一个标准的周期函数, 那么不同基音周期段的对 [4] 应信号之差为零。 浊音是一个准周期语音信号,在一帧长度的语音信号内基音周期接近 恒定, 那么在不同基音周期段内,对应信号之差应该很小; 但是清音信号因为它接近于 随机噪声所以不具备上述的特点。在 AMDF 方法中, 短时平均幅度差函数定义

鲁东大学本科毕业设计
D
AMDF

1 L (? ) ? ? S j ? S j ?? ,? ? ? min ,? min?1 ,?? max L j ?1

其中 S j 为语音采样序列 (S j ) ? (S1 , S 2 ,?S N ) N 为样本点总数; ? max 和 ? min 为基音周 期范围的最大值和最小值,L 为基音周期的计算范围。若语音采样率为 8KHz,则取 ? min ? 20, ? max ? 200,L=350,即基音周期为 5ms-50ms,样本计算范围为 30ms。 基音周期:
? max

T pAMDF ? arg MIN[ D AMDF (? )] ,
? ? ?? min

与短时自相关函数相比不同点是: AMDF 函数进行基音周期估计时是寻找最低谷点 的位置, 而自相关函数进行基音周期估计时寻找最大峰值点的位置, 在同一时间, AMDF 函数的谷值是比自相关的高峰值更加尖锐的,所以误判率比自相关函数较小,其稳定性 相对自相关函数较高。当语音信号为清音时,AMDF 函数没有明显的波谷值。截取一 段浊音信号和清音信号,对其应用 AMDF 法,如图 4.8 是清音信号与其 AMDF 函数, 图 4.9 是浊音信号与其 AMDF 函数。

图 4.8 清音信号及其 AMDF 函数

鲁东大学本科毕业设计

图 4.9 浊音信号及其 AMDF 函数

4.4 功率谱估计
4.4.1 功率谱估计的概述
功率谱估计技术已经有很长的历史了,近几十年来又得到了快速的发展,功率谱估 计的内容和方法不断更新变换。通常的,功率谱估计方法可分为两种:现代谱估计法和 经典谱估计法。而经典谱估计法又可分为两种:直接法与间接法;现代谱估计大致分为 AR 模型参数法、MUSIC 法、MTM 法、还有特征向量法等。

4.4.2 直接法
直接法又称为周期图法,是由舒斯特在 1898 年提出。直接法是直接由傅里叶变换 得到:先将语音信号 x(n)的 N 点样本值 x N (n) 看成是能量的有限信号,然后对其进行傅 里叶变换,得出 X N (e jw ) ,再去它的的幅值的平方,并除以 N 得出 x(n)的真实功率谱估 计,即:

P ( e j? ) ?

?

1 2 X N (? ) , N

下图 4.10 为一语音信号的功率谱估计。

鲁东大学本科毕业设计

图 4.10 周期图法中当 N=10240 时功率谱估计

图 4.11 周期图中当 N=1024 时功率谱估计

鲁东大学本科毕业设计

图 4.12 周期图法当 N=126 时功率谱估计

由上面 3 个图可以看出,用周期图法估计得出的功率谱很不平滑,相应的用周期图 法估计的协方差比较大。而且采样点的增加也不能让周期图变得更平滑,这是周期图法 的缺点。[2]周期图法得出的估计谱方差特性不好:当数据长度 N 过大时,图谱线的起伏 加剧;N 太小时谱线的分辨率又差。要对其改进,一是实现平滑,平滑是用算出的功率 ? jw 谱 P X (e ) 与一个合适的窗函数 W (e jw ) 进行卷积,可使谱线平滑,用这种方法得出的谱 估计方差小且是无偏的, 但是分辨率下降。 二是实现平均, 平均是将截取的数据段 x N (n) 再分成 M 个小段,然后再分别计算每小段的功率谱后取平均功率谱,这样减少了估计 的方差,但是使分辨率下降且加大了估计的偏差。

4.4.3 间接法
间接法,又称之为自相关法,是由布来拉克曼与图基在 1958 年首先提出的。它是 由随即信号 N 个值估计出自相关函数 RN (m) ,然后再求 RN (m) 的傅里叶变换得出功率 谱估计
S X (e jw ) ?
?

m?? M

?R

M

N

(m)e ? j?n

M ? N ?1 ,

下图为用间接法对一语音信号的功率谱估计

鲁东大学本科毕业设计

图 4.13 间接法 M 趋近 N-1 时的功率谱图

图 4.14 间接法 M 小于 N-1 时的功率谱

当 M=N-1 时,间接法与周期图法估计出的功率谱是一样的;当 M < N-1 时,用间接法 估计的偏差要比周期图法高,在窗函数满足一定条件时是渐进无偏估计;方差小于周期图 的方差;分辨率比周期图法低,与窗函数的选择有关。

鲁东大学本科毕业设计 ?

?

间接法的缺点:当 M 趋近 N 时, R (m ) 的方差很大,使谱估计的质量下降;由 R (m ) ? S (w) 可能为负值,从而失去了功率谱估计的实际意义。 得到的

4.4.4 Welch 法
在上文说到直接法的缺点, 现在比较常用的改进方法是 Welch 法,又叫加权交叠平 均法,这种方法以加窗(加权)求取平滑,以分段重叠求得平均,因此集平均与平滑的 优点于一体,同时也不可避免带有两者的缺点,因此归根到底是一种折中。其主要步骤 是: (1)将 N 长的数据段分成 L 个小段,每小段 M 点,相邻小段间交叠 M/2 点(即 2:1 分段) 。因为 L(M/2)+M/2=N,所以段数
L? N ?M /2 M /2 ,

(2)对各小段加同样的平滑窗

后起傅氏变换
M ?1 n ?0

X i (e jw ) ? ? xi (n)ax(n)e ? jwn , i ? 1,...L,

,

(3)用下式求各小段功率谱的平均
S i (e jw ) ?
? 2 1 l 1 ? MU X i (e jw ) L i ?1 ,

这里,

代表窗函数平均功率,MU 是 M 长窗函数的能量。图 4.15

为用 welch 方法进行谱估计的结果。

鲁东大学本科毕业设计

图 4.15 矩形窗处理下的 Welch 法功率谱估计

5 结束语
随着语音技术的逐渐成熟, 语音信号处理技术也在不断发展,不断完善。 本文主要介 绍短时能量分析、短时自相关分析、AMDF 法提取基音周期、直接法与间接法功率谱 估计等。 通过这次的学习,使我进一步了解了语音信号的特性,了解了语音信号的分 析方法。这次设计让我更加深入了解了 MATLAB 的使用方法,学会了用短时分析技术 对语音信号进行分析,明白了只有准确分析并提取出语音信号的特征参数,才能够利用 这些参数进行语音编码、语音合成等处理,因此基音周期的提取十分重要,AMDF 法 提取基音周期还存在一些缺陷,当语音信号的幅度变化过快时,AMDF 法提取的基音 周期精度下降,从而影响了识别的准确率,这有待于我更进一步的学习。功率谱估计在 数字信号处理中占有很重要的地位,MATLAB 工具箱让程序设计变为了简单易懂的函 数调用,为信号的功率谱估计开辟了新的简洁途径。因此,近一步的加强对 MATLAB 的研究对我以后的学习会起到很大的帮助。

参考文献
[1] 张雪英. 数字语音处理[M]. 北京: 电子工业出版社, 2010. [2] 薛年喜.MATLAB 在数字信号处理中的应用[M].北京:清华大学出版社,2003.

鲁东大学本科毕业设计
[3] [4] [5] [6] [7] [8] 胡航. 语音信号处理[M]. 哈尔滨: 哈尔滨工业大学出版社, 2000. 易克初, 田斌, 付强. 语音信号处理[M]. 北京: 国防工业出版社, 2000. 宋宁,关华. 经典功率谱估计及其仿真[J]. 现代电子技术, 2008. 万永革. 数字信号处理的 MATLAB 实现[M]. 北京: 科学出版社,2007. 刘卫国. MATLAB 程序设计与应用[M]. 北京: 高等教育出版社,2006. 王嘉梅. 基于 MATLAB 的数字信号处理与时间开发[J]. 西安:西安电子科技大学出 版社,2007.

[9] 程佩青.数字信号处理教程(第二版)[M].北京:清华大学出版社,2010 [10] 韩纪庆 张磊 郑铁然.语音信号处理[M].北京:清华大学出版社,2004

致 谢
本课题在设计和论文的写作过程中,都得到了指导老师白艳梅的悉心指导。从课题 的选择到论文的最终完成,白艳梅老师始终都给予了我细心的指导,并且在耐心指导论 文之余,白艳梅老师仍不忘关心我们的未来,询问我们的工作情况,教导我们找工作的 放向与技巧,这些都让我们获益菲浅,并且将终生受用无穷。毕竟“经师易得,人师难 求”,希望借此机会向白艳梅老师表示最衷心的感谢! 在最后,我要感谢我的爸妈,是你们赋予了我生命,没有你们就没有我的今天,愿 你们永远健康快乐。在论文即将完成之际,我的心情无法平静,从开始进入课题到论文 的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚 谢意!

附录 A 原始信号
[x,fs,bits]=wavread('zhuoyin',[1024 2120]); sound(x,fs,bits); X=fft(x,3096); magX=abs(X); angX=angle(X); subplot(221);plot(x);title('原始信号波形'); subplot(222);plot(X); title('原始信号频谱'); subplot(223);plot(magX);title('原始信号幅值'); subplot(224);plot(angX);title('原始信号相位');

附录 B 短时能量
x=wavread('beiyong.wav'); %计算N=50,帧移=50时的语音能量 s=fra(50,50,x) %对输入的语音信号进行分帧,其中帧长50,帧移50 s2=s.^2; %一帧内各样点的能量 energy=sum(s2,2) %求一帧能量 subplot(2,2,1) %定义画图数量和布局

鲁东大学本科毕业设计
plot(energy) %画N=50时的语音能量图 xlabel('帧数') %横坐标 ylabel('短时能量E') %纵坐标 legend('N=50') %曲线标识 axis([0,1500,0,40]) %定义横纵坐标范围 %计算N=100,帧移=100时的语音能量 s= fra(100,100,x) s2=s.^2; energy=sum(s2,2) subplot(2,2,2) plot(energy) %画N=100时的语音能量图 xlabel('帧数') ylabel('短时能量') legend('N=100') axis([0,750,0,80]) %定义横纵坐标范围 %计算N=400,帧移=400时的语音能量 s=fra(400,400,x) s2=s.^2; energy=sum(s2,2) subplot(2,2,3) plot(energy) %画N=400时的语音能量图 xlabel('帧数') ylabel('短时能量') legend('N=400') axis([0,190,0,200]) %定义横纵坐标范围 %计算N=800,帧移=800时的语音能量 s=fra(800,800,x) s2=s.^2; energy=sum(s2,2) subplot(2,2,4) plot(energy) %画N=400时的语音能量图 xlabel('帧数') ylabel('短时能量') legend('N=800') axis([0,95,0,400]) %定义横纵坐标范围 %其中fra()为分帧函数,其MATLAB程序如下: function f=fra(len,inc,x) %对读入语音分帧,len为帧长;inc为帧重样点数;x为 %输入语音数据 fh=fix(((size(x,1)-len)/inc)+1) %计算帧数 f=zeros(fh,len); %设一个零矩阵,行为帧数,列为帧长 i=1;n=1; while i<=fh %帧间循环 j=1; while j<=len %帧内循环

鲁东大学本科毕业设计
f(i,j)=x(n); j=j+1;n=n+1; end n=n-len+inc; i=i+1; end

%下一帧开始位置

附录 C 短时自相关分析
x= wavread('zhuoyin.wav'); s1=x(1:320); N=320; %选择的窗长,加 N=320 的矩形窗 A=[]; for k=1:320; sum=0; for m=1:N-(k-1); sum=sum+s1(m)*s1(m+k-1); end A(k)=sum; end for k=1:320 A1(k)=A(k)/A(1); end N=160; B=[]; for k=1:320; sum=0; for m=1:N-(k-1); sum=sum+s1(m+k-1); end B(k)=sum; end for k=1:320 B1(k)=B(k)/B(1); end N=70; C=[]; for k=1:320;

%计算自相关

%归一化 A(k) %选择的窗长,%加 N=160 的矩形窗

%计算自相关

%归一化 B(k) %选择的窗长,加 N=70 的矩形窗

鲁东大学本科毕业设计
sum=0; for m=1:N-(k-1); sum=sum+s1(m)*s1(m+k-1); end C(k)=sum; end for k=1:320 C1(k)=C(k)/C(1); end s2=s1/max(s1) figure(1) subplot(4,1,1) plot(s2) title('语音信号') xlabel('样点数') ylabel('幅值') axis([0,320,-2,2]) subplot(4,1,2) plot(A1) xlabel('延时 k') ylabel('R(k)') axis([1,320,-2,2]); legend('N=320') subplot(4,1,3) plot(B1); xlabel('延时 k') ylabel('R(k)') axis([1,320,-2,2]); legend('N=160') subplot(4,1,4) plot(C1); xlabel('延时 k') ylabel('R(k)') axis([0,320,-2,2]); legend('N=70')

%计算自相关

%归一化 C(k)

附录 D AMDF 法提取

鲁东大学本科毕业设计
b=wavread('zhuoyin.wav'); b1=b(1:640); N=320; A=[]; for k=1:320; sum=0; for m=1:N; sum=sum+abs(b1(m)-b1(m+k-1)); end A(k)=sum; end s=b(1:320) figure(1) subplot(2,1,1) plot(s); xlabel('样点') ylabel('· 幅度') axis([0,320,-2*10^3,2*10^3]) subplot(2,1,2) plot(A); xlabel('延时 k') ylabel('AMDF') axis([0,320,0,3.5*10^5])

附录 E 功率谱估计
%直接法 Fs=8000; %采样频率 nFFT=10240; n=0:1/Fs:1; %产生含有噪声的序列改变n的取值范围观察图形的变换 x=wavread('zhuoyin.wav'); X=fft(x,nFFT); Pxx=abs(X).^2/length(n); t=0:round(nFFT/2-1); k=t*Fs/nFFT; P=10*log(Pxx(t+1)); plot(k,P);

鲁东大学本科毕业设计
%间接法 Fs=8000; %采样频率 nFFT=1023; n=0:1/Fs:1; %产生含有噪声的序列改变n的取值范围观察图形的变换 x=wavread('zhuoyin.wav'); Cx=xcorr(x,'unbiased'); Cxk=fft(Cx,nFFT); Pxx=abs(Cxk);%求解PSD t=0:round(nFFT/2-1); k=t*Fs/nFFT; P=10*log(Pxx(t+1)); %纵坐标的单位为dB plot(k,P); %Welch法 Fs=8000; nfft=1024; t=0:1/Fs:1; xn=wavread('zhuoyin.wav'); X=fft(xn,nfft); window=boxcar(100); %矩形窗 noverlap=20; %数据无重叠 [Pxx,f1]=pwelch(xn,window,noverlap,nfft,Fs); PXX=10*log10(Pxx); plot(f1,PXX); title('矩形窗'); xlabel('频率(Hz)'); ylabel('功率谱(dB)');


相关文章:
语音信号处理及MATLAB实现课程设计
对语音信号进行处理和分析, 要求学生采集语音信号 后,在 MATLAB 软件平台进行频谱分析,并对速配采集的语音信号加入干扰噪声,对加 入噪声的信号进行频谱分析,设计合适...
毕业论文_基于Matlab的语音信号处理-精品
毕业论文_基于Matlab的语音信号处理-精品_理学_高等教育_教育专区。毕业论文 语音信号分析与处理系统设计语音信号分析与处理系统设计 摘要语音信号处理是研究用数字信号...
基于MATLAB的有噪声语音信号处理
基于MATLAB 的有噪声语音信号处理 - 南京林业大学 本科毕业设计(论文) 本科毕业设计(论文) 题 目: 基于 MATLAB 的有噪声语 音信号处理 二 O 一一 年 六月十日...
基于matlab语音信号处理设计毕业论文
基于matlab语音信号处理设计毕业论文_工学_高等教育_教育专区。Matlab 语音信号处理 摘要 语音信号处理是研究用数字信号处理技术和语音学知识对语音信号进行处理的新兴...
基于matlab的语音信号处理
数字信号处理设计报告 题目:基于 Matlab 的语音信号处理 系别信息工程学院 专业班级通信工程 1342 学生姓名范泉 指导教师 吉李满 提交日期 2016 年 6 月 10 日 ...
Matlab语音信号处理
Matlab语音信号处理_电子/电路_工程科技_专业资料。Matlab语音信号处理 Matlab语音信号处理Matlab 语音信号处理一 、设计目的综合运用数字信号处理的理论知识进行频谱分析...
基于MATLAB的个人语音信号处理
基于MATLAB的个人语音信号处理_计算机软件及应用_IT/计算机_专业资料 暂无评价|0人阅读|0次下载|举报文档基于MATLAB的个人语音信号处理_计算机软件及应用_IT/计算机_...
Matlab语音信号处理_图文
Matlab语音信号处理_理学_高等教育_教育专区。matlab毕业设计和语音课设必用的资料。。。包含fir例程iir例程 以及语音信号在处理的时候的步骤、、 ...
matlab的语音信号处理
matlab的语音信号处理_信息与通信_工程科技_专业资料。本文基于Matlab的语音信号处理包括短时能量分析、短时自相关分析、AMDF法提取基音周期、谱估计等。本科...
本科毕业论文_Matlab的语音信号处理分析
本科毕业论文_Matlab的语音信号处理分析_理学_高等教育_教育专区。数字信号处 理结 业论文 语音信号分析与处理系统设计语音信号分析与处理系统设计 摘要语音信号处理是...
更多相关标签:
matlab语音信号处理 | matlab语音信号 | matlab语音信号采集 | matlab语音信号盲分离 | matlab语音信号去噪 | matlab在语音信号分析 | matlab读取语音信号 | matlab语音信号识别 |