基于语音信号的说话人识别实验报告 李力.docx

上传人:b****4 文档编号:4039406 上传时间:2022-11-27 格式:DOCX 页数:15 大小:430.96KB
下载 相关 举报
基于语音信号的说话人识别实验报告 李力.docx_第1页
第1页 / 共15页
基于语音信号的说话人识别实验报告 李力.docx_第2页
第2页 / 共15页
基于语音信号的说话人识别实验报告 李力.docx_第3页
第3页 / 共15页
基于语音信号的说话人识别实验报告 李力.docx_第4页
第4页 / 共15页
基于语音信号的说话人识别实验报告 李力.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

基于语音信号的说话人识别实验报告 李力.docx

《基于语音信号的说话人识别实验报告 李力.docx》由会员分享,可在线阅读,更多相关《基于语音信号的说话人识别实验报告 李力.docx(15页珍藏版)》请在冰豆网上搜索。

基于语音信号的说话人识别实验报告 李力.docx

基于语音信号的说话人识别实验报告李力

课程设计说明书

 

设计题目:

基于语音信号的说话人识别

专业:

电子信息工程班级:

2008-1

设计人李力

同组人:

侯超、李源基、褚召旭李泽磊

学号:

************

 

山东科技大学

2010年7月1日

山东科技大学

课程设计任务书

电子信息工程专业2008-1班学生李力

一、课程设计题目:

基于语音信号的说话人识别

二、设计原始资料:

MATLAB软件编程环境;PentiumIV计算机

三、设计应解决下列各主要问题:

1、了解语音识别的基础知识

2、理解语音信号的常用特征值及特征提取方法

3、选择一个或几个特征实现对说话人的识别

四、设计说明书应附有下列图纸:

五、命题发出日期:

2008-7-7设计应完成日期:

2008-7-18

 

设计指导教师(签章)

教研室主任(签章)

指导教师对课程设计的评语

 

指导教师(签章):

年月日

摘要

语音是人类相互交流和通信最方便快捷的手段。

如何高效地实现语音传输存储或通过语音实现人机交互,是语音信号处理领域中的重要研究课题。

语音信号处理涉及数字信号处理、语音学、语言学、生理学、心理学、计算机科学以及模式识别、人工智能等诸多学科领域,是目前信息科学技术学科中发展最为迅速的一个领域。

关键字:

语音识别、清音、浊音、短时平均能量、倒谱、短时平均过零率

 

第一章绪论………………………………………………………………………………………1

1.1语音识别技术的发展历史……………………………………………………

1.2语音识别研究的现况与难点…………………………………………………………

第二章方案比较…………………………………………………………………

第三章软件介绍……………………………………………………………………

3.1CoolEditPro2.1

3.2MATLAB介绍

第四章模块设计…………………………………………………………………………………

4.1语音端点检测……………………………………………………………………

4.1.1原理

4.1.2源程序

4.2短时能量

4.2.1用途

4.2.3问题

4.2.3解决方法

4.2.4程序

4.3短时平均过零率

4.3.1原理

4.3.2程序

4.4短时平均过零率

4.5倒谱

4.6主程序

4.7实验结果

第五章设计中的问题

第六章收获与体会…………………………………………………………….

第七章参考文献………………………………………………………………

第八章附录…………………………………………………………………

 

第一章绪论

1.1语音识别技术的发展历史

语音识别技术的研究工作开始于20世纪的50年代,第一个可以用来识别10个英文数字的语音识别系统一Audry系统是在AT&Bell实验室研制成功的。

20世纪60年代,计算机的应用推动了语音识别的发展。

在这个阶段主要是提出了线性预测分析(LP)和动态规划(DP),主要解决了语音信号的产生模型问题。

Bell实验室的S.Pruzanskay提出了基于模式匹配和概率统计来进行语音识别,这对语音识别的发展产生了深远的影响.

20世纪70年代,语音识别技术得到了快速发展。

具体表现在:

理论上,线性预测分析得到进一步的发展,动态时间弯度(DTW)技术基本成熟,特别提出了矢量量化(VQ)和隐马尔可夫模型(HMM)理论。

在实践上,实现了基于线性预测倒谱和DTW技术的特定人孤立词汇的识别系统。

20世纪80年代,语音识别技术得到了进一步发展。

其中显著的特征是HMM模型和人工神经网络(ANN)在语音识别中得到应用。

