FFmpeg、幅值、响度、分贝的计算
落日流沙 2017-08-28 08:32:23
分贝:通常表示两个声音信号或电力信号在功率或强度方面的相对差别的单位,相当于两个水平的比率的常用对数的十倍。
响度:指在单位时间内通过指定大小的面积内的能量的总和
响度 = 能量 / (时间*面积)
响度 = 功率 / 面积
故:分贝 = 10 * log 响度
但是 幅值和响度之间的计算关系是怎样的呢?
然而,通常情况下,当人们说到分贝的时候,却指的是压强。dBSPL(Sound Pressure Levels)
响度 = 声压 * 声压 / 常数,室内常数一般取400
假设可听最低声响 0.000000000001瓦/(米*米) 0.00002帕
则
分贝 = 10 log (响度/0.000000000001瓦/(米*米))
分贝 = 20 log (声压 * 声压 / 400)
声压单位 牛/(米*米),即帕,乘单位距离为功,除单位时间为功率
故以声压记,系数为20
假设已通过 FFmpeg 拿到时间段内的16位音频数据,怎么算声压和响度???