一。聲音的基本概念
聲音代表了空氣的密度隨時間的變化,基本上是一個連續的函數,但是若要將此信號儲存在電腦裏,就必須將此信號數位化。一般而言,當我們將聲音儲存到電腦的時候,將有一下幾個參數需要考慮:
1、取樣頻率(sample rate):每秒鐘所取得的聲音資料點數,以Hertz(簡寫Hz)爲單位。點數越高,聲音品質越好,但是資料量越大,常用的取樣頻率如下:
1)、8KHz:電話的音質、一般玩具內語音IC的音質
2)、16KHz:一般語音識別所採用
3)、44.1KHz:CD音質
2、取樣解析度(bit resolution):每個聲音資料點所用的位元數,常用的數值如下:
1)、8-bit:可表示的數值範圍爲0~255或-128~127
2)、16-bit:可表示的數值範圍爲-32768~32767
換句話說,每個取樣點的數值都是整數,以方便儲存。但是在matlab的表示法,通常把音訊的值正規化到[-1 1]範圍內的浮點數,因此若要轉回原先的整數值,就必須再乘上2^nbits/2,其中nbits是取樣解析度。
3、聲道:一般只分單聲道(mono)或立體聲(stereo),立體聲就是雙聲道。
二、基本聲學特徵
1、一些最主要的特徵
音量(volume):代表聲音的大小,可由聲音信號的振幅來類比,又稱爲能量(energy)或強度(intensity)等。
音高(pitch):代表聲音的高低,可由基本頻率(fundamental frequency)來類比,這是基本週期(fundemental period)的倒數。
音色(timbre):代表聲音的內容(例如英文的母音),可由每一個波形在一個基本週期的變化來類比。
2、特徵抓取時常用語
(特徵提取時,需要將聲音信號切成一個個音框)
音框點數(frame size):每一個音框所含有的點數。
音框重疊量(frame overlap):音框之間重疊的點數。
音框跳距(frame step or hop size):此音框起點和下一個音框起點的距離點數,等於音框點數減去音框重疊量。
音框率(frame rate):每秒出現的音框數目,等於取頻率除以音框跳距。
三、聲音的錄音、播放和保存
wavrecord(錄音)、wavplay(播放)、wavwrite(保存)
程序實例:
<!--StartFragment-->
fs=11025; % Sampling rate (取樣頻率)
duration=2; % Recording duration (錄音時間)
waveFile='test.wav'; % Wav file to be saved (欲儲存的 wav 檔案)
fprintf('Press any key to start %g seconds of recording...', duration); pause
fprintf('Recording...');
y=wavrecord(duration*fs, fs);
fprintf('Finished recording.\n');
fprintf('Press any key to save the sound data to %s...', waveFile); pause
nbits=8; % Bit resolution (每點的解析度為 8-bit)
wavwrite(y, fs, nbits, waveFile);
fprintf('Finished writing %s\n', waveFile);
fprintf('Press any key to play %s...\n', waveFile);
dos(['start ', waveFile]); % Start the application for .wav file (開啟與 wav 檔案對應的應用程式)
源地址:http://bingxinye1.blog.163.com/blog/static/16879709820118275618122/