全文预览

过零率(Zeo Crossing Rate)是在每个音框中,音讯通过

上传者:火锅鸡 |  格式:doc  |  页数:7 |  大小:116KB

文档介绍
dY(2:end, :)<=0);РframeTime=(1:frameNum)*(frameSize-overlap)/fs;Рsubplot(4,1,4);Рplot(frameTime, zcr2);Рxlabel('Time (Seconds)');Рylabel('ZCR');Рtitle('平移後之過零率');Рset(gca, 'xlim', [min(frameTime) max(frameTime)])Р% 播放和存储录制的音频文件Рfprintf('按任意键后开始播放:'); pauseРy2=(y-mean(y))/(2^nbits/2);?% 介於-1 和 1 之间的值Рwavplay(y2,fs);?% 播放音频文件Рwavwrite(y2, fs, 8, waveFile);?% 存储音频文件Р输出图形Р在上述範例中,若將 recordViaMic 設定成 1,你就可以錄下自己的聲音,並立刻顯示音訊波形、音量和過零率。其他細節,請直接看程式碼內容及註解。Р在實際操作時,我們有時候會採取下列作法: Р如果在錄音時,有一個不穩定的直流偏壓,這時候可以將每個音框在進行處理前,先將音框平均值平移到零點。Р如果要移除雜訊的過零率,可以將訊號先平移一個固定值後,再進行計算過零率,如同上述範例的最後一個圖。Р若要進行即時顯示,請試看看 showVolZcr.mdl,這是一個 Simulink 的檔案,直接在 MATLAB 輸入 showVolZcr,即可開啟如下的方塊圖系統: Р若按下播放扭(實心三角形),即可從麥克風收音,顯示即時的能量和過零率,如下圖: Р若要偵測聲音的開始和結束,通常稱為「端點偵測」(Endpoint Detection)或「語音偵測」(Speech Detection),最簡單的方法就是使用音量和過零率來判別,相關細節會在後續章節說明。

收藏

分享

举报
下载此文档