经过AT&Bell实验室Rabiner等科学家的共同研究,把原来HMM的纯数学模型工程化,从而得到推广。

经过实验证明,采用HMM和ANN模型建立的语音识别系统,性能很好。

进入20世纪90年代,随着多媒体时代的来临,迫切需要语音识别系统从实验室走向实用。

许多发达国家如美国、日本、韩国及IBM.Apple.AT&T.NTT等著名的公司都为语音识别系统的研究投入大量的资金121而ARM技术发展就比较迟,ARM公司成立于1990年11月,全称为Advanced

RISCMachinesLtd,它是由英国的Acorn公司提供技术支持,美国苹果等公司出资合作的美英公司。

ARM公司本身不直接从事芯片生产,也不销售芯片,靠转让设计许可,由合作伙伴生产出各种特色的芯片。

1.2语音识别研究的现况与难点

经过近50年的发展,语音识别己经发展到一个较高的水平,并从实验室走向市场,进入了一个实用化阶段。

由于矢量量化,HMM和人工网络等技术被用于语音信号处理,并经过不断改革与完善,使语音信号处理技术产生突破性的发展。

英语的连续数字语音识别的正确率已经达到了99%以上,而具有高度混淆的英语字母的识别也达到了97%以上。

目前对语音识别的研究主要是一方面对语音学的统计模型的研究,对语音段的建模方法及HMM与人工网络。

另外一方面是为了语音识别的实用化的需要,讲者自适应,听觉模型,快速搜索识别算法以及进一步语音模型的研究。

语音识别研究中也存在下面几个难题:

1、语音识别的一种重要应用是自然语言的识别和理解。

这一工作要解决的问题首先是因为连续语音中的因素、音节或单词之间的调音结合引起的音变,使基本模型的边界变的不明确.其次要建立一个理解语法和语义的规则的专家系统。

2、语音信息变化很大。

语音模型不仅对不同的讲话者是不同的,而且对于同一个讲话者也是不同的。

例如,同一个说话者在随便说话和认真说话时的语音信息也不同;即使同一说话者用相同的方式说话时,其语音模式也受时间的影响,即今天及一个月后,同一个说话者说相同的话时候,语音信息也不相同。

3、语音的模糊性。

说话者在讲话时,不同的语音听起来很相似。

这一点不仅仅在汉语中体现,在其他语言也有说体现。

4、在强噪声的环境下语音识别困难。

语音数据都是在接近理想的条件下采集而成的,然而当语音从实验室走向实际应用时,环境噪声所带来的问题就显得越来越重要了。

第二章方案比较及选择

方案一,基于HMM的与文本有关的说话人识别

方案二

选择方案二

第三章软件介绍

3.1CoolEditPro2.1

CoolEditPRO2.1(功能强大的多轨录音软件)非常出色的数字音乐编辑器和MP3制作软件。

不少人把CoolEdit形容为音频“绘画”程序。

你可以用声音来“绘”制:

音调、歌曲的一部分、声音、弦乐、颤音、噪音或是调整静音。

而且它还提供有多种特效为你的作品增色:

放大、降低噪音、压缩、扩展、回声、失真、延迟等。

你可以同时处理多个文件,轻松地在几个文件中进行剪切、粘贴、合并、重叠声音操作。

使用它可以生成的声音有:

噪音、低音、静音、电话信号等。

该软件还包含有CD播放器。

其他功能包括:

支持可选的插件;崩溃恢复;支持多文件;自动静音检测和删除;自动节拍查找;录制等。

另外,它还可以在AIF、AU、MP3、RawPCM、SAM、VOC、VOX、WAV等文件格式之间进行转换,并且能够保存为RealAudio格式。

本次设计采用CoolEditPro2.1作为音频采样及处理的工具,输出格式为.wav,分别采样了10人的声音样本,对采样的音频开始与结束不分添加部分静音信号,下图即为“开门”一词最终的采样波形:

 

图3.1CoolEditPro2.1采样波形

3.2MATLAB介绍

第四章模块设计

4.1预处理

语音信号的预处理模块一般包括预滤波、采样和量化、分帧、加窗、预加重、端点检测等。

在不同的系统中对各子模块会有不同的要求,如在嵌入式语音识别系统中一般要求有防混叠滤波电路[5]、A/D转换电路和采样滤波电路等,而在计算机上实验时则可由音频采集卡完成,无需实验者亲自动手。

4.2语音端点检测

