文章目录
重采样在WebRTC的音频处理中非常的重要,WebRTC中AEC等算法对32000hz以下的音频数据有比较好的处理效果,但是对于各个端采集的音频一般都是48000或44100(CD音质),而且有可能是单声道或多声道的数据;同样播放的数据也是48000或44100等数据;这些都需要WebRTC在编码前后解码后对音频的数据做重采样处理;
重采样的算法:目前主要主要是有线性插值法采样和sinc采样,这两种算法在WebRTC中都有实现,目前的版本(M76)及最新的版本基本都换成sinc算法,sinc支持上采样,例如:16000到48000;下采样,例如:44100-18000(在实际的项目中已经验证);
在前面的文章 WebRTC系列-WebRTC基础(二)音视频基础知识中介绍了音频的三元组,如下:
- 位深度(BitPerSample):一个采样用多少个bit来存储,表现在波形图上就是位越大波形的上下范围也就越大;一般都是8bit 16bit,电话一般是8bit,流媒体普遍是16bit;
- 采样率(SampleRate):采样率一般主要是8k,16k,32k,44.1k,48k,采样率越高越就越接近原始的声音(获得更多的声音细节);
- 声道数(NumberChannel):单声道,双声道(左右声道的声音可以一直,也可以不同),多声道;
这里之所以再次强调音频的三元组,是因为