300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > matlab语音识别系统(源代码) matlab语音识别系统(源代码)

matlab语音识别系统(源代码) matlab语音识别系统(源代码)

时间:2022-06-24 03:53:05

相关推荐

matlab语音识别系统(源代码) matlab语音识别系统(源代码)

3.2具体代码说明 3.2.1函数mffc:

function r = mfcc(s, fs) ---

m = 100; n = 256;

l = length(s);

nbFrame = floor((l - n) / m) + 1; %沿-∞方向取整 for i = 1:n

for j = 1:nbFrame

M(i, j) = s(((j - 1) * m) + i); %对矩阵M赋值 end end

h = hamming(n); %加 hamming 窗,以增加音框左端和右端的连续性 M2 = diag(h) * M; for i = 1:nbFrame

frame(:,i) = fft(M2(:, i)); %对信号进行快速傅里叶变换FFT end

t = n / 2; tmax = l / fs; m = melfb(20, n, fs); %将上述线性频谱通过Mel 频率滤波器组得到Mel 频谱,下面在将其转化成对数频谱

n2 = 1 + floor(n / 2);

z = m * abs(frame(1:n2, :)).^2;

r = dct(log(z)); %将上述对数频谱,经过离散余弦变换(DCT)变换到倒谱域,即可得到Mel 倒谱系数(MFCC参数) 3.2.2函数disteu

---计算测试者和模板码本的距离 function d = disteu(x, y)

[M, N] = size(x); %音频x赋值给【M,N】 [M2, P] = size(y); %音频y赋值给【M2,P】 if (M ~= M2)

error('不匹配!') %两个音频时间长度不相等 end

d = zeros(N, P);

if (N < P)%在两个音频时间长度相等的前提下 copies = zeros(1,P); for n = 1:N

d(n,:) = sum((x(:, n+copies) - y) .^2, 1); end else

copies = zeros(1,N); for p = 1:P

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。