基音周期检测算法比较

更新时间:2024-03-02 18:15:03 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

本科毕业论文

题 目 语音基音周期检测算法比较 学 院 管理科学与工程学院 专 业 电子信息工程 班 级 081信工(1)班 学 号 200883082 姓 名 周刚 指导老师 段凯宇 讲师

二〇一二 年 六 月

语音基音周期检测算法比较

摘要

基音周期作为语音信号处理中描述激励源的重要参数之一,广泛的应用于语音合成、语音编码和语音识别等语音信号处理等技术领域。准确可靠的对基音周期进行检测将直接影响整个语音处理系统的性能。 常用的基音检测算法对于纯净语音信号都能达到较好的检测效果。然而,实际当中的语音信号不可避免的会受到外界背景噪音的影响,使得这些检测算法的检测效果都不是很理想,为此本文用两种基本算法对语音信号滤波前后进行基音周期检测,在进行比较。

论文首先介绍了语音基音检测算法的研究背景极其重要意义。其次对现有的基音检测算法进行了归纳和总结,并详细的介绍本文将用的两种基本基音检测算法的基本原理及实现。最后在Matlab上对语音信号进行基音周期检测。

论文还完成了算法的程序设计,在Matlab7.0仿真环境下,对上诉算法进行仿真验证,并且在滤波前后做了对比实验。实验结果表明,经过滤波的语音信号基音周期检测的更加准确。

关键词:基音检测;自相关函数法;平均幅度差函数法;基音轨迹

Abstract

Pitch as in speech signal processing is one of the important parameters to describe the excitation source, widely used in speech synthesis, speech coding and speech recognition speech signal processing technology. Accurate pitch period detection will directly affect the performance of the speech processing system.

Commonly used algorithm for pitch detection for clean speech signal to achieve good detection effect. However, the actual speech signal will be inevitably influenced by external effects of background noise, so the detection algorithm to detect the effect is not very ideal, the paper use two basic algorithms before and after filtering the speech signal pitch detection, in comparison.

The thesis first introduces the research background of speech pitch detection algorithm is very important. Next to the existing algorithm for pitch detection are summarized, and a detailed introduction to this article will use the two kinds of basic pitch detection algorithm is the basic principle and realization. Finally in Matlab on speech signal pitch period detection.

The paper also finished programming algorithm, in the Matlab7.0 simulation environment, the algorithm is validated by simulation, and the contrast experiments were done before and after filtering. The experimental results show that, after the filtering of the speech signal pitch period detection is more accurate.

Keywords: pitch detection; autocorrelation function; the average

magnitude difference function method; pitch contrail

目 录

第1章 绪论······················································ 1

1.1 引言·························································· 1 1.2 基音检测的定义和意义·········································· 1 1.3 基音检测的研究现状············································ 2 1.4 论文的结构安排················································ 3

第2章 基音检测的常用算法······································ 4

2.1 引言·························································· 4 2.1常用的基音检测算法及原理······································ 4 2.2.1 自相关函数法············································· 4 2.2.2 平均幅度差函数法········································· 6 2.3本章小结······················································· 7

第3章 基于Matlab基因周期的检测································· 9

3.1 语音文件的录制与读入·········································· 9 3.2 语音信号的采样与分帧·········································· 9 3.3 语音信号基音周期的检测······································· 11 3.3.1 短时自相关函数法检测基音周期····························· 11 3.3.2 短时平均幅度差函数法检测基音周期························· 12 3.4 基音周期检测的后处理········································· 14 3.5 滤波后的基音周期检测········································· 15 3.6 本章小结····················································· 18

第4章 总结与展望··············································· 19 参考文献························································· 20 致谢······························································ 21 附录······························································ 22

安徽财经大学管理科学与工程学院本科毕业论文

第1章 绪论

1.1引言

