声纹识别.doc

上传人:苏美尔 文档编号:10819304 上传时间:2021-06-05 格式:DOC 页数:15 大小:327KB
返回 下载 相关 举报
声纹识别.doc_第1页
第1页 / 共15页
声纹识别.doc_第2页
第2页 / 共15页
声纹识别.doc_第3页
第3页 / 共15页
声纹识别.doc_第4页
第4页 / 共15页
声纹识别.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《声纹识别.doc》由会员分享,可在线阅读,更多相关《声纹识别.doc(15页珍藏版)》请在三一文库上搜索。

1、声纹识别摘要声纹识别广泛应用于安防、公安、军队、银行、证券、个人身份认定等领域 本文首先先利用MATLAB对说话人数据进行预处理,提取到MFCC参数,然后利用MFCC参数采用DTW算法建立声纹识别模型,关键词:MATLAB,预处理,MFCC系数,dtw算法一、问题重述1.1问题的重述 生物认证是通过人体特征进行人物身份认证的重要手段,包括人脸识别、虹膜识别、指纹识别、体态识别和声纹识别等方法,它们被广泛地应用于国防、军事和民用等诸多领域,推动着信息产业的蓬勃发展。声纹识别又称说话人识别,是通过分析说话人的语音的特点,利用计算机自动识别说话人的身份。声纹识别又分为文本相关和文本无关说话人的识别两

2、大类。文本无关是指说话人的说话内容不受限制,文本相关是指说话人的说话内容必须是指定的内容。评价声纹识别方法或模型的最重要指标是识别准确率,准确率越高越宜于应用于实际。评价的另外一个重要指标就是识别所花的时间,即输入待识别的说话人语音到识别结果的输出说话的时间,该时间越短约好。请试着利用采集到的说话人语音数据(文本相关和文本无关两类),完成以下几点:1)建立代表说话人身份的语音特征模型,通过编程从语音数据中提取说话人特征;2)利用说话人特征建立说话人模型或声纹识别模型;3)利用语音数据评价你的说话人模型或声纹识别模型评价的好坏;4)分析影响准确率的因素,采取措施进一步提高声纹识别的准确率。二、问

3、题分析1.2问题的分析1.2.1针对第一问,我们原准备直接对音频文件进行特征提取,后经编程提取后发现有大量无用数据,且干扰结果的准确性。于是,我们决定先对音频文件编程进行预处理,处理过程包括:预加重、分帧、加窗、端点检测。然后对预处理后所得数据进行MFCC特征提取,得到合并的mfcc参数和一阶差分mfcc参数(即MFCC和MFCC)。1.2.2针对第二问,我们利用第一问建立的模型特征:mfcc参数和一阶差分mfcc参数(即MFCC和MFCC)用DTW算法进行建模。1.2.3针对第三问,声纹识别假设已训练了n个(n2)声纹模型,现输入一位话者的语音序列(已经过mfcc参数提取),要求判断该话者是

4、谁,即语音序列与哪一个声纹模型匹配。统计识别结果的准确性。识别准确性越高说明模型越好。1.2.4针对第四问,三、基本假设假设1、四、符号说明MFCC Mel频率倒谱系数五、声纹识别理论声纹识别原理 声纹生理图所谓声纹(Voiceprint),是用电声学仪器显示的携带言语信息的声波频谱。人类语言的产生是人体语言中枢与发音器官之间一个复杂的生理物理过程,人在讲话时使用的发声器官-舌、牙齿、喉头、肺、鼻腔在尺寸和形态方面每个人的差异很大,所以任何两个人的声纹图谱都有差异。每个人的语音声学特征既有相对稳定性,又有变异性,不是绝对的、一成不变的。这种变异可来自生理、病理、心理、模拟、伪装,也与环境干扰有

5、关。尽管如此,由于每个人的发音器官都不尽相同,因此在一般情况下,人们仍能区别不同的人的声音或判断是否是同一人的声音。样本语言预加重加窗分帧端点检测特征提取DTW模型匹配待测语音预处理特征匹配识别结果。语音识别本质上是一种模式识别的过程, 其基本结构原理框图如图所示, 主要包括语音信号预处理、特征提取、特征建模( 建立参考模式库) 、模式匹配等几个功能模块。一个语音识别系统主要包括训练和识别两个阶段。无论是训练还是识别, 都需要首先对输入的原始语音进行预处理, 并进行特征提取。六、模型建立 6.1针对第一问,首先是预处理分析,主要包括:预加重、分帧和加窗、端点检测等。6.1.1预加重预加重是一阶

6、网络, 用来对声音信号的高频部分进行加重, 以增强声音的高频分辨率, 可由软件来实现, 表示为:数字信号S( n) 通过一个高通滤波器,H( z) = 1- AZ- 1 ( 0. 9 a 1)后得到经过预加重的信号为:S ( n) = S( n) - aS( n - 1) ( 0. 9 n 1)S( n) 为n 时刻的声音采样值, S ( n) 为预加重处理后的结果。6.1.2 分帧虽然声音信号是非线性时变信号, 但它同时具有短时平稳的特点, 所以对其进行分帧可以提取其短时特性。在处理语音信号时一般取帧长为1030ms, 为了避免帧与帧之间的特性变化太大, 所以帧移一般取帧长的1P3 或1P2

7、。6.1.3加窗为了进行短时分析必须加窗, 这在理论上应使用两端具有平滑过渡特性的窗口。即其目的就是为了减少帧起始和结束处的信号不连续性。常用的窗函数有:( 1) 方窗 ( 2) 汉明窗(Hamming Window) ( 3) 汉宁窗(Hann Window) :其中最常用的窗函数是汉明窗。函数为:6.1.4端点检测所谓端点检测, 就是在实时输入的声音信号中,区分背景噪声和环境噪声, 准确地判断出声音信号的开始点和结束点。这一过程应由特定地算法自动完成, 通常利用短时能量来检测浊音, 用过零率来检测清音, 两者配合实现可靠的端点检测。端点检测算法常用的是由语音能量和过零率组合的有双门限法,

