⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 利用mfcc提取参数.txt

📁 m文件dtw,mfcc,vad,转换为c语言文件。用于声音检测
💻 TXT
字号:
clear
clc
num=2;
disp('正在计算参考模板的参数...')
    for i=1:num
	fname = sprintf('%s%i','D:\MATLAB6p5\work\work\噪声故障判断\data\train3\s',i);%suanfa\dtw\
    x = wavread(fname);
    [x1 x2] = vad(x);
	m = mfcc(x);
	m = m(x1-2:x2-2,:);
	ref(i).mfcc = m;
end
disp('正在计算测试模板的参数...')
for i=1:num
	fname = sprintf('%s%i','D:\MATLAB6p5\work\work\噪声故障判断\data\train4\s',i);%suanfa\dtw\
  	x = wavread(fname);
    [x1 x2] = vad(x);
	m = mfcc(x);
	m = m(x1-2:x2-2,:);
	test(i).mfcc = m;
end
disp('正在进行模板匹配...')
dist = zeros;
for i=1:num
for j=1:num
	dist(i,j) = dtw2(test(i).mfcc, ref(j).mfcc);
end
end
disp('正在计算匹配结果...')
for i=1:num
	[d,j] = min(dist(i,:));
	   fprintf('测试模板 %d 的识别结果为:%d\n', i, j);
    
end
实验结果显示:::
正在计算参考模板的参数...
正在计算测试模板的参数...
正在进行模板匹配...
正在计算匹配结果...
测试模板 1 的识别结果为:1
测试模板 2 的识别结果为:2
对电机声音进行识别
clear
clc
num=6;
disp('正在计算参考模板的参数...')
    for i=1:num
	fname = sprintf('%s%i','D:\MATLAB6p5\work\work\实验\ref\s',i);%suanfa\dtw\
    x = wavread(fname);
    [x1 x2] = vad(x);
	m = mfcc(x);
	%m = m(x1-2:x2-2,:);
	ref(i).mfcc = m;
end
disp('正在计算测试模板的参数...')
for i=1:num
	fname = sprintf('%s%i','D:\MATLAB6p5\work\work\实验\test\s',i);%suanfa\dtw\
  	x = wavread(fname);
    [x1 x2] = vad(x);
	m = mfcc(x);
	%m = m(x1-2:x2-2,:);
	test(i).mfcc = m;
end
disp('正在进行模板匹配...')
dist = zeros;
for i=1:num
for j=1:num
	dist(i,j) = dtw2(test(i).mfcc, ref(j).mfcc);
end
end
disp('正在计算匹配结果...')
for i=1:num
	[d,j] = min(dist(i,:));
	   fprintf('测试模板 %d 的识别结果为:%d\n', i, j);
    
end
在实验过程中使用了6个声音信号测试结果
正在计算参考模板的参数...
正在计算测试模板的参数...
正在进行模板匹配...
正在计算匹配结果...
测试模板 1 的识别结果为:1
测试模板 2 的识别结果为:2
测试模板 3 的识别结果为:3
测试模板 4 的识别结果为:4
测试模板 5 的识别结果为:5
测试模板 6 的识别结果为:6

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -