📄 testsave.asv
字号:
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:\应用软件\matlab6\work\标准数据库\原始语音数据\龚剑耀\';
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',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)
pname1 = 'E:\应用软件\matlab6\work\标准数据库\原始语音数据\龚剑耀\'
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);
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -