一。声音的基本概念
声音代表了空气的密度随时间的变化,基本上是一个连续的函数,但是若要将此信号储存在电脑里,就必须将此信号数位化。一般而言,当我们将声音储存到电脑的时候,将有一下几个参数需要考虑:
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/