语音是语言的声学表现是人类相互之间进行信息交流时所用的重要载体和基本手段,随着现代信息科学技术的飞速发展,尤其是计算机网络技术的日益普及和完善,是的语音信号处理技术发挥着越来越重要的作用。目前,语音信号处理的一系列技术及其应用已经成为信息社会中不可或缺的重要组成部分,对促进信息社会的发转具有重要意义。

语音信号处理是语音学的数字信号处理相结合而形成的一门综合性学科,包括语音合成、语音识别、语音编码和说话人识别等四大分支[1]。语音信号处理和认知科学、心理学、语言学、计算机科学、模式识别和人工智能等学科联系紧密。语音信号处理技术的发展依赖于这些学科的发展,而语音信号处理技术的进步也会促进这些学科的发展[2]。

在语音信号处理中,语音信号参数提取的准确性非常重要。只有获得准确的可表征语音信号本质特征的参数,才有可能利用这些参数进行高效的语音合成,语音识别以及语音压缩编码解码处理,其中基音周期的提取在语音信号众多参数提取中尤为重要,其提取的准确与否直接影响到合成语音是否真实再现原始语音信号的频谱[3]。

1.2 基音检测的定义和意义

人在发音时,根据声带是否震动可以将语音信号分为清音跟浊音两种。浊音又称有声语言,携带者语言中大部分的能量,浊音在时域上呈现出明显的周期性;而清音类似于白噪声,没有明显的周期性。发浊音时,气流通过声门使声带产生张弛震荡式振动,产生准周期的激励脉冲串。这种声带振动的频率称为基音频率,相应的周期就成为基音周期[4]。

通常,基音频率与个人声带的长短、薄厚、韧性、劲度和发音习惯等有关系,在很大程度上反应了个人的特征。此外,基音频率还跟随着人的性别、年龄不同而有所不同。一般来说,男性说话者的基音频率较低,大部分在70~200Hz的范围内,而女性说话者和小孩的基音频率相对较高,在200~450Hz之间。

基音周期的估计称谓基音检测,基音检测的最终目的是为了找出和声带振动频率完全一致或尽可能相吻合的轨迹曲线。

1

安徽财经大学管理科学与工程学院本科毕业论文

基因周期作为语音信号处理中描述激励源的重要参数之一,在语音合成、语音压缩编码、语音识别和说话人确认等领域都有着广泛而重要的问题,尤其对汉语更是如此。汉语是一种有调语言,而基因周期的变化称为声调,声调对于汉语语音的理解极为重要。因为在汉语的相互交谈中,不但要凭借不同的元音、辅音来辨别这些字词的意义,还需要从不同的声调来区别它,也就是说声调具有辨义作用;另外,汉语中存在着多音字现象,同一个字的不同的语气或不同的词义下具有不同的声调。因此准确可靠地进行基音检测对汉语语音信号的处理显得尤为重要。

1.3 基音检测的研究现状

自进行语音信号分析研究以来,基音检测一直是一个重点研究的课题。尽管目前基音检测的方法有很多种,然而这些方法都有其局限性。迄今为止仍然没有一种检测方法能够适用不同的说话人、不同的要求和环境、究其原因,可归纳为如下几个方面[5]。

1.语音信号变化十分复杂,声门激励的波形并不是完全的周期脉冲串,在语音的头、尾部并不具有声带振动那样的周期性,对于有些清浊音的过度帧很难判定其应属于周期性或非周期性,从而也就无法估计出基音周期。

2.声道共振峰有时会严重影响激励信号的谐波结构,使得想要从语音信号中去除声道影响,直接取出仅和声带振动有关的声源信息并不容易。

3.在浊音语音段很难对每个基因周期的开始和结束位置进行精确的判断,一方面因为语音信号本身是准周期的。另一方面因为语音信号的波形受共振峰、噪音等因素的影响。

4.在实际应用中,语音信号常常混有噪声,而噪声的存在对于基音检测算法的性能产生强烈影响。

5.基音频率变化范围大,从低音男声的70Hz到儿童女性的450Hz,接近3个倍频程,给基因检测带来了一定的困难。

尽管语音检测面临着很多困难,然而由于基因周期在语音信号处理领域的重要性,使得语音基因周期检测一直是不断研究改进的重要课题之一。数十年来,国内外众多学者对如何准确地从语音波形中提取出基因周期作出了不懈的努力,提出了多种有效的基音周期检测方法。我国基因检测方面的研究起步要比国外发达国家晚一点,但是进步很大,特别是对汉语的基音检测取得成果尤为突出。目

2

安徽财经大学管理科学与工程学院本科毕业论文

前的基因检测算法大致可分为两大类:非基于事件检测方法和基于事件检测方法

[6]

,这里的事件是指声门闭合。

非基于事件的检测方法主要有:自相关函数法[7-10]、平均幅度查函数法[11],倒

谱法[12][13],以及在以上算法基础上的一些改进算法[14-17]。语音信号是一种典型的时变、非平稳信号,但是,由于语音的形成过程是发音器官的运动密切相关的,而这种物理运动比起声音振动速度来讲要缓慢得多,因此语音信号常常可假定为短时平稳的,即在短时间内,其频谱特性和某些物理特征参量可近似地看作是不变的,非基于事件的检测方法正是利用语音信号短时平稳性这一特点,先将语音信号分为长度一定的语音帧,然而对每一帧语音求基音周期。相比基于事件的基音周期检测方法来说,它的优点是算法简单,运算量小,然而从本质上说这些方法无法检测帧内基因周期的非平稳变化,检测精度不高。

基于事件的检测方法是通过定位声门闭合时刻来对基因周期进行估计,而不需要对语音信号进行短时平稳假设,主要有小波变换方法和Hilbert-Huang变换方法两种。在时域和频域上这两种方法又具有良好的局部特性,能够跟踪基因周期的变化,并可以将微小的基因周期变化检测出来,因此检测精度较高,但是计算量较大。

1.4 论文的结构安排

与论文的主要内容相对应,全文具体章节安排如下:

第1章:首先简述语音信号处理以及基因周期检测的相关概念,其次对基音检测的背景研究意义、意义以及现状进行了说明,最后叙述了论文的结构安排。

第2章:对对现有的基音检测算法进行归纳和总结,针对常用的两种检测算法,详细介绍其检测原理以及事先,并进行了优缺点分析。

第3章:在matlab上对自相关函数法和平均幅度差函数法进行了实现,对语音信号滤波前后的基音周期轨迹图进行了比较。

第4章:对论文的主要内容进行了总结,对语音基因周期的检测算法进行了很好的展望。

最后是参考文献、致谢、附录。

3

安徽财经大学管理科学与工程学院本科毕业论文

第2章 基音检测的常用算法

2.1 引言

基音周期是语音信号的重要参数之一,准确而快速基音周期检测对语音信号的合成、编码、识别等具有重要意义。目前,基音检测的算法有很多种,常用的检测算法要有自相关函数法、平均幅度差函数法等。本章将详细的介绍这两种常用基音检测算法的基本原理。

2.2 常用的基音检测算法及原理

2.2.1 自相关函数法

能量有限的语音信号?s(n)?的短时自相关函数[10][11]定义为:

Rn(?)?N?1??m?0?[s(n?m)w(m)][s(n?m??)w(m??)] (2.1)

其中,?为移位距离,w(m)是偶对称的窗函数。 短时自相关函数有以下重要性质:

①如果?s(n)?是周期信号,周期是P,则R(?)也是周期信号,且周期相同,即R(?)?R(P??)。

②当τ=0时,自相关函数具有最大值;当??0,?P,?2P,?3P?处周期信号的自相关函数达到极大值。

③自相关函数是偶函数,即R(?)?R(??)。

短时自相关函数法基音检测的主要原理是利用短时自相关函数的第二条性质,通过比较原始信号和它移位后的信号之间的类似性来确定基音周期,如果移位距离等于基音周期,那么,两个信号具有最大类似性。

