我正在尝试生成频谱图,以便我可以将它们与以后的单词样本进行比较,以进行非常基本的语音识别项目。这是在循环中完成的。代码如下:
folder = '<<my directory path>>';
files = dir(fullfile(folder,'*.wav'));
for k = 1:length(files)
baseFileName = files(k).name;
fullFileName = fullfile(folder, baseFileName);
fprintf(1, 'Now reading %s\n', fullFileName);
[word, fs] = wavread(fullFileName);
sound(word, fs);
figure('visible','off');
%%fig = figure, specgram(fullFileName, 512, fs);
%%saveas(fig, baseFileName.fig);
end
我的问题在最后两行。我想将频谱图保存为.fig文件(除非你们后来有更好的建议用于比较),并将其命名为baseFileName。我一直在谷歌搜索一段时间,但格式混乱,光谱图被保存为数字并不多。
如果所有数字都没有在循环中弹出但是我可以处理,我会更喜欢它。
编辑:或许将它存储为matfile会更好吗?答案 0 :(得分:0)
这对你有用吗?
for k=1:length(files)
h=figure
spectrogram();
Figname = strcat(baseFileName,'.fig');
saveas(h,Figname);
end
对于格式不同于.fig的数字,另一种方法:
fh=figure
for k=1:length(files)
figure(fh);
spectrogram();
frm = getframe(fh);
Figname = strcat(baseFileName,'.jpg');
imwrite(frm.cdata, Figname);
end
不幸的是,当尝试使用此方法保存.fig文件时,它将导致错误“无法确定文件名中的文件格式”。