1. 程式人生 > 其它 >【採集讀寫】基於matlab語音採集與讀寫【含Matlab原始碼 538期】

【採集讀寫】基於matlab語音採集與讀寫【含Matlab原始碼 538期】

一、簡介

1 語音訊號的採集
語音訊號是一種模擬訊號,首先須經過取樣將其轉換為數字訊號,實質是把連續訊號變為脈衝或數字序列。 我們可以用錄音軟體先錄一段wav格式的音訊。然後用matlab的audioread函式採集,記住取樣頻率和取樣點。然後用sound函式來使用。

2 取樣定理
在進行模擬與數字訊號的轉換過程中,當取樣大於最高頻率的2倍時,則取樣之後的數字訊號完整的保留了原始訊號中的資訊,一般實際應用中保證取樣頻率為訊號最高頻率的5~10倍。

3 取樣頻率
取樣頻率是指計算機每秒鐘取樣多少個聲音樣本,是描述聲音檔案的音質、音訊、衡量音效卡、聲音檔案的質量標準。取樣頻率越高,即取樣的時間間隔越短,則在單位時間內計算機得到的聲音樣本資料越多,對聲音波形的表示也越準確。

4 取樣位數
取樣位數即取樣值或取樣值,用來衡量聲音波動變化的引數,是指音效卡在採集和播放聲音檔案時所使用數字聲音訊號的二進位制位數。取樣頻率是指錄音裝置在一秒鐘內對聲音訊號的取樣次數,取樣頻率越高聲音的還原就越真實越自然。取樣位數和取樣率對於音訊介面來說是最為重要的兩個指標。無論取樣頻率如何,理論上來說取樣的位數決定了音訊資料最大的力度範圍。取樣位數越多則捕捉到的訊號越精確。

二、原始碼

recObj = audiorecorder(44100, 16, 2);
get(recObj)

% Record your voice for 5 seconds.
recObj = audiorecorder;
disp('Start speaking.')
recordblocking(recObj, 5);
disp('End of Recording.');

% Play back the recording.
play(recObj);

三、執行結果

四、備註

版本:2014a
完整程式碼或代寫加1564658423