在实际采用短时自相关函数法进行基音检测时,使用一个窗函数,窗不动,语音信号移动,这是经典的短时自相关函数法。窗口长度N的选择至少要大于基音周期的两倍,N越大,短时自相关函数波形的细节就越清楚,更有利于基音检测,但计算量较大,近年来由于高速数字信号处理器(DSP)的使用,从而使得这一算法简单有效,而不再采用结构复杂的快速傅里叶变换法、递归计算法等;N越小,误差越大,但计算量较小。

4

安徽财经大学管理科学与工程学院本科毕业论文

图2-1 (a)原信号(b)自相关函数

图2-2 (a)原信号(b)自相关函数

基于自相关函数的算法是基音周期估计的常用方法,特别适用于噪声环境下的基音提取。自相关函数在基音周期处表现为峰值,相邻两个峰值之间的间隔即为一个基音周期。但通常情况下,基波分量往往不是最强的分量,丰富的谐波成分使语音信号的波形变得非常复杂,给基音检测带来了困难,经常发生基频估计

5

安徽财经大学管理科学与工程学院本科毕业论文

结果为其实际基音频率的二次倍频或二次分频的情况。加之还有清浊混杂等情况,使基音检测成为一大难题。

如图2-1(a)是一帧语音信号,2-1(b)是这帧语音信号的自相关函数,可以看出自相关函数在基音周期处表现为峰值,这些峰值点之间的间隔的平均值就是基音周期,如图2-2(b)所示可以看出自相关函数检测出的基音周期是原始信号基音周期的一半,这是由于谐波峰值点(箭头所示)的影响,这就是上述缺点中所说的倍频现象。

2.2.2 平均幅度差函数法

语音信号?s(n)?的短时平均幅度差函数[12][13]定义为:

1N?1Fn(?)??s(n?m)w1(m)?s(n?m??)w2(m??) (2.2)

Rn?0其中,w(m)是窗函数,N是一帧语音信号的长度,因为语音信号的浊音段具有周期性,我们假设基音周期为P,则在浊音段,Fn(?)在???P,?2P,?3P?处将出现谷点,谷点间的距离即为基音周期。

实际应用中,窗函数w1(m)和w2(m)取矩形窗,这样可使短时平均幅度差函数

Fn(?)的定义更简单。短时平均幅度差函数可以写成:

1N?1Fn(?)??s(n)?s(n??)Rn?0??0,1,?N?1 (2.3)

由于Fn(?)只需加法、减法和取绝对值等计算,故算法简单,很易于硬件实现,从而使得短时平均幅度差函数法在基音检测中使用得相当普遍,著名的10阶线性预测声码器LPC-10声码器就采用AMDF法来进行基音周期的提取。研究表明:当在静音环境下或当噪声较小时,AMDF法可以取的较好的检测结果,但在语音环境较恶劣、信噪比较低时,检测的效果很差,难以让人满意。

如图2-3(a)是一帧语音信号,2-3(b)是这帧语音信号的平均幅度差函数,可以看出平均幅度差函数在基音周期处表现为谷值,这些谷值之间的间隔的平均值就是所要求得基音周期。如图2-4(a)是在这帧语音信号中加入信噪比是2dB噪声后的波形,由图2-4(b)可以看出它的平均幅度差函数中出现了很多谐波分量,基音峰值点基本淹没在这些谐波分量中,影响了基音周期的判断。

6

安徽财经大学管理科学与工程学院本科毕业论文

图2-3 (a) 原信号(b) 平均幅度差函数

图2-4 (a)加噪信号(b) 平均幅度差函数

2.3 本章小结

本章对常用基于ACF、AMDF的基音检测算法的基本原理进行了详细介绍,并进行了分析。两种算法对纯净的语音信号都能取得较好的检测精度但是由于语音信号的复杂多变,以及噪声等因素的影响,这些方法都有一定的局限性。基于语

7

安徽财经大学管理科学与工程学院本科毕业论文

