我正在实现基于ITU标准的响度测量程序,并声明我应该使用某种选通功能来排除静音区域,以免影响测得的平均声音水平-例如-病假一般需要3秒钟的积分时间-例如整个声音包含语音,而最后2/3包含静音(人们屏住呼吸,思考或类似原因),那么我得到的响度值小于应有的值-因为我考虑了静音区域。因此,这里有个建议的解决方案,但记录的不是很好-您需要进行“即时”(400ms)响度测量,而不需要(3000ms)积分时间,并且如果“即时”响度为8LU(LU代表响度单位)低于测得的响度在“全时”(3000ms)中-然后您暂停响度测量,同时使您的即时电平处于远距离电平范围内。长话短说-您会收到许多传入的样本,例如10ms,计算短期和长期滑动的响度,然后比较短期响度是否比长期低8个单位,并丢弃该组样本/将声音测量暂停10ms的采样,有效地忽略它们并将您的长期响度保持在较高水平-忽略“相对于长期静音”的那10ms;
所以问题是:由于我忽略了比我的长期响度水平低8lu的所有样本(实际上是一小块样本),因此我实际上阻止了我的长期响度水平在实际应有的水平上变小。
来自“EBU P / Loud工作组的2010年论文:
“P / LOUD在2009年第4季度和2010年1月进行了听力测试,以确定最佳的门控阈值。发现四种测试中的两种候选门控方法均给出了良好的结果,在统计学上均明显优于其他两种。这两种方法是相对于无齿的LKFS('6rel')的6LU和相对于无齿的LKFS('10rel')的10LU的门。所有候选者的块长为400ms。务实地,选择8rel的值进行进一步的非正式测试反对广播公司已经使用的其他选通功能” *
P.S对不起,我的英语不是我的母语。
最佳答案
我看不出该标准在何处建议了您所描述的那样复杂的方法。取而代之的是,从我对此粗略的概述中,我认为您需要通过将滑动窗口分成较小的时间段来计算滑动窗口中的响度,并且如果此窗口中的任何较小的时间段都低于阈值(- 8LU),则无需在计算中考虑这些垃圾箱。
也许您正在这样做,只是没有正确计算平均值。为了在删除样本时正确找到平均响度,您需要取未下降的响度级别的总和(即高于截止阈值的响度级别),然后除以响度超过阈值的时间量。就是说,我假设当您说“响度级别要小于实际值”时,您正在做的事情是除以总时间,这会错误地降低平均值的值。相反,您应该仅除以计算总和所用的时间量,即N*(small time bin size in seconds)
,其中N是阈值以上的仓数。
也许该算法看起来比实际复杂,因为您正在寻找一种方法来确定每个新时间段进入滑动窗口时是否都高于阈值,而不是重新计算滑动窗口的每个移位?这当然是可能的,并且是有效执行此操作的方法,但是该算法稍微复杂一些。