码本fu
ctio
rvqlbgdke01rmea
d2dpr10000fori1log2krr1er1ewhile11
zdisteudrmi
dmi
z2t0forj12i
rjmea
dfi
di
dj2xdisteudfi
di
djrjforq1le
gthx
ttxqe
de
difdprttebreakelsedprte
de
de
d324函数testfu
ctio
fi
almsgtesttestdir
code
fork1
readtestsou
dfileofeachspeaker
filespri
tfssdwavtestdirk
sfswavreadfile
vmfccsfs
得到测试人语音的mel倒谱系数
distmi
4
阈值设置处
就判断一次,因为模板里面只有一个文件
ddisteuvcode1计算得到模板和要判断的声音之间的
“距离”
fdistsummi
d2sized1变换得到一个距离的量
测试阈值数量级msgcspri
tf与模板语音信号的差值为10fdistdispmsgc此人匹配
ifdistdistmi
一个阈值,小于阈值,则就是这个人。msgspri
tf第d位说话者与模板语音信号匹配符合要
求
kfi
almsg此位说话者符合要求界面显示语句,可随意设
定dispmsg
e
d此人不匹配
ifdistdistmi
msgspri
tf第d位说话者与模板语音信号不匹配不符合要
求
kfi
almsg此位说话者不符合要求界面显示语句,可随意
设定dispmsg
e
de
d
325函数testDB
这个函数实际上是对数据库一个查询根据测试者的声音找相应的文件并且给
出是谁的提示
fu
ctio
testmsgtestDBtestdir
code
ameList123456789
这个是我们要识别的9个数
fork1
数据库中每一个说话人的特征
filespri
tfssdwavtestdirk
找出文件的路径
sfswavreadfile
vmfccsfsdistmi
i
fk10
对找到的文件取mfcc变换
forl1le
gthcodeddisteuvcodeldistsummi
d2sized1
ifdistdistmi
fdistmi
dist这里和test函数里面一样者的识别
k1le
de
dmsg
ameListk1msgboxmsge
d
但多了一个具体语
326函数trai
该函数就是对音频进行训练,也就是提取特征参数fu
ctio
codetrai
trai
dir
k16
umberofce
troidsrequired
fori1
对数据库中的代码形成码本
filespri
tfssdwavtrai
diri
dispfile
sfswavreadfile
vmfccsfs
计算MFCCs提取特征特征,返回值是
Mel倒谱系数,是一个log的dct得到的
codeivqlbgvk
训练VQ码本通过矢量量化,得到原说
话人的VQ码本
e
d
327函数melfb
确定矩阵的滤波器
fu
ctio
mmelfbp
fs
f0700fsf
2floor
2lrlog105f0p1co
verttofftbi
umberswith0forDCtermbl
f0exp01pp1lr1直接转换为FFT的r