我用一麦克风录制的PCM数据是16bit,双声道的,用Audacity工具查看可知,右声道是没有声音的,左声道才有声音,如下图所示
所以为了节省存储空间,完全可以将左右声道分离出来,左右声道分离的方法很简单,只要知道PCM数据是如何存储的,就可以了,具体存储格式如下
根据上图可以得出,如果我们想要分离左右声道,只要将对应声道的数据保存起来即可,由于我录制的PCM是裸数据,所以直接用文件读写操作去处理。具体实现如下
C语言实现
#define FALSE 0
#define TRUE 1
#define OLD_FILE_PATH "old.pcm"
#define LEFT_FILE_PATH "left.pcm"
#define RIGHT_FILE_PATH "right.pcm"
void pcm_lr_separate(void)
{
char buf[16