音频处理
彷徨而立
这个作者很懒,什么都没留下…
展开
-
记录一个音频PCM数据由双声道转单声道出错问题
在计算左右声道的对应样点均值时,样点必须使用 s16 表示,禁止使用 u16表示,因为u16会导致计算出错,从而产生大噪声问题!综上分析,正常的声音波形是在样点值接近0的时候发生突变的,变成极大值或极小值(即:绝对值接近 32768 = 2^15)工作需要将一份 双声道的PCM数据转换成单声道数据,我采用的是将左右声道样点值对应相加求平均样点值的办法。我们在上面计算左右声道样点值的均值时,是用 u16 来表示样点值的,这种表示方法在计算均值时出问题了!因为用 u16 来表示样点值的,导致在计算均值时出错!原创 2022-09-16 11:21:27 · 604 阅读 · 0 评论 -
RMS 计算音频PCM能量
评估音频能量,音频PCM数据通过RMS计算出 dB值下面使用 16bit位深 的PCM数据计算dB值#define EPSILON 1e-6const int kMinLevel = 127;const double kMaxSquaredLevel = 32768.0 * 32768.0;u32 RMS(s16* pBuf, u32 dwDataLen){ if (pBuf == NULL || dwDataLen == 0) { return kMinLevel; } u原创 2020-10-28 17:25:37 · 3016 阅读 · 1 评论