目 录
3.2 语音采集模板(Speech Recording Plane)
3.3 预处理模板(Voice Preprocessing Plane)
3.4 特征提取模板(Feature Extraction Plane)
3.5 训练识别模板(Speech Recognition Plane)
摘 要
说话是人类相互沟通交流最方便、最快捷的一种方式,世界上每一个说话人都拥有自己特定的语音,正如每个人的指纹一样,都是绝无仅有的。说话人识别应用广泛,现已应用到通信、消费电子产品等各个领域。本文将把语音进行数字化传输、存储、然后进行识别等。说话人识别系统主要包括预处理、特征提取、训练和识别四个模块。其中预处理和特征提取尤为重要。有许多的预处理方法,对语音信号的采样和量化是第一,然后预加重和加窗。特征提取是指提取语音信号的重要特征的过程。信号的时域分析包括信号的短时平均能量和短时过零率等。频域分析可以采用LPC倒谱系数法和Mel倒谱系数法。为了训练得到模版语音信号,可以利用矢量量化(VQ)、隐马尔可夫模型(HMM)、BP神经网络(ANN)等对说话人的语音信号进行训练识别。
说话人识别实现过程中的算法是多种多样的。本文将运用MATLAB仿真工具强大的编程、图形开发功能和数学计算能力。本文将把BP神经网络作为训练识别的方法,利用MFCC(MEL频率倒谱系数)产生的语音信号特征向量,最后运用十字交叉法,建立起一个说话人识别系统。结合MATLAB平台中的GUI设计预处理、特征提取、训练等几个模板,最后利用神经网络的模式识别,真正实现说话人的识别。
关键词:语音识别 MATLAB 模式识别 倒谱系数
Abstract
Talking is a way of human communication, the most convenient and quick communication, each of the speakers all over the world have their own specific speech, as everyone's fingerprints, are unique. Speaker recognition is widely used in various fields, have been applied to communications, consumer electronic products. This paper will make speech digital transmission, storage, and then identify etc.. The speaker recognition system includes preprocessing, feature extraction, training and recognition of four modules. The preprocessing and feature extraction is very important. There are many preprocessing methods of sampling and quantization, the speech signal is first, and then the pre emphasis and the window. Feature extraction is the process to extract important features of speech signal. Signal analysis in time domain signal short-time average energy and short-time zero crossing rate. Frequency domain analysis can be used LPC cepstrum coefficient and Mel cepstrum coefficient method. In order to get the template training speech signal, can use vector quantization (VQ), hidden Markov model (HMM), BP neural network (ANN) training recognition on the speaker's voice signal.
Speaker recognition in the process of realizing the algorithm is varied. This paper will use the MATLAB simulation tool powerful programming, graphical function and mathematical computation ability. This paper will use the BP neural network as a method of training recognition, using MFCC (MEL frequency cepstrum coefficient) speech signal feature vector is generated, finally using cross method, set up a speaker recognition system. Combined with the MATLAB platform GUI design in the preprocessing, feature extraction, training and several other template, finally using pattern recognition, neural network, realizing the speaker recognition.
Keywords: Speech recognition MATLAB Pattern recognition Cepstral coefficients
第一章 引言
1.1 研究背景及意义
说话人识别技术也被称之为声纹识别技术,它属于一种生物的识别技术。说话人识别技术拥有方便,经济,准确等特点,广受世人瞩目。
最早的语言研究被称为“口耳之学”。因为当时没有可供研究的仪器,只能通过耳听口模仿来进行研究。
最早的语音信号处理研究起源于1876年,电话的发明者贝尔首次使用声电、电声转换技术实现了语音的远距离传输
。
语音信号经过语音合成,语音编码和语音识别三个发展过程。语音识别的实验追溯到20世纪50年代贝尔实验室的Audry系统,此系统仅仅只能识别10个英文数字。又经过很长时间的研究发展,现在我们已经完全进入语音识别时代。
1.2 优势及应用前景
生物认证技术有:虹膜识别,掌纹识别,指纹识别和声纹识别(语音识别)。声纹识别有不丢失,没有记忆和使用方便等独特的优点
。
对于虹膜识别技术,虽然准确性很高,但是实现困难,成本较高,所以不能普遍使用。指纹识别虽然是一种使用比较普遍的识别技术,成本也不算太高,但是用户不易接受,指纹往往和犯罪牵扯在一起。还有一些生物认证技术也因为实现难度过大而不被关注。但是说话人识别技术只需简单的麦克风,一台普通计算机就可以实现。和其他生物识别技术进行对比,说话人识别系统还具有使用方便,低成本,易实现等优点。
说话人识别技术应用前景十分广泛,可在各种安全认证身份的领域发挥重要作用。随着数字化时代的急速发展,数字音频数据随处可见,说话人识别技术不仅在语音检索和信息检索中投入使用,而且不少手机已经加入了语音拨号,语音书写短信,语音打开应用程序等等功能。
1.3 国内外研究现状
20世纪60年代末,世界掀起了一股语音识别的研究热潮。这期间研究出的重要成果包括动态规划(DP)和线性预测编码(LPC)技术等。
语音识别技术取得突破性进展是在20世纪70年代的时候。LPC技术得到了进一步发展,特别是其中的VQ和HMM系统理论。直到今天,这两种理论依旧是研究语音识别最有效,最常用的方法。
20世纪80年代,语音识别迎来了一股新新力量。人们重新开始了人工神经网络(ANN)研究,并有效地将ANN和HMM在同一语音识别中结合使用,使连续语音识别问题变得更加容易。近年来对于人工神经网络(ANN)的研究不断发展,关于语音信号处理的各项内容研究是促使其迅速发展的重要原因之一。同时,它的许多成就体现在语音信号处理技术。
人工神经网络(ANN)以其简单灵活有效的特点,逐渐成为实现语音识别技术的新宠。它将说话人识别技术的探究带入了一个新的高度。
第二章 说话人识别的基本原理
2.1 说话人识别基本知识
2.1.1 语音的发声机理
空气从肺排入喉咙,然后通过声带进入通道,最后由口辐射声波,从而形成了声音。声带以左负责产生激励;声带以右负责的是:“辐射系统”和“声道系统”。之所以存在不同性质的语音,是因为其激励和辐射不同
。
2.1.2 清音和浊音
浊音与清音都统称为音素,而音素则是构成语音信号的基本单元。
发浊音时,空气流经紧绷的声带,声带产生振动,所以声带会周期性的打开、闭合。如果声带的长度短,厚度薄,张力就很大,听起来的的音调就越高,所以浊音的基音频率就越高。
发清音时,空气流经声带,声带是张开的,则由肺排出的空气将不受防碍的经过声门。空气经过声门后会发生两种情况,一种是形成摩擦音,另一种情况则形成爆破音。这两种情况都统称为清音
。
2.1.3 语音信号模型
由语音的发生机理可知,语音的生成包括三个部分:声门负责产生激励,用
表示;声道负责调制,用
表示;嘴唇负责产生辐射,用
表示。语音信号生成模型如下图:
2.1.4 语音识别基本过程
说话人识别即提取说话人语音中特征,然后将此特征作为确定说话人身份的过程。因此,需要找出每一个已知说话人发音中存在的差异,这些差异包括声道差异,发音习惯差异等等。
对于如何找出这些差异,确定说话人的身份,需要解决以下问题
:
- 对说话人的语音进行预处理;
- 提取说话人语音中的特征;
- 用提取出的这些特征为指定说话人建立一个只属于此说话人的语音特征库;
- 用一段未知语音与新建立的语料库进行对比,从而得出结论:此未知语音是否属于已知说话人。
为了解决以上问题,说话人识别系统一般进行以下四个模块的过程:预处理模块、特征提取模块,训练模块与识别模块。
2.2 预处理模块
- 总结与展望
4.1 总结
本文充分展现了Matlab 仿真软件强大的数学计算和编程能力。通过对其自带工具GUI图形用户界面和神经网络模式识别的使用,结合程序的自由编写,使一些极其复杂的数学计算过程变得方便快捷。在MATLAB仿真软件平台上实现说话人语音的识别,基本达到预期目的。通过matlab实现了对说话人语音的采集、处理、训练和识别。Matlab中的神经网络模式识别系统是实现各类识别的重要工具。本文采用神经网络模式识别作为语音识别的过程,能准确识别3人及其以下说话人,识别率高达100%;能较好的识别3到10,识别率的范围为81.6092%~95.4128%;10~20人的识别率一般;20人以上的识别率较差。所以,本文最大的不足就在于识别人数较多时,识别的准确率较差。再进一步改进实验中,可以讲训练识别的算法改为隐马尔可夫模型(HMM)或者高斯混合模型(GMM)。
4.2 展望
随着现代技术的发展,语音识别技术已经取得了飞速的发展,也取得了许多成就。但是人类语言交流都是在十分复杂的环境下进行的,难免会存在各种噪声,使得计算机很难具有人类一样的智能识别。因此对未来语音识别的发展展望如下:
- 口音识别能力
由于人类生活的领域不同,导致人类交流的语言不大相同。在今后语音识别技术的发展过程中,对于不同语言、不同口音的识别将是一个研究方向。
- 扩展能力
现在有各种技术的语音识别系统,对于这些系统与其相关的链接上,也就是该系统的扩展能力还有待进一步研究和发展
- 正确率
一个较好的语音识别系统,应该要有较好的使用价值,其识别率应该在95%以上。所以未来对于语音识别的正确率也提出了比较高的要求。
- 识别速度
识别速度越快,就越和真实人类语音交流相同。这就要求语音识别系统在未来的发展中,想着高识别速度发展,不断达到和口语速度一致。
- 新理论、新方法
当今世界是一个发展的世界,软硬件结合是时代的一个潮流。所以在今后语音识别技术的发展中,结合已有相关理论知识和软硬件基础,不断创造出新的语音识别处理方法。
参 考 文 献
[1]吴朝辉,杨莹春.说话人识别模型与方法.2009年 北京 清华大学出版社
[2]王永琦.MATLAB与音频视频技术.2013年 北京 清华大学出版社
[3]罗华飞.MATLAB GUI设计学习手机.2009年 北京 北京航空航天大学出版社
[4]张雄伟,陈亮,杨吉斌.现代语音处理技术及应用.2003年 北京 机械工业出版社
[5]D.G.Childers.Matlab之语音处理与合成工具箱.2004年 北京 清华大学出版社
[6]张雪英.数字语音处理及MATLAB仿真.2010年 北京 电子工业出版社
[7]何英,何强.MATLAB扩展编程.北京 清华大学出版社 2002
[8]Jean Claude Junqua.Robust Speech Recognition in Embedded System and PC Application.Snger.2000
[9] Rabiner L, Juang B H. Fundamentals of Speech Recognition, Prentice-Hall International. Inc 1999
[10] 黄文梅, 熊桂林, 杨勇.信号分析与处理—MATLAB语言及应用.北京 国防科技大学出版社 2000
[11] 张军英,说话人识别的现代方法与技术 西北大学出版社 1994
[12] 杨行峻,迟惠生.语音数字信号处理.合肥 电子工业出版社 1995
[13]王炳锡,屈丹,彭煊.实用语音识别基础.北京 国防丁业出版社 2005
[14] Christoph Gerber. A General Approach to Speech Recognition. Electronic Workshops in Computing 1995
[15]刘么和.语音识别与控制应用技术 北京 科学出版社 2008
[16]胡广书.现代信号处理教程 北京 清华大学出版社 2004
[17] 张志涌,精通MATLAB 北京航空航天大学出版社 2000
[18] 胡征,矢量量化原理及应用 西安电子科技大学出版社 1998
附 录
Main函数:
load_wav;%(1)载入数据,数据在矩阵Y中,每列一个说话人
%(2)预处理及特征提取
w=512;%窗口大小
P=0.5;%能量大小
N=size(Y,2);
fs=8000;
YY=[];%装载所有说话人向量,行向量
for i=1:N
V=preprocessing1(Y(:,i),w,P,fs);
[M1,N1]=size(V);
T=ones(M1,1)*i;
YY=[YY;[V,T]];
end
%构造ANN的多类分类数据
X=YY(:,1:end-1);
Y=YY(:,end);
clear YY;
N=size(X,1);
%识别小规模分类问题
SN=[1:10];
indx=[];
for i=1:length(SN)
indx1=find(Y(:,1)==SN(i));%
indx=[indx;indx1];
end
X1=X(indx,:);
Y1=Y(indx,:);
N1=size(X1,1);
YY=zeros(N1,length(SN));
for i=1:N1
YY(i,Y1(i,1))=1;
end
X1=X1';
YY=YY';
save XY2.mat X1 YY Y1;
clear all;
load XY2.mat;
pause(1);
nnstart
Load_wav函数:
clear;clc;
cd dataset20
N=6;%the number of sec.
Y=[];
for i=2:21
if i<10
eval(['[y,fs,Nbits,Opts]=wavread(''000' num2str(i) '-cell-A.wav'');']) ;
else
eval(['[y,fs,Nbits,Opts]=wavread(''00' num2str(i) '-cell-A.wav'');']) ;
end
i
fs
Y(:,i)=y(fs:fs*N);
end
Y(:,1)=[];
cd ..
L=size(Y,1);
for i=1:20
subplot(4,5,i)
plot([1:L]/fs,Y(:,i));
axis tight;
end
preprocessing1函数:
function V_feature=preprocessing1(Y,w,P,Fs)
y=Y;
w=300;
N=length(y);
N_w=length(y)/w;
mean_y=mean(abs(y));
y_new=[];
for i=1:N_w-1
y_mean_eng(i)=mean(abs(y(((i-1)*w+1):(i+1)*w)));
if y_mean_eng(i)>=P*mean_y
y_new=[y_new;y(((i-1)*w+1):i*w)];
end
End
y_new=y_new';
WS=1024;
Over_size=0.1;
N_Banks=36;
V_feature=extraction(y_new,Fs,WS,Over_size,N_Banks);
Start函数:
[a,b]=max(output);
Y2B=[Y1(:,1),b']
Q=length(find(Y1(:,1)==b'))/length(Y1(:,1))*100
N=max(Y1);
A=[N,Q];
eval(['save A.mat'])
plot(N,Q,'O')
title('人数--识别率')
xlabel('人数')
ylabel('识别率')
标签:说话,159,技术,YY,Matlab,语音,识别,MATLAB From: https://blog.csdn.net/2401_84458964/article/details/143279207