用cooledit打開的話,要用matlab輸出為PCM格式。
在matlab中輸出pcm格式要怎么做呢?
用法: fwrite(fileid,參數,格式);
為了用cooledit正確地打開,我們應該要用二進制輸出。
要如何輸出和你的源文件有關,請仔細閱讀下文。很短的。
我的這個文件的格式是:
是一個wav文件,
用audioread讀取。
filename='10.wav';%這個聲音文件在該程序根目錄
[signal,fs] = audioread(filename);%讀取wav文件,讀完是去除了文件頭的采樣點,而且歸一化了,是浮點數。
info=audioinfo(filename)%看這個文件的信息。
whos signal%顯示name size bytes class 等等
如果希望看原來的數值,就用
[signal,fs] = audioread(filename,‘native’);
這里的native就是表示按照原格式讀取。
讀完之后如何寫呢。
%% 保存raw文件
temp=x_speech.*65536/2;%這里是把歸一化信號還原,如果是native讀取,就不用了/
fid=fopen('D:\lab1\10.pcm','wb');%存為raw,也就是pcm格式
fwrite(fid,temp,'int16');%我這里是按照int16讀取的,所以是int16.
%想看自己讀完是什么格式,可以在調試的時候點開signal數組看。
audiowrite('D:\lab1\10new.wav', x_speech,fs);%這是存成wav格式的
fclose(fid);
最后可以看到這樣的一個文件:
用cooledit打開的話,是正常的。
如果語音是雜音,或者亂七八糟的聲音,
那么肯定是沒有按照二進制輸出,請檢查
您的matlab代碼中
fid=fopen(‘D:\lab1\10.pcm’,‘wb’);%存為raw,也就是pcm格式
fwrite(fid,temp,‘int16’);%我這里是按照int16讀取的,所以是int16.
加重部分是否出現了錯誤。
喜歡的話,或者解決了您的問題的話請幫忙點個贊或者留言,
您的支持是我寫文的動力,謝謝!!!😄