粗略的计算原始音频PCM信号的音量
本文只是粗略的计算音频单通道的音量,采样率是48000,帧的大小是1024,位宽是16。
通过查找资料,并结合所学过的信号处理知识,计算PCM信号的音量大小,就是求采样点幅值的面积(即能量),计算公式为:20*log10(x/y)
此处出思路是:以一帧为单位,求一帧内,单个采样点的平均幅值,然后,对这个平均幅值进行能量计算,大概估算出当前的音量大小。
代码如下:
//取当前的PCM平均幅值
pcm_status = a_pcm_status;
if(pcm_status!=0)
{
//计算音量大小,并进行百分比量化
pcm_level = ((int)(20*log10((double)pcm_status/32767.0))+34)*100/34;
}
else{
pcm_level = 0;
}
网友资料:
如何通过波形计算音量
pcm音量计算