1
头图

前言

我们平时经常会说到声音是多少分贝,那么这个分贝是什么概念呢?如何计算音频文件的分贝呢?

1. 什么是分贝?

先看百度百科介绍:分贝(decibel )是一个计量单位, 量度两个相同单位之数量比例的计量单位, 主要用于度量声音强度,常用dB表示。

在工程应用中,通常有很多的定义方式,但是主要分为以下两类:

1.1 功率类

定义:两个同类功率量或可与功率类比的量之比值的常用对数乘以10等于1时的级差

公式:

$$ N_{dB}=10\lg\frac{pi}{p0}\\ N_{dB}-表示信号{pi}对信号{p0}的分贝值\\ {pi}、{p0}-对应为功率量的单位,如电流平方、电压平方、质点速度平方、声压平方 $$

举个例子:

$$ 假设A的电功率为20瓦,B的电功率为10瓦\\ {p_A}=20w\\ {p_B}=10w\\ N_{dB}=10\lg\frac{p_A}{p_B}=10\lg2=3dB\\ 也就是说,A的电功率比B的电功率大3dB $$

1.2 电压类

定义:两个同类功率量或可与功率类比的量之比值的常用对数乘以10等于1时的级差

公式:

$$ N_{dB}=20\lg\frac{pi}{p0}\\ N_{dB}-表示信号{pi}对信号{p0}的分贝值\\ {pi}、{p0}-对应为电压类的单位,如电流、电压、质点速度、声压 $$

举个例子:

$$ 假设A的电压为20伏特,B的电压为10伏特\\ {p_A}=20V\\ {p_B}=10V\\ N_{dB}=10\lg\frac{p_A}{p_B}=10\lg2=3dB\\ 也就是说,A的电压比B的电压大3dB $$

2. 什么是声音的分贝?

我们通常说话都会说大概是多少多少分贝的,比如经常会说,安静的轻声絮语为20-40dB左右,正常室内说话为40-60dB左右,那么声音的分贝是如何度量的呢?
image

这里就要提到一个概念,叫做声压级

声压定义为声波在某一点产生的逾量瞬时压强的均方根值

公式:

$$ SPL=20\lg\frac{p_e}{p_{ref}}\\ SP-声压级\\ {p_e}-待测声压有效值\\ {p_{ref}}-参考声压的有效值\\ 在空气中,参考声压的有效值为2\times10^{-5} Pa $$

所以,如果我们知道说话声音对应的声压,然后基于以上公式就可以计算出它对应的声压级,也就是平常我们常说的这个声音对应的分贝数了。

3. 如何计算音频文件的分贝数或者声压级

在网上找到这样一个公式:

$$ Lp=20\lg\frac{p_{rms}}{p_{ref}}\\ {p_{rms}}-声音采样点振幅RMS数值\\ {p_{ref}}-声音振幅最大值\\ $$

举个例子来说明以下,如果我们的声音是16bits有符号数,那么每个采样点的数值大小应该在-32768-32767之间,也就是说振幅数值为65535,这个时候最大振幅对应的分贝是:20lg65535=96.32dB,也就是说,这个格式的动态范围为96dB。

考虑到我们平时的声音范围,所以16bits的位数基本上能够记录大部分音频的声音,实体唱片的CD格式也都是采用16bit的采样精度的。

image

从Audition的这个振幅统计,可知,振幅最大约为24117,如果带入上面公式计算的是20lg24117=87.68dB才对,但是它显示的确是-2.66dB,难道是公式错了吗?

音频在经过采样、量化后以数字信号的形式展现出来,那么根据采样值的大小就可以计算出实际的分贝数。

所以按照这个理论去分析,上图中显示的这段音频的分贝数或者声压级(振幅最大值)应该是87.68dB左右的。

那-2.66dB是什么意思呢?

$$ 按照这个音频文件,暂时不考虑rms,单独考虑峰值点的情况\\ 那么{p_{rms}}=24117,{p_{ref}}=1\\ 则Lp=20\lg\frac{p_{rms}}{p_{ref}}=87.68dB\\ 如果将{p_{ref}}=2^{16}=32768\\ 则Lp=20\lg\frac{p_{rms}}{p_{ref}}=-2.66dB $$

所以也就是说,当采用16bits的量化精度时,最大振幅需要设置为32768,同样的道理,当你采用32bits时,最大振幅需要设置为65536。

同样的道理,RMS振幅也可以计算出来。

4. Demo验证

写了一个小的demo,并计算了它的RMS值,计算结果如下:

image

Audition的计算结果如下:

image

关于具体计算的代码已经上传,如果有需要的话,可以直接下载即可。


第六维度研习社
4 声望5 粉丝