基于EN50332的最大声压实时检测算法
2018-06-17刁文兴
摘要:首先介绍了EN50332规范对便携式设备的要求,研究了了最大声压与响度之间的关系,提出了一种将将声音的时域信号转化为频域得到功率谱的方法,并以MP3、WAV文件为例,给出了根据PCM数据流,用FFT运算,实时检测最大声压的具体算法。实验结果表明,本算法可以实时检测便携式设备的声压,从而及时对用户进行干预。
关键词:EN50332;声压;响度;实时检测
EN50332 Based Algorithm of Real-time Detection of Maximum Sound Pressure
DIAO Wen-xing
(Nanjing Institute of Industry Technology,Nanjing 210046,China)
Abstract:The paper firstly introduces requirements of EN50332 standard for portable equipment,studies the relationship between the maximum sound pressure and the sound volume,and puts forward a method of getting power spectrum by transforming sound time domain signal into frequency domain. It also presents the specific algorithm of real-time detection of maximum sound pressure,according to the PCM data stream and with the FFT arithmetic method,taking MP3 and WAV files as examples. The experimental results show that the algorithm can real-time detect the sound pressure of portable equipment,so as to make timely intervention to user.
Key words:EN50332;sound pressure;loudness;real-time detection
引言:
EN50332规范将在2013年1月1日实行新标准,而新增条目主要考虑到便携式音频输出设备有可能对人耳造成听力损伤,故对耳机的输出响度进行了更为严格的要求。当耳机输出声压到达85dBA的时候,必须在界面上显示警告信息,然后由用户自行选择是否接受更高的音量。针对此项变更,本质上就是要我们对耳机输出声压进行实时检测。
一、响度检测
响度是一个主观概念,单位为Phon(方),是对客观声压的主观量化。即一个主观响度可以由客观声压,经加权处理获得。
我们一般使用A加权,A加权是一种用于音频测量的标准权重曲线,用于反映人耳的响应特性。A加权的结果较为贴近大多数人的感官,故声压常以dBA为单位,dB表示分贝,A则表示A加权。
获得耳机输出的响度方法就是用Microphone进行声音采集,再经放大、整形、滤波等一系列处理后,进行A加权,得到最终的响度值。3GPP协议中的RLR/SLR就是在声压~频率曲线上抽样13个点,然后逐点进行加权计算,从而获得响度值。所以,响度检测问题就转化为声压检测,可参见下图2-1所示的声压~频率曲线:
图1-1是仪器测试得到的声压~频率曲线,对普通用户的日常使用而言,根本就没有可操作性。所以,我们必须另辟蹊径。
我们已经知道,响度检测可以等价为声压检测,声压主观上是和输出功率P是成正比的。只要在受话器的功率承受范围内,我们可以通过采集输出功率来等效输出声压.于是,声压检测就转化为功率检测的问题了
二、功率检测
响度与信号的功率有直接关系,但响度同时与信号的频率也有直接关系。直观上,在同等功率的情况下,1KHz的响度比100Hz的响度要高得多,但比3KHz的响度要稍低一些,比10KHz的响度要稍高些。所以,人们提出了等响曲线的概念。
图中每条曲线上对应于不同频率的声压级是不相同的,但人耳感觉到的响度却是一样的。每条曲线上注有一个数字,为响度单位Phon(方),由等响曲线族可以得知,当音量较小时,人耳对高低音感觉不足而音量较大时,高低音感覺充分,人耳对1000Hz-4000Hz之间的声音最为敏感。
在围绕1000Hz的中频范围内,等响度曲线相对比较低,说明人耳对中频的响应敏感。在这个范围之外的低频和高频两边,等响度曲线翘起,说明人耳对低频和高频声音的敏感下降,以致当很低或很高的频率时,需要很大的声强才有可能感觉声音的存在。人耳能听到声音的最微弱强度,称为听觉阈(即图中虚线)。
从上面的等响曲线可以看出,在同等功率的情况下(声压和功率成正比),1KHz的响度比20Hz的响度要高得多,但比3KHz的响度要稍低一些,比10KHz的响度要稍高些。故声音的响度还与信号的频率相关。
由上述可知,声压同时与信号的输出功率,和信号的频率相关,即唯一与功率谱相关。
综上,要想实现响度的实时检测,我们需要知道:1、信号的功率谱。2、声压与功率之间的关系。功率变大2倍,声压上升3dB。3、声压与频率之间的关系。这个我们可以利用标准音源,在同等功率情况下(例如1W),从100Hz到20kHz每50Hz取一标准音源进行测试,利用声压仪记录对应的声压值的变化情况,从而建立声压与频率之间的关系
所以实现功能的关键在于如何得到信号的功率谱。在时域上,我们只能得到功率P=U^2/R,故我们需要将信号从时域转化到频域上,得到信号的功率谱。由Parseval定理知道,时域功率与频域功率相等,这样就可以通过功率谱,获得相应频率下的平均功率值,进而通过声压与功率及频率的关系,转化成对应的声压值,解决实时监测的问题。
三、获得信号的功率谱
时域信号转到频域,只需要做Fourier变换,而实际的音源文件均为离散时间信号,我们就应该采用DTFT(离散时间傅里叶变换)进行处理。
但DTFT的结果是连续频谱,类似图2中的连续曲线,不适合计算器做进一步处理,而时域和频域都离散的情况是可以进行计算器运算的。参考3GPP协议中计算RLR/SLR的方法,它把声压~频率曲线的连续频谱抽样为一个个离散的频点,然后对这个离散频谱的各个频点进行加权处理就可换算出响度。所以,我们可以对DTFT进行离散抽样,即DFT(离散傅里叶变换)。
而对于DFT,我们可以采用FFT(Fast Fourier Transform)进行快速求解。实际上,我们直接对音源文件所代表的时域离散信号进行FFT处理,就可以获得对应的频域信号,即离散的功率谱。
无论是DTFT还是DFT、FFT,只要属于FT家族,就一定是正交变换,而正交变换就一定满足Parseval定理,实时域功率与频域功率相等。所以,经FFT处理所得的频域信号必然并不会改变时域信号的功率,它仅仅是在频域中把原时域信号所包含的各频率成份显示出来。
由此,我们完成了响度检测到声压检测,声压检测到功率检测,然后又从功率检测细化到功率谱检测等一系列转换之后,下一个问题是解决实时检测,只有实时检测到当前便携式设备如耳机输出的声压,才能进行必要的干预。
四、检测算法
输出响度是随着输出信号变化而变化的。在同样的音量设置等级,由于音源的不同,输出响度有着巨大的差别。所以,我们还必须做到实时检测。只要我们不停地采集输出功率,就可以做到实时。那么到底采样频率是多少才能做到实时呢?
根据Nyquist采样理论,当采样信号频率两倍于带限信号最高频率的时候,可在频域实现无失真的频谱搬移,再经低通滤波器后,可恢复出原始信号。所以,理论上,只要我们确定了音源的频谱范围,就可以定出采样频率。
由于MP3、WAV等音源文件均为PCM数据流,而且该PCM数据流本身就是一个个离散的时域采样信号(多为44.1KHz或48KHz)。我们无需进行额外的采样处理,直接从PCM数据流中解析出音源对应的时域信号,然后对这些离散时域信号进行FFT运算就可以。
在耳机左右声道输出端D/A转换前,读取音源文件的PCM数据流,即获得音源文件的离散时域采样信号。因为响度与信号的功率和频率相关,即唯一与信号的功率谱相关,故对于这些离散的时域采样信号,需进行FFT,将时域信号转化到频域,得到功率谱。对功率谱进行分析,设置采样周期时间,对信号功率谱,进行抽样求出平均功率。并且周期性地进行采样和功率计算,直到停止播放音频文件,得到信号的功率谱,对应声压与频率的关系,及声压与功率的关系,从而获得信号的声压值。将获得的信号的声压值与预先设置好的85dB对应的门限值进行比較,做到实时监控当前设备输出是否符合EN50332标准。
参考文献
[1]ANSI S3.4—2005,Procedure for the computation of loudness of steady sounds [S] 2005.
[2]郑文,陈克安,马元峰. Moore 模型与响度计算中的关键问题 [J] 电声技术2007,31(6):11-16
[3]ISO 532—1975 Acoustic-method for calculation loudness level[S]. 1975
[4]Moore B C J,Glasberg B R,Thomas B. A model for the prediction of thresholds,loudness,and partial loudness[J]. J Audio Eng Soc,1997,45(4):224-240.
[5]Glasberg B R,Moore B C J. A revision of zwickersloudness model[J]. Acta Acustica,1996(82):335-345
[6]马元峰,陈克安,王娜. Moore 响度模型的数值计算方法[J]. 声学技术,2008,27(3):390-395.
[7]谢明,丁康.频谱分析的校正方法[J]. 振动工程学报,1994,7(2):172-179.
[8]丁康,江利旗. 离散频谱的能量重心校正法[J]. 振动工程学报,2001,14(3):354-358
[9]卢官明,宗昉. 数字音频技术原理及应用[M]. 北京:机械工业出版社,2005.
[10]Real-time sound detection algorithm based on EN50332
作者简介:刁文兴,1972年9月,男,江苏常州人,南京工业职业技术学院基建处工程师。
(作者单位:南京工业职业技术学院 基建处)