数字语音信号处理实验学生.docx
《数字语音信号处理实验学生.docx》由会员分享,可在线阅读,更多相关《数字语音信号处理实验学生.docx(63页珍藏版)》请在冰豆网上搜索。
![数字语音信号处理实验学生.docx](https://file1.bdocx.com/fileroot1/2022-12/11/86509574-8c48-4c77-9ff3-80ccd99571ba/86509574-8c48-4c77-9ff3-80ccd99571ba1.gif)
数字语音信号处理实验学生
数字语音信号处理
实验指导书
北方学院信息科学与工程学院
电子教研室
2014年1月
前言
语音信号处理是研究用数字信号处理技术和语音学知识对语音信号进行处理的新兴的学科,是目前发展最为迅速的信息科学研究领域的核心技术之一。
通过语音传递信息是人类最重要、最有效、最常用和最方便的交换信息形式。
同时,语言也是人与机器之间进行通信的重要工具,它是一种理想的人机通信方式,因而可为信息处理系统建立良好的人机交互环境,进一步推动计算机和其他智能机器的应用,提高社会的信息化程度。
语音信号处理是一门新兴的学科,同时又是综合性的多学科领域和涉及面很广的交叉学科。
虽然从事这一领域研究的人员主要来自信号与信息处理及计算机应用等学科,但是它与语音学、语言学、声学、认知科学、生理学、心理学等许多学科也有非常密切的联系。
20世纪60年代中期形成的一系列数字信号处理的理论和算法,如数字滤波器、快速傅立叶变换(FFT)等是语音信号数字处理的理论和技术基础。
随着信息科学技术的飞速发展,语音信号处理取得了重大的进展:
进入70年代之后,提出了用于语音信号的信息压缩和特征提取的线性预测技术(LPC),并已成为语音信号处理最强有力的工具,广泛应用于语音信号的分析、合成及各个应用领域,以及用于输入语音与参考样本之间时间匹配的动态规划方法;80年代初一种新的基于聚类分析的高效数据压缩技术—矢量量化(VQ)应用于语音信号处理中;而用隐马尔可夫模型(HMM)描述语音信号过程的产生是80年代语音信号处理技术的重大发展,目前HMM已构成了现代语音识别研究的重要基石。
近年来人工神经网络(ANN)的研究取得了迅速发展,语音信号处理的各项课题是促进其发展的重要动力之一,同时,它的许多成果也体现在有关语音信号处理的各项技术之中。
为了深入理解语音信号数字处理的基础理论、算法原理、研究方法和难点,根据数字语音信号处理教学大纲,结合课程建设的需求,我们编写了本实验参考书。
本参考书针对教学大纲规定的八个研究设计型实验,每个实验给出了参考程序,目的是起一个抛砖引玉的作用,学生在学习过程中,可以针对某一个实验进行延伸的创新学习,比如说,语音端点的检测、语音共振峰提取、基于HMM或DTW的有限词汇或大词汇的特定人、非特定人的语音识别、识别率的提高(如何提高有噪环境下的识别率)、以及编码问题等,同时在学习中还可深入思考如何将有关的方法在嵌入式系统或DSP下的实现问题等。
第一章数字语音信号处理教学大纲
一、课程说明
学分数:
2.5
总学时:
54
学时分配:
讲课36学时,实验18学时
适用专业:
电子信息科学与技术
二、课程教学的目的与任务
本课程的学习目的是掌握语音信号处理的基本理论、基本分析方法,了解在语音信号处理领域中相关研究热点,激发学习者对语音处理相关研究方向中的有关兴趣,为以后的开展语音处理相关领域的研究、开发打下一个良好的基础。
本课程是电子信息科学与技术专业的方向模块课。
本门课程的教学分理论和实验教学两部分,理论教学注重培养学生基本问题的分析方法,从而掌握基本的语音信号处理的理论与概念,理论教学还包括多种形式的自主学习,如网上学习、课外阅读、大型作业、主题调查、读书报告、分组讨论等。
实验教学注重培养学生的动手能力、分析和解决问题的能力。
三、课程教学的基本内容及学时分配
1.语音信号处理概述(理论教学:
2学时)
语音信号处理的发展概况,语音信号处理的应用。
2.语音信号的特性及模型(理论教学:
2学时)
语音信号的产生,语音信号的特性,语音信号产生的数字模型,语音感知。
3.语音信号的时域分析(理论教学:
2学时,自主学习:
2学时)
语音信号的数字化和预处理,短时能量分析,短时过零分析,短时相关分析。
4.语音信号的频域分析(理论教学:
2学时,自主学习:
2学时)
短时傅里叶变换,短时傅里叶变换的取样率,语音信号的短时综合,语谱图。
5.语音信号的同态滤波及倒谱分析(理论教学:
2学时,自主学习:
1学时)
同态信号处理的基本原理,复倒谱和倒谱,语音信号两个卷积分量复倒谱的性质,避免相位卷绕的算法,语音信号复倒谱分析实例。
6.语音信号的LP分析(理论教学:
2学时,自主学习:
2学时)
线性预测分析的基本原理,线性预测方程组的建立,线性预测分析的解法,线性预测分析应用,线谱对(LSP)分析,极零模型。
7.语音信号的矢量量化(理论教学:
2学时,自主学习:
1学时)
矢量量化的基本原理,失真测度,最佳矢量量化器和码本的设计,降低复杂度的矢量量化系统,语音参数的矢量量化。
8.语音编码-波形编码法(理论教学:
2学时,自主学习:
0.5学时)
语音信号的压缩编码原理,脉冲编码调制(PCM)及其自适应,预测编码及其自适应APC,自适应差分脉冲编码调制(ADPCM)及自适应增量调制(ADM),子带编码(SBC),自适应变换编码(ATC)。
9.语音编码-参数编码法(理论教学:
2学时,自主学习:
0.5学时)
声码器的基本结构,相位声码器和通道声码器,同态声码器,线性预测声码器,混合编码,各种语音编码方法的比较,语音编码的性能指标和质量评价。
10.隐马尔可夫模型(HMM)(理论教学:
2学时,自主学习:
1学时)
隐马尔可夫模型的引入,隐马尔可夫模型的定义,隐马尔可夫模型三项问题的求解,HMM的一些实际问题。
11.语音识别技术(理论教学:
2学时,自主学习:
1学时)
语音识别概述,动态时间规整(DTW)识别技术,隐马尔可夫模型(HMM)识别技术,语音识别的应用技术。
12.语音合成、语音增强技术(理论教学:
2学时,自主学习:
1学时)
语音合成原理,共振峰合成,线性预测合成,专用语音合成硬件及语音合成器芯片,语音增强。
四、教学方法
本课程总学时54(总学分:
2.5);其中课堂讲授:
24学时;自主学习:
12学时;实验:
18学时。
理论课采用课堂教学方式,使用多媒体辅助教学手段,进行基本内容的讲授。
适当安排一定的习题课时间,并布置适当的设计题以培养学生的设计、分析问题的能力。
自主学习内容由学生自主学习参考教材的内容,并采用多种渠道,如查阅最新语音信号处理方面的科技文献、资料,作出学习报告。
目的是培养学生的自学能力和科技文献的检索和查阅能力,同时可以有助于学生了解和掌握语音信号处理领域的最新技术进展和应用情况,将理论知识和实际应用结合起来,促进学生学习的积极性和主动性。
本课程讲授自主学习的内容依每部分的教学进度交替安排。
实验为研究型(设计型)实验,共安排8个实验,为了真正达到研究设计型实验的目的,将自主学习和研究设计型实验结合起来,统一安排。
五、考核及成绩评定方式
本课程的考核内容由下面四部分组成:
1、期末考试M1(100分)
考核内容:
教学计划全部内容;考核形式:
闭卷考试。
占总评成绩的70%
2、实验考核(含自主学习)M2(100分)
设计型实验共占10%,评分标准是按试验分析方法、所设计的实验程序、实验结果等,由任课教师评定成绩
3、论文及主题报告M3(100分)
按一般科学论文的写作规范的要求,写作专题论文(含自主学习),每一学生选择至少一个写作规范的专题论文进行课堂交流报告,根据论文写作水平、报告的内容、思路、对问题的理解、以及报告方式等评定成绩。
4、平时考核M4(100分)
由任课主讲教师按课堂表现、平时实验、自主学习情况及作业评定成绩
期末总评成绩M=M1×60%+M2×10%+M3×20%+M4×10%
六、教材及参考书目
推荐教材:
张雄伟等编著,《现代语音处理技术及应用》,机械工业出版社,2003年。
参考教材:
1、L.R.Rabiner,B.H.Juang.FundamentalsofSpeechRecognition.PrenticeHall,EnglewoodCliffs,1993.清华大学出版社(影印),2002年.
2、胡航.语音信号处理(修订版),哈尔滨工业大学出版社,2002年.
3、易克初,田斌等.语音信号处理,国防工业出版社,2000年.
4、赵力.语音信号处理,机械工业出版社,2003年.
5、吴家安等.语音编码技术及应用,机械工业出版社,2006年.
6、韩继庆,张磊,郑铁然.语音信号处理,清华大学出版社,2004年.
7、D.G.Childers.Matlab之语音处理与合成工具箱(影印版),清华大学出版社,2004年.
8、ThomasF.Quatieri著,赵胜辉等译,《离散时间语音信号处理—原理与应用》,电子工业出版社,2004.
七、实践环节
实验学时数:
18
实验项目数:
8
1、目的与基本要求
实验为研究型(设计型)实验,共安排8个,为了真正达到研究设计型实验的目的,采用开放实验的办法,将自主学习和研究设计型实验结合起来,统一安排。
通过开放实验,目的使学生进一步理解数字语音信息处理的基本方法,提高学生自主分析、发现及解决问题的能力,锻炼学生论文写作能力,为实际的应用打下扎实的基础。
2、研究设计型实验的内容
1)研究设计型实验1:
语音信号的采集及预处理
2)研究设计型实验2:
语音及音乐信号的采样、滤波
3)研究设计型实验3
基于MATLAB的语音信号时域特征分析
要求:
按所学相关语音处理得的知识,通过网上学习、资料查阅,自己设计程序,给出某一语音信号的短时过零率、短时能量、短时自相关特征的分析结果,并借助时域分析方法检测所分析语音信号的基音周期,写出报告(按一般科学论文的写作规范)。
4)研究设计型实验4:
基于MATLAB分析语音信号频域特征
要求:
按所学相关语音处理的得知识,通过网上学习、资料查阅,自己设计程序,给出某一语音信号的短时谱、倒谱、语谱图的分析结果,并借助频域分析方法检测所分析语音信号的基音周期或共振峰,写出报告(按一般科学论文的写作规范)。
5)研究设计型实验5:
基于MATLAB进行语音信号的LPC分析
要求:
按所学相关语音处理的知识,通过网上学习、资料查阅,自己设计程序,给出某一语音信号的LPC分析结果,包括LPC谱、LPCC谱的分析结果,并借助LPC分析方法检测所分析语音信号的基音周期和共振峰,写出报告(按一般科学论文的写作规范)。
6)研究设计型实验6:
基于VQ的特定人孤立词语音识别研究
要求:
按所学相关语音处理的知识,通过网上学习、资料查阅,借助MATLAB工具,自己设计基于VQ的码本训练程序和识别程序(尽量选用所学HMM或DTW方法设计识别程序),能识别特定人的语音,分析所设计系统的特性,写出报告(按一般科学论文的写作规范)。
7)研究设计型实验7:
音乐信号处理
8)研究设计型实验8:
双音多频(DTMF)信号的合成和识别
第二章实验
实验一 语音信号的采集及预处理
一、实验目的
在理论学习的基础上,进一步地理解和掌握语音信号预处理及短时加窗的意义及基于matlab的实现方法。
二、实验原理
1.语音信号的录音、读入、放音等:
练习matlab中几个音频处理函数,利用函数wavread对语音信号进行采样,记住采样频率和采样点数,给出以下语音的波形图(2.wav)。
利用wavplay或soundview放音。
也可以利用wavrecord自己录制一段语音,并进行以上操作(需要话筒)。
2.语音信号的分帧:
对语音信号进行分帧,可以利用voicebox工具箱中的函数enframe。
voicebox工具箱是基于GNU协议的自由软件,其中包含了很多语音信号相关的函数。
3.语音信号的加窗:
本步要求利用window函数设计窗口长度为256(N=256)的矩形窗(rectwin)、汉明窗(hamming)及汉宁窗(hann)),利用wvtool函数观察其时域波形图及频谱特性,比较得出结论。
观察整个信号加矩形窗及汉明窗后的波形,利用subplot与reshape函数将分帧后波形、加矩形窗波形及加汉明窗波形画在一张图上比较。
取出其中一帧,利用subplot与reshape函数将一帧语音的波形、加矩形窗波形及加汉明窗波形画在一张图上比较将得出结论。
4.预加重:
即语音信号通过一个一阶高通滤波器
。
三、实验步骤、实验程序、图形及结论
1.语音信号的录音、读入、放音等
程序:
[x,fs,nbit]=wavread('D:
\2.wav');%fs=10000,nbit=16
y=soundview('D:
\2.wav')
2.语音信号的分帧
程序:
[x,fs,nbit]=wavread('D:
\2.wav');
len=256;
inc=128;
y=enframe(x,len,inc);
figure;
subplot(2,1,1),plot(x)
subplot(2,1,2),plot(y)
3.语音信号加窗:
程序:
N=256;
w=window('rectangle',N);
w1=window('hamming',N);
w2=window('hanning',N);
wvtool(w,w1,w2)
4.预加重
程序:
[x,fs,nbit]=wavread('D:
\2.wav');
len=256;
inc=128;
y=enframe(x,len,inc);
z=filter([1-0.9375],1,y)
figure
(2)
subplot(2,1,1),plot(y)
subplot(2,1,2),plot(z)
四、思考题
1.语音信号包括哪些预处理,作用分别是什么?
2.不同窗口的优缺点,窗口长度如何选取?
实验二语音及音乐信号的采样、滤波
1、实验目的
(1)理解采样率和量化级数对语音信号的影响;
(2)设计滤波器解决实际问题。
2、实验要求
利用电脑的声卡录一段语音信号及音乐信号,
(1)观察使用不同采样率及量化级数所得到的信号的听觉效果,从而确定对不同信号的最佳的采样率;
(2)分析音乐信号的采样率为什么要比语音的采样率高才能得到较好的听觉效果;
(3)注意观察信号中的噪声(特别是50hz交流电信号对录音的干扰,设计一个滤波器去除该噪声。
3、实验提示
(1)推荐录音及播放软件:
CoolEdit;
(2)分析语音及音乐信号的频谱,根据信号的频率特性理解采样定律对信号数字化的工程指导意义;
(3)可用带阻滤波器对50Hz交流电噪声进行去噪处理;
(4)也可研究设计自适应滤波器对50Hz噪声及其它随机环境噪声进行滤波处理。
实验三基于MATLAB的语音信号时域特征分析
一、实验目的
语音信号是一种非平稳的时变信号,它携带着各种信息。
在语音编码、语音合成、语音识别和语音增强等语音处理中无一例外需要提取语音中包含的各种信息。
语音信号分析的目的就在与方便有效的提取并表示语音信号所携带的信息。
语音信号分析可以分为时域和变换域等处理方法,其中时域分析是最简单的方法,直接对语音信号的时域波形进行分析,提取的特征参数主要有语音的短时能量,短时平均过零率,短时自相关函数等。
本实验要求掌握时域特征分析原理,并利用已学知识,编写程序求解语音信号的短时过零率、短时能量、短时自相关特征,分析实验结果,并能掌握借助时域分析方法所求得的参数分析语音信号的基音周期及共振峰。
二、实验原理及实验结果
1.窗口的选择
通过对发声机理的认识,语音信号可以认为是短时平稳的。
在5~50ms的范围内,语音频谱特性和一些物理特性参数基本保持不变。
我们将每个短时的语音称为一个分析帧。
一般帧长取10~30ms。
我们采用一个长度有限的窗函数来截取语音信号形成分析帧。
通常会采用矩形窗和汉明窗。
图1.1给出了这两种窗函数在帧长N=50时的时域波形。
图1.1矩形窗和Hamming窗的时域波形
矩形窗的定义:
一个N点的矩形窗函数定义为如下
hamming窗的定义:
一个N点的hamming窗函数定义为如下
这两种窗函数都有低通特性,通过分析这两种窗的频率响应幅度特性可以发现(如图1.2):
矩形窗的主瓣宽度小(4*pi/N),具有较高的频率分辨率,旁瓣峰值大(-13.3dB),会导致泄漏现象;汉明窗的主瓣宽8*pi/N,旁瓣峰值低(-42.7dB),可以有效的克服泄漏现象,具有更平滑的低通特性。
因此在语音频谱分析时常使用汉明窗,在计算短时能量和平均幅度时通常用矩形窗。
表1.1对比了这两种窗函数的主瓣宽度和旁瓣峰值。
图1.2矩形窗和Hamming窗的频率响应
表1.1矩形窗和hamming窗的主瓣宽度和旁瓣峰值
窗函数
主瓣宽度
旁瓣峰值
矩形窗
4*pi/N
13.3dB
hamming
8*pi/N
42.7dB
2.短时能量
由于语音信号的能量随时间变化,清音和浊音之间的能量差别相当显著。
因此对语音的短时能量进行分析,可以描述语音的这种特征变化情况。
定义短时能量为:
,其中N为窗长
特殊地,当采用矩形窗时,可简化为:
图1.3和图1.4给出了不同矩形窗和hamming窗长的短时能量函数,我们发现:
在用短时能量反映语音信号的幅度变化时,不同的窗函数以及相应窗的长短均有影响。
hamming窗的效果比矩形窗略好。
但是,窗的长短影响起决定性作用。
窗过大(N很大),等效于很窄的低通滤波器,不能反映幅度En的变化;窗过小(N很小),短时能量随时间急剧变化,不能得到平滑的能量函数。
在11.025kHz左右的采样频率下,N选为100~200比较合适。
短时能量函数的应用:
1)可用于区分清音段与浊音段。
En值大对应于浊音段,En值小对应于清音段。
2)可用于区分浊音变为清音或清音变为浊音的时间(根据En值的变化趋势)。
3)对高信噪比的语音信号,也可以用来区分有无语音(语音信号的开始点或终止点)。
无信号(或仅有噪声能量)时,En值很小,有语音信号时,能量显著增大。
图1.3不同矩形窗长的短时能量函数图1.4不同hamming窗长的短时能量函数
3.短时平均过零率
过零率可以反映信号的频谱特性。
当离散时间信号相邻两个样点的正负号相异时,我们称之为“过零”,即此时信号的时间波形穿过了零电平的横轴。
统计单位时间内样点值改变符号的次数具可以得到平均过零率。
定义短时平均过零率:
其中
为符号函数,
,在矩形窗条件下,可以简化为
短时过零率可以粗略估计语音的频谱特性。
由语音的产生模型可知,发浊音时,声带振动,尽管声道有多个共振峰,但由于声门波引起了频谱的高频衰落,因此浊音能量集中于3KZ以下。
而清音由于声带不振动,声道的某些部位阻塞气流产生类白噪声,多数能量集中在较高频率上。
高频率对应着高过零率,低频率对应着低过零率,那么过零率与语音的清浊音就存在着对应关系。
.
图1.5为某一语音在矩形窗条件下求得的短时能量和短时平均过零率。
分析可知:
清音的短时能量较低,过零率高,浊音的短时能量较高,过零率低。
清音的过零率为0.5左右,浊音的过零率为0.1左右,但两者分布之间有相互交叠的区域,所以单纯依赖于平均过零率来准确判断清浊音是不可能的,在实际应用中往往是采用语音的多个特征参数进行综合判决。
短时平均过零率的应用:
1)区别清音和浊音。
例如,清音的过零率高,浊音的过零率低。
此外,清音和浊音的两种过零分布都与高斯分布曲线比较吻合。
2)从背景噪声中找出语音信号。
语音处理领域中的一个基本问题是,如何将一串连续的语音信号进行适当的分割,以确定每个单词语音的信号,亦即找出每个单词的开始和终止位置。
3)在孤立词的语音识别中,可利用能量和过零作为有话无话的鉴别。
图1.5矩形窗条件下的短时平均过零率
4、短时自相关函数
自相关函数用于衡量信号自身时间波形的相似性。
清音和浊音的发声机理不同,因而在波形上也存在着较大的差异。
浊音的时间波形呈现出一定的周期性,波形之间相似性较好;清音的时间波形呈现出随机噪声的特性,样点间的相似性较差。
因此,我们用短时自相关函数来测定语音的相似特性。
短时自相关函数定义为:
令
,并且
,可以得到:
图6给出了清音的短时自相关函数波形,图7给出了不同矩形窗长条件下(窗长分别为N=70,N=140,N=210,N=280)浊音的短时自相关函数波形。
由图1.6、图1.7短时自相关函数波形分析可知:
清音接近于随机噪声,清音的短时自相关函数不具有周期性,也没有明显突起的峰值,且随着延时k的增大迅速减小;浊音是周期信号,浊音的短时自相关函数呈现明显的周期性,自相关函数的周期就是浊音信号的周期,根据这个性质可以判断一个语音信号是清音还是浊音,还可以判断浊音的基音周期。
浊音语音的周期可用自相关函数中第一个峰值的位置来估算。
所以在语音信号处理中,自相关函数常用来作以下两种语音信号特征的估计:
1)区分语音是清音还是浊音;
2)估计浊音语音信号的基音周期。
图1.6清音的短时自相关函数
图1.7不同矩形窗长条件下的浊音的短时自相关函数
5、时域分析方法的应用
1)基音频率的估计
首先可利用时域分析(短时能量、短时过零率、短时自相关)方法的某一个特征或某几个特征的结合,判定某一语音有效的清音和浊音段;其次,针对浊音段,可直接利用短时自相关函数估计基音频率,其方法是:
估算浊音段第一最大峰的位置,再利用抽样率计算基音频率,举例来说,若某一语音浊音段的第一最大峰值约为35个抽样点,设抽样频率为11.025KHZ,则基音频率为11025/35=315HZ。
但是,实际上第一最大峰值位置有时并不一定与基音周期吻合。
一方面与窗长有关,另一方面还与声道特性有关。
鉴于此,可采用三电平削波法先进行预处理。
2)语音端点的检测与估计
可利用时域分析(短时能量、短时过零率、短时自相关)方法的某一个特征或某几个特征的结合,判定某一语音信号的端点,尤其在有噪声干扰时,如何准确检测语音信号的端点,这在语音处理中是富有挑战性的一个课题。
三、附录(参考程序)
1)短时能量
(1)加矩形窗
a=wavread('beifeng.wav');
subplot(6,1,1),plot(a);
N=32;
fori=2:
6
h=linspace(1,1,2.^(i-2)*N);%形成一个矩形窗,长度为2.^(i-2)*N
En=conv(h,a.*a);%求短时能量函数En
subplot(6,1,i),plot(En);
if(i==2)legend('N=32');
elseif(i==3)legend('N=64');
elseif(i==4)legend('N=128');
elseif(i==5)legend('N=256');
elseif(i==6)legend('N=512');
end
end
(2)加汉明窗
a=wavread('beifeng.wav');
subplot(6,1,1),plot(a);
N=32;
fori=2:
6
h=hanning(2.^(i-2)*N);%形成一个汉明窗,长度为2.^(i-2)*N
En=conv(h,a.*a);%求短时能量函数En
subplot(6,1,i),plot(En);
if(i==2)legend('N=32');
elseif(i==3)legend('N=64')