音信号短时平稳性,它们的优点是比较简单,主要应用于只需要平均基音周期作为参数的语音编解码,语音识别等。

自相关函数法具有很好的抗噪性,但易受半频、倍频错误影响。平均幅度差函数法只需加法、减法和取绝对值等计算,算法简单,运算量相比自相关函数法大为减少,易于硬件实现。

8

安徽财经大学管理科学与工程学院本科毕业论文

第3章 基于Matlab基因周期的检测

3.1 语音文件的录制与读入

1.利用windows附件中的录音机功能录制2-3秒的.wav语音文件,并以a为文件名保存到Matlab/work的文件夹中。 a.打开 开始/程序/附件/娱乐/录音机;

b.自已说话a的四个音调录音(按

键),到2-3秒时停止(按

键);

c.将录制的文件加存为C:/Matlab/work中,文件名为a1.wav,a2.wav,a3.wav,

a4.wav,采样频率选11.025KHz,16位,单声道;

2.打开Matlab并新建一.m文件;

3.在.m文件中用y=wavread(‘a1.wav’)命令读入语音文件。

3.2 语音信号的采样和分帧

这里的“采样”是指从语音信号中选取一段样本,一般取样点数为帧长的整数倍。短时分析将语音分为一段一段来处理,每一段就称为一“帧”。分帧时需要对语音信号进行加窗操作,窗口长度的选择非常重要,窗口长度过短会使得分析

9

安徽财经大学管理科学与工程学院本科毕业论文

窗内没有包含足够的数据点来进行周期判断,且短时能量变化剧烈;窗口长度过长,短时能量是一段长时间的平均,不但不能反映语音信号基频的细节变化部分,而且使得计算量增大。窗口长度至少要大于基音周期的两倍。一般窗长选为120-240点,分帧模块主要完成将取样模块中获得的语音样值点分为若干个语音帧。

以a1.wav语音为例,在Matlab上进行语音的采样与分帧。 打开Matlab并新建一.m文件,运行:

x=wavread('a1.wav');%读取声音文件

figure(1);

stem(x,'.'); %显示声音信号的波形

得到的波形如下:

图3-1 a1原始语音波形

对语音信号采样,通过matlab对语音文件“a1.wav”计算得知其语音长度为2.5秒,若采样频率为11KHz,共计27500个采样点。采样模块从采样频率为11KHz的语音信号中截取1秒到2秒这一时间段,取了11000个样点进行分析,取帧长为20ms,即每帧为220个样点值,共分为50帧。

10

安徽财经大学管理科学与工程学院本科毕业论文

打开Matlab,运行:

x=wavread('a1.wav');%读取声音文件

x=x(11001:22000); figure(1);

stem(x,'.'); %显示声音信号的波形

得到波形如下:

图3-2 a1采样信号波形

3.3 语音信号基音周期的检测

3.3.1 短时自相关函数法检测基音周期

对每一帧信号进行自相关运算程序如下:

n=220; %取20ms的声音片段,即220个样点 for m=1:length(x)/n; %对每一帧求短时自相关函数

for k=1:n;

Rm(k)=0; for i=(k+1):n;

Rm(k)=Rm(k)+x(i+(m-1)*n)*x(i-k+(m-1)*n);

end

11

安徽财经大学管理科学与工程学院本科毕业论文

end

p=Rm(10:n); %防止误判,去掉前边10个数值较大的

[Rmax,N(m)]=max(p); %读取第一个自相关函数的最大点

end %补回前边去掉的10个点 N=N+10;

T=N/8; %算出对应的周期

figure(2);stem(T,'.');axis([0 length(T) 0 10]);

xlabel('帧数(n)');ylabel('周期(ms)');title('各帧基音周期');

得到结果如下:

图3-3 a1基音轨迹图

3.3.2 短时平均幅度差函数法检测基音周期

对每一帧信号进行平均幅度差运算程序如下:

x=wavread('a1.wav');%读取声音文件

12

安徽财经大学管理科学与工程学院本科毕业论文

