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

📄 xianchangsb.m

📁 语音处理平台 可以分析语音能量 第一振峰频率等数据
💻 M
字号:
%现场识别的实现
clear;
clc;
for i=1:10
	fname = sprintf('..\\DTW\\%dc.wav',i-1);
	x = wavread(fname);
	[x1 x2] = vad(x);
	m = mel(x);
	m = m(x1-2:x2-2,:);
	ref(i).mel = m;
end
fs=22050; % 取樣頻率
duration=2; % 錄音時間

x=wavrecord(duration*fs, fs);
	[x1 x2] = vad(x);
	m = mel(x);
	m = m(x1-2:x2-2,:);
	test(i).mel = m;
    

disp('正在进行模板匹配...')
dist = zeros(10,10);
   i=1
for j=1:10
	dist(i,j) = dtw(test(i).mel, ref(j).mel);
end

disp('正在计算匹配结果...')

	[d,j] = min(dist(i,:));
	fprintf('系统的识别结果为:%d\n',j-1);

    if j-1==0
             fname = sprintf('\\DTW\\0.wav');
              uicontrol('Style','text',...
              'Position',[230 10 340 270],...
              'String','识别结果为: 0 ',...
              'FontSize',20.,...
              'Callback',[]);
	         [s,fs] = wavread(fname);
             sound(s,fs);
             else if j-1==1
                    fname = sprintf('\\DTW\\1.wav');
              uicontrol('Style','text',...
              'Position',[230 10 340 270],...
              'String','识别结果为: 1 ',...
              'FontSize',20.,...
              'Callback',[]);
	                 [s,fs] = wavread(fname);
                     sound(s,fs);
                     else if j-1==2
                            fname = sprintf('\\DTW\\2.wav');
              uicontrol('Style','text',...
              'Position',[230 10 340 270],...
              'String','识别结果为: 2 ',...
              'FontSize',20.,...
              'Callback',[]);
                           [s,fs] = wavread(fname);
                           sound(s,fs);
                           else if j-1==3
                                   fname = sprintf('\\DTW\\3.wav');
              uicontrol('Style','text',...
              'Position',[230 10 340 270],...
              'String','识别结果为: 3 ',...
              'FontSize',20.,...
              'Callback',[]);
	                               [s,fs] = wavread(fname);
                                   sound(s,fs); 
                                      else if j-1==4
                                            fname = sprintf('\\DTW\\4.wav');
               uicontrol('Style','text',...
              'Position',[230 10 340 270],...
              'String','识别结果为: 4 ',...
              'FontSize',20.,...
              'Callback',[]);
	                                       [s,fs] = wavread(fname);
                                            sound(s,fs);
                                            else if j-1==5
                                                fname = sprintf('\\DTW\\5.wav');
              uicontrol('Style','text',...
              'Position',[230 10 340 270],...
              'String','识别结果为: 5 ',...
              'FontSize',20.,...
              'Callback',[]);
	                                            [s,fs] = wavread(fname);
                                                sound(s,fs); 
                                                 else if j-1==6
                                                       fname = sprintf('\\DTW\\6.wav');
              uicontrol('Style','text',...
              'Position',[230 10 340 270],...
              'String','识别结果为: 6 ',...
              'FontSize',20.,...
              'Callback',[]);
	                                                    [s,fs] = wavread(fname);
                                                        sound(s,fs);
                                                        else if j-1==7
                                                               fname = sprintf('\\DTW\\7.wav');
              uicontrol('Style','text',...
              'Position',[230 10 340 270],...
              'String','识别结果为: 7 ',...
              'FontSize',20.,...
              'Callback',[]);
	                                                           [s,fs] = wavread(fname);
                                                               sound(s,fs);
                                                                else if j-1==8
                                                                        fname = sprintf('\\DTW\\8.wav');
              uicontrol('Style','text',...
              'Position',[230 10 340 270],...
              'String','识别结果为: 8 ',...
              'FontSize',20.,...
              'Callback',[]);
	                                                                    [s,fs] = wavread(fname);
                                                                         sound(s,fs);
                                                                         else if j-1==9
                                                                               fname = sprintf('\\DTW\\9.wav');
              uicontrol('Style','text',...
              'Position',[230 10 340 270],...
              'String','识别结果为: 9 ',...
              'FontSize',20.,...
              'Callback',[]);
	                                                                           [s,fs] = wavread(fname);
                                                                                sound(s,fs);
                                                                          end 
                                                                   end
                                                          end
                                                 end
                                        end
       
                              end 
                      end
                end
         end
 end

⌨️ 快捷键说明

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