4.2.1原理

在语音处理中,常常涉及到语音的端点检测问题。

例如在移动通信系统的语音终端中,常常要进行话音激活检测(VAD),判断当前是否有语音,若无语音输入时不编码,这样可以减少发射功率并节省信道资源。

在语音识别时,特别是孤立词识别系统中,准确检测每个词的起点和终点对于模板匹配并提高识别率是相当重要的。

对要检测的语音进行分帧处理。

若抽样频率为8kHz,即窗函数长度N=80。

分别采用

Mn=∑|x(n)|w(n-m)和

Zn=∑{|sgn[x(n)-T]-sgn[x(n-1)-T]|+|sgn[x(n)+T]-sgn[x(n-1)+]|}w(n-m)计算每帧语音的短时平均幅度和短时平均过门限率。

由于语音一般都存在能量较高浊音段,因此考察语音的平均幅度轮廓可以设定一个较高的门限T1,使语音的起点和终点落在T1和Mn所确定的时间间隔AB之外。

然后根据背景噪声的平均幅度确定一个门限较低的T2,并从A点往起点方向、从B点往终点方向搜索,分别找到与门限T2相交的两个点C、D。

这样我们就用双门限完成了第一级粗判。

第二级判决要利用短时平均过门限率。

同样根据背景噪声的Zn可以设定一个较低的门限T3,从C和D分别向起点和终点方向搜索,可以找到与门限挺相交的两个点E、F。

这样就确定出了语音的端点E、F。

利用能量和过零的语音端点检测

4.2.2源程序:

x1=0;

x2=0;

forn=1:

length(zcr)

goto=0;

switchstatus

case{0,1}%0=静音,1=可能开始

ifamp(n)>amp1%确信进入语音段

x1=max(n-count-1,1);

status=2;

silence=0;

count=count+1;

elseifamp(n)>amp2|...%可能处于语音段

zcr(n)>zcr2

status=1;

count=count+1;

else%静音状态

status=0;

count=0;

end

case2,%2=语音段

ifamp(n)>amp2|...%保持在语音段

zcr(n)>zcr2

count=count+1;

else%语音将结束

silence=silence+1;

ifsilence

count=count+1;

elseifcount

status=0;

silence=0;

count=0;

else%语音结束

status=3;

end

end

case3,

break;

end

end

4.3短时能量

4.3.1用途

短时平均能量特征主要用途如下:

1)可以作为区分清音段和浊音段的特征参数。

实验结果表明浊音段的能量En明显高于清音段。

通过设置一个能量门限值,可以大致判定浊音变为清音或者清音变为浊音的时刻,同时也可以大致划分为浊音区间和清音区间。

2)在信噪比较高的情况下,短时能量还可以作为区分有声和无声的依据。

3)可以作为辅助的特征参数用于语音识别中。

4.3.2问题

短时能量函数的一个主要问题是En对信号电平值过于敏感。

由于需要计算信号样值的平方和,在定点实现时很容易产生溢出。

4.2.3解决方法

为了克服这个缺点,采用以下的框图。

短时平均幅度实现框图

4.3.4程序

amp=sum(abs(enframe(filter([1-0.9375],1,x),FrameLen,FrameInc)),2);

4.4短时平均过零率

4.4.1原理

过零率可以反映信号的频谱特性。

当离散时间信号相邻两个样点的正负号异号时,我们称为“过零率”。

短时平均过零率可以粗略估计语音的频谱特性。

根据语音产生的模型可知,发浊音时,声带振动,尽管声道有多个共振峰,但由于声门波引起了频谱的高频衰落,因此浊音能量集中于3kHz以下。

但是对于清音而言,由于声带不振动,由声道的某些部位阻塞气流产生类白噪声,多数能量集中在较高的频率上。

高频率对应着高过零率,低频率对应着低过零率。

4.4.2程序

tmp1=enframe(x(1:

end-1),FrameLen,FrameInc);

tmp2=enframe(x(2:

end),FrameLen,FrameInc);

signs=(tmp1.*tmp2)<0;%相邻两帧为异号的个数

diffs=(tmp1-tmp2)>0.02;

zcr=sum(signs.*diffs,2);

4.5倒谱

4.5.1原理

以倒谱为基础的语音估计,其原理相当简单:

首先计算语音的倒谱,然后在可能出现的基音周期附近寻找峰值。

如果峰值超过了预先设置的门限,则输入语音段判为浊音,………