b1=x(11001:22000);

figure(1);

stem(b1,'.'); %显示声音信号的波形

N=200;%窗长 A=[];

for k=1:200%延迟长度 sum=0; for m=1:N

sum=sum+abs(b1(m)-b1(m+k-1)); end A(k)=sum; end

s=x(11001:22000); figure(2) subplot(211); plot(s); subplot(212); plot(A); 得到结果如下:

13

安徽财经大学管理科学与工程学院本科毕业论文

图3-4 a1平均幅度差运算

3.4 基音周期检测的后处理

无论采用哪一种基音周期检测算法都可能产生基音检测的错误,使求得的基音周期轨迹中一个或几个基音周期估计值偏离了正常的估计(通常是偏离到正常值的两倍或1/2),并称这种偏离点为基音轨迹的“野点”。此时为了去除这些野点,可以采用各种平滑算法,其中最常用的是中值平滑算法和线性平滑算法。

这里采用中值平滑处理,中值平滑处理的基本原理是:设x(n)为输入信号,y(n)为中值滤波器的输出,采用一个滑动窗,输出值就是将窗外的中心移到n处时窗口输入样点的中值,及n点的左右各取L个样点。连同被平滑点中心共同构成一组信号采样点(共2L+1个样值),然后将这(2L+1)个样点按大小序列排成一排,此序列中中间着作为平滑器的输出。L值一般为1或2,即中值平滑起的“窗口”一般套住3个火5个样点。中值平滑的有点是既可以有效的除去少量的野点,又不会破坏基因周期轨迹中两个平滑段之间的阶跃性变化。

得到基音轨迹图后,在matlab中运行:

T1= medfilt1(T,5); %去除野点,中值平滑

14

安徽财经大学管理科学与工程学院本科毕业论文

figure(3);stem(T1,'.');axis([0 length(T1) 0 10]);

xlabel('帧数(n)');ylabel('周期(ms)');title('各帧基音周期');

得到结果如下:

图3-6 处理后的a1基音轨迹图

3.5 滤波后的基音周期检测

对采样信号进行滤波处理,这里用截至频率为500Hz的低通滤波器,阻带衰减20dB,过度带宽0.1π。

打开matlab,运行如下程序: [x,fs,bits]=wavread('a1.wav'); x1=x(11001:22000); figure(1);

plot(x1);%做原始语音信号的时域图形 title('原始语音信号'); fc1=500;

15

安徽财经大学管理科学与工程学院本科毕业论文

N1=2*pi*0.9/(0.1*pi) wc1=2*pi*fc1/fs; if rem(N1,2)==0 end

Window= boxcar (N1+1); %长度为N1的矩形窗Window b1=fir1(N1,wc1/pi,Window); figure(2); freqz(b1,1,512);

title('低通滤波器的频率响应'); y= filter(b1,1,x1);%对信号进行低通滤波 figure(3); plot(y);

title('信号经过低通滤波器(时域)'); 得到结果如下:

N1=N1+1;

16

安徽财经大学管理科学与工程学院本科毕业论文

图3-7 低通滤波器的频率响应

图3-8 a1经过低通滤波器的波形

再对滤波后的的语音信号y检测基因周期,用上面讲述的自相关函数法和平均幅度差法进行基音周期的检测,再进行中值平滑处理,最后进行比较。

下图是自相关函数法检测滤波后的a1的基音轨迹图。

17

安徽财经大学管理科学与工程学院本科毕业论文

图3-9 a1滤波后的基音轨迹图

图3-9跟图3-6比较发现,检测精度有明显的提高。

3.6 本章小结

本章在Matlab上对自相关函数法和平均幅度差法进行了实现,并且进行了比较,随后又把采样语音信号进行滤波处理再进行基音周期的检测,跟之前的进行比较,可以看出,检测精度有明显的提高。Matlab上对a2.wav,a3.wav,a4.wav基音检测的程序跟结果图片全放在附录。

18

安徽财经大学管理科学与工程学院本科毕业论文