8、以及由短时能量和过零率的乘积构成的能频值法。具体过程如下图:开始预加重 a=0.95分帧,汉明窗处理端点检测,确定起止点语音结束?读取下一帧信号特征参数提取 MFCC为尾帧?读取下一帧信号模式匹配 DTW算法识别结束NO YESNO YES6.1.5然后我们进行特征参数的提取,特征参数主要有:能量、幅度、过零率、频谱、倒谱和功率谱等,另外考虑到其他因素的影响,还有许多基于基本参数的参数,本文选用了MEL频率倒谱系数(MFCC)进行提取特征参数。MFCC:MFCC系数的计算是以“bark”为其频率基准的,它和线性频率的转换关系是: (2-9)MFCC系数也是按帧计算的,首先要通过FFT得到该帧信

9、号的功率谱S(n),转换为Mel频率下的功率谱。这需要在计算之前先在语音的频谱范围内设置若干个带通滤波器: NHm(n) m=0,1,M-1; n=0,1,N/2-1 (2-10)M为滤波器的个数,通常取24,与临界带的个数一样;N为一帧语音信号的点数,为了计算FFT的方便,通常取256。滤波器在频域上为简单的三角形,其中心频率fm在Mel频率轴上是均匀分布的。从下图就可以看到MFCC系数的计算过程如下:(1) 预处理:确定每一帧语音采样序列的长度(如N=256),并对每帧序列s(n)进行预加重、分帧和加窗处理;(2) 计算离散功率谱:对预处理的每帧进行离散FFT变换得到其频谱,再取模的平方作

10、为离散功率谱S(n);(3) 将功率谱通过滤波器组:计算S(n)通过M个Hm(n)后所得的功率值,即计算S(n)和Hm(n)在各离散频率点上的乘积之和,得到M个参数Pm,m=0,1,M-1;(4) 取对数:计算Pm的自然对数,得到Lm,m=0,1,M-1;(5) 离散余弦变换:对Lm计算其离散余弦变换,得到D m,m=0,1,M-1,舍去代表直流成份的D0,取D1,D2,Dk作为MFCC参数。预加重,加窗FFTMel频率滤波器组Log对数能量DCT求倒谱6.2通过DTW算法建立模型。DTW算法:在孤立词语音识别中,最为简单有效的方法是采用DTW(Dynamic Time Warping,动态时

11、间归整)算法,该算法基于动态规划(DP)的思想,解决了发音长短不一的模板匹配问题,是语音识别中出现较早、较为经典的一种算法。用于孤立词识别,DTW算法与HMM算法在训练阶段需要提供大量的语音数据,通过反复计算才能得到模型参数,而DTW算法的训练中几乎不需要额外的计算。所以在孤立词语音识别中,DTW算法仍然得到广泛的应用。 6.36.4 六、模型优缺点评价7.1优点:音纹识别可推广至只多方面如工业、家电、通信、汽车电子、医疗、家庭服务、消费电子产品等各个领域。7.2缺点:模型建立的特征值数据库比较庞大,存储和读取数据较慢,识别需要较长时间。七、模型推广八、参考文献附录程序1 % MFCC参数的提

12、取函数function ccc= mfcc(x)% function ccc=mfcc(x);%对输入的语音序列x进行MFCC参数的提取,返回MFCC参数和一阶%差分MFCC参数,Mel滤波器的阶数为24%fft变换的长度为256,采样频率为8000Hz,对x 256点分为一帧%bank=melbankm(24,256,8000,0,0.5,m);% 归一化mel滤波器组系数bank=full(bank);bank=bank/max(bank(:);% DCT系数,12*24for k=1:12 n=0:23; dctcoef(k,:)=cos(2*n+1)*k*pi/(2*24);end%

13、归一化倒谱提升窗口w = 1 + 6 * sin(pi * 1:12 ./ 12);w = w/max(w);% 预加重滤波器xx=double(x);xx=filter(1 -0.9375,1,xx);% 语音信号分帧xx=enframe(xx,512,80);% 计算每帧的MFCC参数for i=1:size(xx,1)%size(xx,1)返回xx的维数 y = xx(i,:); s = y .* hamming(1024);%乘窗 t = abs(fft(s); t = t.2;%计算能量 c1=dctcoef * log(bank * t(1:129);% dctcoef为DCT系数

14、,bank归一化mel滤波器组系数 c2 = c1.*w; % w为归一化倒谱提升窗口 m(i,:)=c2;end%差分系数dtm = zeros(size(m);for i=3:size(m,1)-2 dtm(i,:) = -2*m(i-2,:) - m(i-1,:) + m(i+1,:) + 2*m(i+2,:);end程序2%提取MFCC参数并保存在speakertestdata.mat中for i=1:80fprintf(n=test datan);tictestNum = ; testsnoring=dir(files);testsnoring(1:2)=;fprintf(%sn,t

15、estsnoring(i).name); % 显示处理进程fullPath = files, , testsnoring(i).name; % 取出每一个语句的完整路径和文件名y,fs,nbits = readwav(fullPath); nbits = str2num(nbits(3:end); x = fix(y(:,1)*(2(nbits-1); % 对数据进行扩大 cc = mfcc(x); tspeaker(i).name = testsnoring(i).name; tspeaker(i).data = cc; % 24MFCC参数save speakertestdata tspeakerendt=toc程序3

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

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1