全球旧事资料 分类
,D1∞,B为当前的码书,若相对失真小于某一阈值ε,迭代结束,当前
的码书就是设计好的2m个码字的码书,转5。否则,转下一步。量化失真量和:
K
D
mi
dXkBk1
相对失真:
(5)
D
1D



D

(6)
4重新计算各个区域的新型心,得到新的码书,转3。5重复2,3和4步,直到形成有M个码字的码书M是所要求的码字数,其中D010000。
24VQ的说话人识别
设是未知的说话人的特征矢量X1XT,共有T帧是训练阶段形成的码书,
表示码书第m个码字,每一个码书有M个码字。再计算测试者的平均量化失真D,并设置一个阈值,若D小于此阈值,则是原训练者,反之则认为不是原训练者。
D1Tmi
dxjBm(7)
j1
1mM
三、算法程序分析在具体的实现过程当中,采用了matlab软件来帮助完成这个项目。在matlab
中主要由采集,分析,特征提取,比对几个重要部分。以下为在实际的操作中,具体用到得函数关系和作用一一列举在下面。
31函数关系主要有两类函数文件Trai
m和Testm在Trai
m调用Vqlbgm获取训练录音的vq码本,而Vqlbgm调用mfccm
获取单个录音的mel倒谱系数,接着mfccm调用Melfbm将能量谱通过一组Mel尺度的三角形滤波器组。
在Testm函数文件中调用Disteum计算训练录音(提供vq码本)与测试录音(提供mfcc)mel倒谱系数的距离,即判断两声音是否为同一录音者提供。Disteum调用mfccm获取单个录音的mel倒谱系数。mfccm调用Melfbm将能量谱通过一组Mel尺度的三角形滤波器组。
4
f32具体代码说明321函数mffc
fu
ctio
rmfccsfsm100
256lle
gths
bFramefloorl
m1沿∞方向取整fori1
forj1
bFrameMijsj1mi对矩阵M赋值e
de
dhhammi
g
加hammi
g窗,以增加音框左端和右端的连续性M2diaghMfori1
bFrameframeifftM2i对信号进行快速傅里叶变换FFTe
dt
2tmaxlfsmmelfb20
fs将上述线性频谱通过Mel频率滤波器组得到Mel频谱下面在将其转化成对数频谱
21floor
2zmabsframe1
22rdctlogz将上述对数频谱,经过离散余弦变换DCT变换到倒谱域,即可得到Mel倒谱系数MFCC参数322函数disteu计算测试者和模板码本的距离fu
ctio
ddisteuxy
MNsizex音频x赋值给【M,N】M2Psizey音频y赋值给【M2,P】ifMM2
error不匹配!两个音频时间长度不相等e
ddzerosNPifNP在两个音频时间长度相等的前提下
copieszeros1Pfor
1N
d
sumx
copiesy21e
delsecopir
好听全球资料 返回顶部