注:本文为原创,转载请注明出处。来自CSDN,作者:Midfar Sun
最近研究了如何在iOS上绘制wav波形图。查了很多资料,都没能找到一个很完整的介绍,我这里总结一下一些经验。
首先需要了解wav的这3个重要指标:采样率、采样位数、声道数。下面以16KHz, 16Bit, 单声道为例来说明。
采样率:(也称为采样速度或者采样频率)定义了每秒从连续信号中提取并组成离散信号的采样个数,单位用赫兹(Hz)来表示。采样频率的倒数是采样周期(也称为采样时间),它表示采样之间的时间间隔。采样率为16KHz,表明每秒钟采样有16K次,即0.001秒内采集16个值。
采样位数:即采样值或取样值,用来衡量声音波动变化的参数,是指声卡在采集和播放声音文件时所使用数字声音信号的二进制位数。声卡的位客观地反映了数字声音信号对输入声音信号描述的准确程度。16Bit表示用计算机的16位(即2字节)来标示一个值。
声道数:是指支持能不同发声的音响的个数。常见的有单声道和双声道。
比特率:每秒传送的比特(bit)数,等于采样率*采样位数,单位为bps(Bit Per Second)。示例音频的比特率为256kbps。
C语言没有提供专门的wav音频文件处理框架,因此,我们只能通过读取文件的2进制值来分析wav音频的波形。这里就需要对wav音频的格式有一定的了解。
wav音频分为文件头