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

私の問題は最後の 2 行にあります。スペクトログラムの図を .fig ファイルとして保存し (後で比較するためのより良い提案がない限り)、baseFileName と同じ名前を付けます。私はしばらくの間グーグルで調べてきましたが、フォーマットがわかりにくく、スペクトログラムが図として保存されることについてはあまりありません。

すべての数字がループ内に表示されなかった場合はそれが望ましいですが、対処できます。

編集:これをマットファイルとして保存する方が良いでしょうか?

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 に答える