主要内容

loudnessMeter

符合标准的响度测量

描述

loudnessMeter系统对象™根据EBU R 128和ITU-R BS.1770-4标准计算音频信号的响度、响度范围和真实峰值。

执行响度测量:

  1. 创建loudnessMeter对象并设置其属性。

  2. 使用参数调用对象,就像调用函数一样。

有关系统对象如何工作的详细信息,请参见什么是系统对象?

创建

描述

loudMtr = loudnessMeter创建一个System对象,loudMtr,在每个输入通道上独立执行响度测量。

大声表(名称,值设置每个属性的名字到指定的价值.未指定的属性有默认值。

例子:loudMtr = loudnessMeter('ChannelWeights',[1.2, 0.8],'SampleRate',12000)创建一个System对象,loudMtr,信道权重为1.2和0.8,采样率为12 kHz。

属性

全部展开

除非另有说明,属性为nontunable,这意味着在调用对象后不能更改它们的值。对象在调用时锁定,而释放功能解锁它们。

如果属性为可调,您可以随时更改其值。

有关更改属性值的详细信息,请参见使用系统对象的MATLAB系统设计

应用于每个输入通道的线性加权,指定为非负值的行向量。行向量中的元素数量必须等于或大于输入通道的数量。向量中的多余值将被忽略。

缺省信道权值遵循ITU-R BS.1170-4标准。若要使用默认信道权重,请按以下顺序将输入信号信道指定为矩阵:[左,右,中心,左环绕,右环绕]。

作为最佳实践,指定ChannelWeights属性的顺序:[左,右,中心,左环绕,右环绕]。

可调:是的

数据类型:|

使用相对刻度进行响度测量,指定为逻辑标量。

  • —响度测量是绝对的,并以响度单位满量程(LUFS)返回。

  • 真正的响度测量是相对于TargetLoudness值并以响度单位(LU)返回。

可调:没有

数据类型:逻辑

LUFS中相对尺度的目标响度级别,指定为实标量。

例如,如果TargetLoudness为-23 LUFS,则-23 LUFS的响度值报告为0 LU。

可调:是的

依赖关系

若要启用此属性,请设置UseRelativeScale真正的

数据类型:|

输入采样率(以Hz为单位),指定为正标量。

可调:是的

数据类型:|

使用

描述

例子

短暂的短期的集成范围] =大声地铁(audioIn返回输入的瞬时和短期响度的测量值到响度计,以及当前输入帧的真实峰值,audioIn.它还将自上次以来输入的集成响度和响度范围返回到响度计重置被称为。

输入参数

全部展开

音频输入到响度计,指定为一个矩阵。矩阵的列被视为独立的音频通道。

请注意

如果使用默认值ChannelWeightsloudnessMeter,作为最佳实践,请按以下顺序指定输入通道:[左,右,中,左环绕,右环绕]。

数据类型:|

输出参数

全部展开

瞬时响度,以响度单位相对于满量程(LUFS),作为列向量返回,列向量的行数与audioIn

默认情况下,响度测量以LUFS形式返回。如果你设置UseRelativeScale财产真正的,响度测量以响度单位(LU)返回。

数据类型:|

相对于满量程(LUFS)的响度单位的短期响度,作为具有相同行数的列向量返回audioIn

默认情况下,响度测量以LUFS形式返回。如果你设置UseRelativeScale财产真正的,响度测量以响度单位(LU)返回。

数据类型:|

相对于满量程(LUFS)的以响度单位表示的综合响度,作为具有相同行数的列向量返回audioIn

默认情况下,响度测量以LUFS形式返回。如果你设置UseRelativeScale财产真正的,响度测量以响度单位(LU)返回。

数据类型:|

以响度单位(LU)表示的响度范围,作为具有相同行数的列向量返回audioIn

数据类型:|

dB-TP中的真峰值响度,作为具有相同行数的列向量返回audioIn

数据类型:|

对象的功能

要使用对象函数,请将System对象指定为第一个输入参数。例如,释放system对象的系统资源obj,使用这种语法:

发行版(obj)

全部展开

可视化 打开“EBU模式”仪表显示
克隆 创建重复的系统对象
isLocked 确定系统对象正在使用中
释放 释放资源并允许更改系统对象属性值和输入特征
重置 重置的内部状态系统对象
一步 运行系统对象算法

例子

全部折叠

创建一个dsp。AudioFileReader系统对象™读入音频文件。创建一个loudnesMeter系统对象。音频文件的采样率作为音频文件的采样率loudnessMeter

fileReader = dsp。AudioFileReader (“RockDrums-44p1-stereo-11secs.mp3”);大声表(“SampleRate”, fileReader.SampleRate);

在音频流循环中读入音频文件。使用响度计来确定音频信号的瞬时、短期和综合响度。缓存响度测量值以供分析。

瞬间= [];shortTerm = [];Integrated = [];~isDone(fileReader) x = fileReader();[m,s,i] = loudMtr(x);瞬间=[瞬间的;m];shortTerm = [shortTerm;s];集成=[集成;i];结束发行版(fileReader)

绘制音频信号的瞬时、短期和综合响度。

T = linspace(0,11,长度(瞬间));情节(t,[短暂的、短期的、集成])标题(“响度测量”)传说(“瞬间”“短期”“集成”)包含(的时间(秒)) ylabel (“LUFS”

图中包含一个轴对象。标题为Loudness Measurements的axis对象包含3个类型为line的对象。这些对象表示瞬时、短期、综合。

创建一个音频文件阅读器和一个音频设备写入器。

fileReader = dsp。AudioFileReader (“FunkyDrums-44p1-stereo-25secs.mp3”...“SamplesPerFrame”, 1024);fs = fileReader.SampleRate;deviceWriter = audioDeviceWriter(“SampleRate”fs);

创建一个时间范围来可视化您的音频流循环。

timeScope = timeScope (“NumInputPorts”,2,...“SampleRate”fs,...“TimeSpanOverrunAction”“滚动”...“LayoutDimensions”(2, 1),...“TimeSpanSource”“属性”“时间间隔”5,...“BufferLength”5 * fs);范围的顶部子图timeScope。Title =“短暂的响度”;timeScope。YLabel =“LUFS”;timeScope。YLimits = [- 40,0];范围的底部子图timeScope。ActiveDisplay = 2;timeScope。Title =“响度范围”;timeScope。YLabel =“陆”;timeScope。YLimits = [- 1,2];

创建一个响度计。使用输入文件的采样率作为响度计的采样率。调用可视化打开音量计的“ebu模式”可视化。

大声表(“SampleRate”fs);可视化(loudMtr)

在音频流循环中:

  • 读一读音频文件。

  • 计算瞬时响度和响度范围。

  • 在你的时间范围内想象瞬间的响度和响度范围。

  • 播放音频信号。

“ebu模式”响度计可视化在打开时自动更新。作为最佳实践,一旦循环完成,就释放文件读取器和设备写入器。

~isDone(fileReader) audioIn = fileReader();[瞬时响度,~,~,LRA] = loudMtr(audioIn);timeScope (momentaryLoudness LRA);deviceWriter (audioIn);结束发布(fileReader)发布(deviceWriter)

创建一个音频文件阅读器来读取音频文件。创建一个音频设备写入器,将音频文件写入音频设备。使用文件读取器的采样率作为设备写入器的采样率。

fileReader = dsp。AudioFileReader (“Counting-16-44p1-mono-15secs.wav”...“SamplesPerFrame”, 1024);fs = fileReader.SampleRate;deviceWriter = audioDeviceWriter(“SampleRate”fs);

创建一个响度计,目标响度设置为默认值-23年LUFS。打开“ebu模式”响度计可视化。

大声表(“UseRelativeScale”,真正的);可视化(loudMtr)

创建一个时间范围来可视化您的音频信号及其测量的相对瞬间和短期响度。

Scope = timescope(...“NumInputPorts”3,...“SampleRate”fs,...“TimeSpanOverrunAction”“滚动”...“TimeSpanSource”“属性”“时间间隔”5,...“BufferLength”5 * fs,...“标题”音频信号,瞬时响度和短期响度...“ChannelNames”, {音频信号的“短暂的响度”“短期响度”},...“YLimits”(-16年,16),...“YLabel”‘振幅/ LU’...“ShowLegend”,真正的);

在音频流循环中,聆听并可视化音频信号。

~isDone(fileReader) x = fileReader();[瞬时,短期]= loudMtr(x);范围(x,瞬时,短期)deviceWriter (x);结束发布(deviceWriter)发布(fileReader)

算法

全部展开

loudnessMeter系统对象计算音频信号的瞬时响度、短期响度、综合响度、响度范围(LRA)和真峰值。您可以指定用于响度测量的任意数量的通道和非默认通道权重。的loudnessMeter对一般情况下的算法进行了描述n具有默认通道权重的通道。

参考文献

[1]国际电信联盟;无线电通信部门。测量音频节目响度和真峰值音频水平的算法。ITU-R BS.1770-4。2015.

[2]欧洲广播联盟。声音信号的音量正常化和允许的最大电平。Ebu r 128。2014.

[3]欧洲广播联盟。响度计量:“EBU模式”计量补充EBU R 128响度归一化。EBU R 128技术3341。2014.

[4]欧洲广播联盟。响度范围:EBU r128响度归一化的补充措施。EBU R 128技术3342。2016.

扩展功能

版本历史

在R2016b中引入