第4章 总结与展望

语音信号的基音周期是描述激励源的重要特征参数之一,准确的检测语音信号的基音周期对高质量的语音分析与合成、语音压缩编码、语音识别等都具有重要意义。本论文讨论了几种常用的基音周期检测方法自相关函数法和平均幅度差函数法以及在matlab上的实现。

论文中首先介绍了几种常见的语音基音周期检测方法如自相关函数法(ACF)、平均幅度差法(AMDF)。自相关函数方法适合于噪声环境下,但单独使用经常发生基频估计结果为其实际基音频率的二次倍频或二次分频的情况;平均幅度差法在静音环境下或噪声较小时可以取得较好的检测结果,但在语音环境较恶劣、信噪比较低时,检测的结果下降较快,难以让人满意。

基音检测是语音处理中的一个非常重要的问题,但由于影响基音检测的因素众多。使得基音周期的准确估计非常困难。尽管基音周期检测有许多困难,但因为它的重要性,基音周期检测一直是一个研究的重要课题。为了从语音波形中准确地提取基音的工作,使全世界的科学家忙了几十年,从20世纪60年代以来出现了很多种基音周期检测方法,特别是在有噪环境下的语音信号的基音周期检测方面更是提出了许多有效的方法。进行基音检测方面早期研究工作的国家主要有美国等欧美国家,之后,我国在基音检测方面,尤其是对汉语的基音检测工作也取得了很大进展。

为了提高基音检测的准确性,降低计算复杂度,人们已经从基于事件的检测方法和非基于事件的检测方法出发 ,开发了许多基音检测算法 。

我相信以后在基音周期方向,人们会取得重大的突破。

19

安徽财经大学管理科学与工程学院本科毕业论文

参考文献

[1] 易克初,田斌,付强.语音信号处理[M].北京:国防工业出版社,2000:1-10页。

[2] 胡航.语音信号处理[M].哈尔滨:哈尔滨工业出版社,2000。

[3] 付青青,吴爱平.基于IATLAR的语音信号自相关基音检测.长江大学学报2006.O3—4:99—10l。

[4] 张雄伟,陈亮,杨吉斌.现代语音处理技术及应用[M].北京:机械工业出版社,2003:9-11页。

[5] 冯康,时慧坤.语音先好基音检测的现状及发展[J].微机发展,2004,14(3):95-98页。

[6] 李娟.基音周期检测算法研究及在语音合成中的应用[D].太原理工大学,2008:3-5页。

[7] 韩纪庆,张磊,郑铁然.语音信号处理[M].北京:清华大学出版社,2004:1、75、85-89页。

[8] 杨树功.小波分析在语音信号基音检测中应用研究[D].西安:西北工业大学,2005:1-2页。

[9] 马祥杰,孟相如,张百生.一种自相关基音检测算法[J].通信技术,2003(5):9-11页。

[10] 鲍长春,樊昌信.基于归一化互相关函数的基音检测算法[J].通信学报,1998,19(10):27-31页。

[11] 王小亚.倒谱在语音的基音和共振峰提取中的应用[J].工程应用,2004,44(1):57-61页。

[12] 赵建伟,楼宏伟,徐大为,刘重庆.噪音环境下的基音检测方法[J].红外与激光工程,2002,21(1):5-8页。

[13] 徐刚,黄冰.基于小波变换和归一化自相关的基音检测算法[J].桂林电子工业学院学报,2003,23(6):2-5页。

[14] 陈小利,徐金普.利用小波变换加权自相关的基音检测算法[J].数据采集与处理,2007,22(4):463-467页。

[15] 李香春,杜利明.一种基于多尺度边缘特征提取的基音检测算法[J].中电子学报,2003,31(10):1500-1502页。

20

安徽财经大学管理科学与工程学院本科毕业论文

致 谢

