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

📄 testsave.m

📁 实现语音波形的显示、波形放大及缩小(双击鼠标实现)
💻 M
字号:
  function TestSave(ud)

    %[ud.fname, ud.pname] = uigetfile('*.wav')
    % ud.wave  wave data
    %ud.wave = readwav([ud.pname,ud.fname], 'r');
    %ud.x1 = fix(length(ud.wave) * 0.1);
    %ud.x2 = fix(length(ud.wave) * 0.9);
  
     x = inputdlg('Please input the number:');
     if isempty(x) 
        return
     end
     y = inputdlg('Please input its order:');
     if isempty(y) 
        return
     end
     x = char(x);
     y = char(y);
     
     fname1 = [ud.fname(1: findstr(ud.fname,'.wav')-1),'_',x,y];
     pname1 = 'E:\交接\交接数据库\单数字\董改花1\';        % 需要修改
     fid1 =  writewav(ud.wave(ud.x1 : ud.x2),8000,[pname1,x,'\', fname1, '_n.wav'], '16', 'r');
           
  %  [c1,pnum] = melcepst(ud.wave(ud.x1 : ud.x2),8000,'Mpt',16,24,256,64,0,0.5);
   %  fidMel = fopen([pname1,'Mel不定长单数字\',x,'\','Pointset_SphMel',fname1,'_n_',num2str(pnum),'.h32'],'w');
 %    if fidMel<0
   %       warndlg('can''t open  Pointset_SphMel...n.h32','warn');
  %        return
  %  end
           
   %  fprintf('ud.x2-ud.x1 = %g\n',ud.x2-ud.x1)
     %     fprintf('c1(1:36)= %d',c1(1:36))
           
    % count = fwrite(fidMel,c1,'float32');
          
   %  if count<10
    %        warndlg('can''t write  Pointset_SphMel...n.h32','warn');
     %       return
     % end
  %   fclose(fidMel);
           
  %   if ud.x2 - ud.x1 >= 2239  
   %            a = ud.wave(ud.x1 : ud.x1+2239);
              % fprintf('size(a) = %d',size(a))
    %  else
     %          a = ud.wave(ud.x1:ud.x2);
     %          a(ud.x2-ud.x1+2 : 2240) = 0;
    %          % fprintf('size(a) = %d',size(a))
    % end
   %        fid2 =  writewav(a,8000,[pname1,'定长2240单数字\',x,'\', fname1,'_e.wav'], '16', 'r');
    %       [c1,pnum]=melcepst(a,8000,'Mpt',16,24,256,64,0,0.5);  
    %       %fprintf('c1(1:36)= %d',c1(1:36))
    %       fidMel = fopen([pname1,'Mel定长2240单数字\',x,'\','Pointset_SphMel',fname1,'_e_',num2str(pnum),'.h32'],'w');
                
    %      if fidMel<0
     %          warndlg('can''t open  Pointset_SphMel...n.h32','warn');
     %          return
     %      end
      %     count = fwrite(fidMel,c1,'float32');
      %     if count<10
       %        warndlg('can''t write  Pointset_SphMel...n.h32','warn');
      %         return
      %    end
       %    fclose(fidMel);
           
                     

⌨️ 快捷键说明

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