主要内容

响度标准化符合EBU R 128标准

这个例子展示了如何使用音频工具箱™的工具来测量响度,响度范围和真峰值值。它还展示了如何标准化音频,以满足EBU R 128标准合规。

介绍

体积归一化传统上是通过观察峰值信号测量来实现的。然而,这种方法有一个缺点,即过度压缩的音频可能通过一个信号级别的阈值,但仍然非常响亮。结果是响度战争在美国,唱片的声音往往比以前更响亮,不同类型的唱片也不一致。

现代解决响度战争的方法是测量响度响度感知结合true-peak水平测量。国际电联BS.1770-4、EBU R 128和ATSC A/85等国际标准已被开发用于对基于音频信号功率的响度测量进行标准化。许多国家已经通过了有关广播响度标准的立法。

在本例中,您将测量离线(基于文件)和实时(流媒体)音频信号的响度和补充参数。你还可以通过标准化音频来适应目标关卡。

EBU R 128标准

音频工具箱使您可以测量响度和相关参数,根据EBU R 128标准。本标准定义了以下响度测量方法:

  • 短暂的响度:使用长度为400毫秒的滑动窗口。

  • 短期响度:使用长度为3秒的滑动窗口。

  • 集成响度:从开始到结束的总响度。

  • 响度范围:以宏观时间尺度量化响度的变化。

  • True-peak价值:插值信号的峰值采样电平。

有关这些参数的更详细描述,请参阅EBU R 128标准的文档。

离线响度测量和归一化

对于已经拥有录制的音频样本的情况,可以使用integratedLoudness测量响度的功能。它返回完整音频文件的综合响度,单位为LUFS,响度范围,单位为LU。

[x, fs] =“rockguitar - 16 - 44 - p1 -立体声- 72 secs.wav”);[响度,LRA] =综合响度(x,fs);流(正常化前的响度:%。1 f LUFS \ n '响度)
正常化前的响度:-8.2 LUFS

EBU R 128将目标响度级别定义为-23 LUFS。音频文件的响度明显高于这个水平。一个简单的电平降低操作可以用来归一化响度。

目标= -23;=目标-响度;获得= 10 ^ (gaindB / 20);xn = x。*所得;audiowrite (“RockGuitar_normalized.wav”、xn fs)

新音频文件的响度处于目标级别。

[x, fs] =“RockGuitar_normalized.wav”);响度= integratedLoudness (x, fs);流(正常化后的响度:%。1 f LUFS \ n '响度)
归一化后响度:-23.0 LUFS

活响度测量和归一化

对于流媒体音频,EBU R 128定义瞬时和短期响度。你可以使用loudnessMeter系统对象测量瞬时响度,短期响度,综合响度,响度范围和真实峰值的一个实时音频信号。

首先,将音频信号传输到声卡并测量其响度loudnessMeter.的可视化的方法loudnessMeter打开一个用户界面(UI),在模拟过程中显示所有与音量相关的测量结果。

读者= dsp。AudioFileReader (“rockguitar - 16 - 44 - p1 -立体声- 72 secs.wav”...“SamplesPerFrame”, 1024);fs = reader.SampleRate;inputLoudness = loudnessMeter (“SampleRate”fs);球员= audioDeviceWriter (“SampleRate”fs);runningMax = dsp。MovingMaximum (“SpecifyWindowLength”、假);可视化(inputLoudness)~isDone(reader) audioIn = reader();[响度,~,~,~,tp) = inputLoudness (audioIn);maxTP = runningMax (tp);球员(audioIn);结束

图形响度仪包含uicontrol、uipanel类型的对象。

流(正常化前的最大真峰值值:%。1 f dBTP \ n 'maxTP(结束)
归一化前最大真峰值:-0.3 dBTP
发布(读者)发布(球员)

正如您在UI上看到的,音频流的响度明显高于-23 LUFS阈值。其最大真峰值-0.3 dBTP也高于EBU R 128规定的-1 dBTP阈值。标准化现场音频流的响度比标准化文件的响度更棘手。一种帮助响度值接近目标阈值的方法是使用自动增益控制器(AGC)。在以下代码中,您将使用audioexample。自动增益控制将音频信号的功率归一化到-23分贝的系统对象。AGC通过查看前400毫秒来估计音频信号的功率,这是用来计算瞬时响度的窗口大小。本例中使用了两个响度计,一个用于AGC的输入,另一个用于AGC的输出。两个响度仪的ui可能会在屏幕上的相同位置启动,所以你必须将其中一个移动到一边,以比较AGC前后测量的响度。

outputLoudness = loudnessMeter (“SampleRate”fs);gainController = audioexample。自动增益控制(“DesiredOutputPower”, -23,...“AveragingLength”, 0.4 * fs,“MaxPowerGain”, 20);重置(inputLoudness)重复使用以前的响度计重置(runningMax)可视化(inputLoudness)可视化(outputLoudness)~isDone(reader) audioIn = reader();loudnessBeforeNorm = inputLoudness (audioIn);[audioOut, gain] = gainController(audioIn);[loudnessAfterNorm, ~, ~, ~, tp) = outputLoudness (audioOut);maxTP = runningMax (tp);球员(audioOut);结束

图形响度仪包含uicontrol、uipanel类型的对象。

图形响度仪包含uicontrol、uipanel类型的对象。

流(正常化后的最大真峰值值:%。1 f dBTP \ n 'maxTP(结束)
归一化后最大真峰值:8.3 dBTP
发布(读者)发布(球员)

使用AGC不仅使音频的响度接近-23 LUFS的目标,而且在允许的-1 dBTP下获得了最大真峰值。在某些情况下,尽管响度在-23 LUFS或以下,但最大真峰值仍保持在-1 dBTP以上。对于这种情况,您可以通过限幅器