首先衷心感谢我的导师段凯宇段博士。段老师在通信、信号处理等领域都具有很高的理论造诣和丰富的工程经验。他严禁的治学态度,勤奋的工作精神、对事业孜孜不倦的专研精神以及积极的人生态度都给我留下了深刻的印象,让我受益匪浅。在完成论文期间,段老师对我的论文的研究工作进行了悉心的指导,并提出了大量的宝贵意见,使本人的论文工作得以顺利完成。在此,向我培养我而付出辛勤劳动的段老师表示我最崇高的的敬意和诚挚的感谢!

其次,我要感谢13#307寝室全体同学,感谢他们为我创造安静的学习环境,以及对我完成论文所作出的支持和帮助。

由于本人水平有限,本论文在很多方面存在不足,请各位老师、专家批评指正。谢谢!

21

安徽财经大学管理科学与工程学院本科毕业论文

附 录

语音信号读入、采样、自相关运算的源程序: function a1

x=wavread('a1.wav');%读取声音文件 x=x(11001:22000); figure(1);

stem(x,'.'); %显示声音信号的波形

n=220; %取20ms的声音片段,即220个样点 for m=1:length(x)/n; %对每一帧求短时自相关函数 for k=1:n; Rm(k)=0;

for i=(k+1):n;

Rm(k)=Rm(k)+x(i+(m-1)*n)*x(i-k+(m-1)*n); end end

p=Rm(10:n); %防止误判,去掉前边10个数值较大的点 [Rmax,N(m)]=max(p); %读取第一个自相关函数的最大点 end %补回前边去掉的10个点 N=N+10;

T=N/8; %算出对应的周期

figure(2);stem(T,'.');axis([0 length(T) 0 10]);

xlabel('帧数(n)');ylabel('周期(ms)');title('各帧基音周期');

T1= medfilt1(T,5); %去除野点

figure(3);stem(T1,'.');axis([0 length(T1) 0 10]);

xlabel('帧数(n)');ylabel('周期(ms)');title('各帧基音周期'); 语音信号读入、采样、平均幅度差运算源程序: function a11

x=wavread('a1.wav');%读取声音文件 b1=x(11001:22000); figure(1);

stem(b1,'.'); %显示声音信号的波形 N=200;%窗长 A=[];

for k=1:200%延迟长度 sum=0; for m=1:N

sum=sum+abs(b1(m)-b1(m+k-1)); end

A(k)=sum; end

22

安徽财经大学管理科学与工程学院本科毕业论文

s=x(11001:22000); figure(2) subplot(211); plot(s);

subplot(212); plot(A);

低通滤波器设计,滤波的源程序: [x,fs,bits]=wavread('a1.wav'); x1=x(11001:22000); figure(1);

plot(x1);%做原始语音信号的时域图形 title('原始语音信号'); fc1=500;

N1=2*pi*0.9/(0.1*pi) wc1=2*pi*fc1/fs; if rem(N1,2)==0 N1=N1+1; end

Window= boxcar (N1+1); %长度为N1的矩形窗Window b1=fir1(N1,wc1/pi,Window); figure(2);

freqz(b1,1,512);

title('低通滤波器的频率响应');

y= filter(b1,1,x1);%对信号进行低通滤波 figure(3); plot(y);

title('信号经过低通滤波器(时域)');

语音文件a2.wav语音滤波前后基音轨迹图:

23

安徽财经大学管理科学与工程学院本科毕业论文

图1 a2滤波前基音轨迹图

图2 a2滤波后基音轨迹图

24

安徽财经大学管理科学与工程学院本科毕业论文

语音文件a3.wav语音滤波前后基音轨迹图:

图3 a3滤波前基音轨迹图

25

安徽财经大学管理科学与工程学院本科毕业论文

图4 a3滤波后基音轨迹图

语音文件a4.wav语音滤波前后基音轨迹图:

图5 a4滤波前基音轨迹图

26

安徽财经大学管理科学与工程学院本科毕业论文

图6 a4滤波后基音轨迹图

27

本文来源:https://www.bwwdw.com/article/kbfa.html

Top