1

我正在尝试生成频谱图,以便以后可以将它们与单词样本进行比较,以进行非常基本的语音识别项目。这是在一个循环中完成的。代码如下:

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 会更好?

4

1 回答 1

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 文件时,会导致错误“无法从文件名确定文件格式”。

于 2013-11-26T04:40:14.827 回答