static int hal_get_ai_frame_db(const unsigned char *pcmdata, size_t size)
{
short tmp = 0;
int i = 0;
int sum = 0;
short* addr = (short*)pcmdata;
for (i = 0 ; i < size; i += 4) {
memcpy(&tmp, (unsigned char*)addr + i, sizeof(short)); //获取2个字节的大小(值)
sum += abs(tmp); //绝对值求和
}
sum = sum / (size / 4); //求平均值(2个字节表示一个振幅,所以振幅个数为:size/2个
if(sum) {
return (int)(20.0 * log10(sum));
}
return 0;
}
获取PCM音频数据的声音分贝值
于 2022-06-04 21:17:17 首次发布