4.5.2窗函数的选择

矩形窗的主瓣宽度最小(4×PI/N)因此它具有较高的频谱分辨率,但是它的旁瓣峰值较大(-13db),因此其频谱泄漏比较严重。

4.5.3源程序

4.5.4倒谱流程图

4.6主程序

4.6.1源程序

disp('正在计算参考模板的参数...')

fori=1:

10

fname=sprintf('%da.wav',i-1);%备注:

该部分就是您要录制的语音样本(0-9的数字录音)该例程中用了20个.wav格式的录音:

0a.wav,1a.wav....,9a.wav,0b.wav,1b.wav......,9b.wav,分别保存了0到9的发音前10个用于参考训练,后10个作为测试。

x=wavread(fname);

[x1x2]=vad(x);

m=mfcc(x);

m=m(x1-2:

x2-2,:

);

%m=m(x1:

x2-4,:

);

ref(i).mfcc=m;

end

disp('正在计算测试模板的参数...')

fori=1:

10

fname=sprintf('%db.wav',i-1);

x=wavread(fname);

[x1x2]=vad(x);

m=mfcc(x);

m=m(x1-2:

x2-2,:

);

test(i).mfcc=m;

end

disp('正在进行模板匹配...')

dist=zeros(10,10);

fori=1:

10

forj=1:

10

dist(i,j)=dtw(test(i).mfcc,ref(j).mfcc);

end

end

disp('正在计算匹配结果...')

fori=1:

10

[d,j]=min(dist(i,:

));

fprintf('测试模板%d的识别结果为:

%d\n',i,j);

end

4.6.2试验结果

4.6.3主程序流程图

主程序流程图

4.7实验结果

第五章设计中的问题

5.1方案的选择

目前,用语音语音识别的方法有基于动态时轴规整(DTW)技术的模板匹配方法,基于概率统计的HMM法和基于人工神经网络(ANN)的最优搜索法。

因为本设计要求简单,又由于DTW算法本身既简单又有效,在训练中几乎不需要额为的运算,所以我们选择了DTW算法。

5.2语音格式的选择

因为MATLAB环境只识别.WAV格式的语音信号,由于调试之前没有了解,所以在语音信号处理时-1遇到不少问题,多次犯错、且经过查阅资料才得知结论。

并且语音信号要求是无损压缩的.WAV格式。

通过在网上查询资料得知,CoolEditPro2.1软件对语音信号处理后可得到满足条件的语音信号。

5.3问题解答

(1)、temp1与temp2相乘,验证成绩是否小于零,即类似于X(n)与X(n-1)间相乘结果是否小于零,即验证是否有过零点。

(2)、【1-0.9375】表示h(n)={1,-0.9375}为一阶FIR高通滤波器。

第六章收获与体会

通过本次课程设计,我了解了语音命令识别的发展历史,发展现状及其中遇到的问题和瓶颈。

也明白了语音信号处理的发展方向即在现实生活中的应用。

另外,了解了常用语音信号处理的三种算法DYW、HMM和ANN,并了解了他们的优缺点及其应用条件。

我还系统的了解了完成一个课题设计的全过程。

包括资料收集,整体方案确定,组员间的分工与合作等等。

这次课设,我们在MATLAB平台的基础上基本实现了个别个体的特定语音识别。

但由于时间及外部设备的关系,难以组建一个非常精确的参考样本,因此识别效率偏低。

第七章参考文献

[1]张雄伟,陈亮,杨吉斌.现代语音处理技术及应用.北京:

机械工业出版社,2003.8

[2]维纳·K·恩格尔,约翰·G·普罗克斯.数字信号处理.西安:

西安交通大学出版社,2002.6

[3]吴大正,高西全等.MATALAB及其在电子信息工程中的应用.北京:

电子工业出版社,2006.3

[4]郭仕剑,王宝顺等.MATLAB7.x数字信号处理.北京:

人民邮电出版社,2006.12

[5]易克初,田斌,付强.语音信号处理.北京:

国防工业出版社,2000

[6]杨行峻,迟惠生等.语音信号数字处理.北京:

电子工业出版社.2000

[7]袁保宗.“语音处理”、“语音增强”、“语音理解”词条,中国大百科全书(电信分册)

[8]边肇祺,张学工等.模式识别.北京:

清华大学出版社.2000.1

第八章附录

源程序

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 冶金矿山地质

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1