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

📄 file_v_us_identify.m

📁 清浊音判别方法,用matlab软件开发,如自相关和能量方法等
💻 M
字号:
% 对信号序列进行分帧,一帧 为 30u
% 产生分帧信号
function [storeroom_voice, storeroom_unvoice, storeroom_silience,frame_zero,frame_period] = file_v_us_identify(filename)
    y = wavread(filename);
    length_y = length(y);
    sum_frame = fix(length_y/308);
    y_turn = y';
    for k = 1:sum_frame  
        temp_storeroom(k,:) = y_turn((1+(k-1)*308): k*308);
    end
   % warehouse 将每帧信号存入矩阵
   
   %加hamming窗
   win_sequence = hamming(308)'; 
    
   % 去除直流扰
   for k = 1:sum_frame  
       temp_storeroom(k,:) = y_turn((1+(k-1)*308): k*308).*win_sequence;
       average_m = (1/308) * sum(temp_storeroom(k,:));
       temp_storeroom(k,:) = temp_storeroom(k,:) - average_m;
   end
   %进行语音带宽限制,使之在100~3400Hz内;
    [B,A]=butter(5,[100/4000 3400/4000],'bandpass');
    % filter_value_sequence = filter(B,A ,temp_storeroom);
    
   for k = 1:sum_frame
       filter_value_sequence(k,:) = filter(B,A,temp_storeroom(k,:));    
   end
   % 限幅
   for k = 1:sum_frame
       for l =1:308
           if filter_value_sequence(k,l) > 1
              filter_value_sequence(k,l) = 1;
           elseif filter_value_sequence(k,l) < -1
              filter_value_sequence(k,l) = -1;
           else
              filter_value_sequence(k,l) = filter_value_sequence(k,l);
           end
       end
   end
  
    %对每帧语音进行处理
    % 存储 judgeroom_mz
   load storeroom_code storeroom_voice storeroom_unvoice storeroom_silience;%room_zero ;
   load storeroom_zero frame_zero frame_period;
   for k = 1:sum_frame
       [v_s_u,Z_period,zeros_sum] = v_us_identify(filter_value_sequence(k,:),temp_storeroom(k,:));
       if v_s_u == 1
           if  storeroom_voice == []
               storeroom_voice = temp_storeroom(k,:);
           else
               storeroom_voice = [storeroom_voice; temp_storeroom(k,:)];
           end
       elseif  v_s_u == -1
           if  storeroom_unvoice == []
               storeroom_unvoice = temp_storeroom(k,:);
           else
               storeroom_unvoice = [storeroom_unvoice; temp_storeroom(k,:)];
           end
       else
           if  storeroom_silience == []
               storeroom_silience = temp_storeroom(k,:);
           else
               storeroom_silience = [storeroom_silience; temp_storeroom(k,:)];
           end
       end
       if  frame_zero == []
           frame_zero = zeros_sum;    
       else
           frame_zero = [frame_zero zeros_sum];
       end
       if  frame_period == []
                
           frame_period = Z_period;
       else
           frame_period = [frame_period Z_period];
       end
   end
   save storeroom_code storeroom_voice storeroom_unvoice storeroom_silience;
   save storeroom_zero frame_zero frame_period;
      
   

⌨️ 快捷键说明

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