主要内容

loudnessMeter

符合标准的响度测量

描述

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

实现响度测量:

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

  2. 调用带有参数的对象,就像调用函数一样。

要了解更多关于System对象如何工作的信息,请参见什么是系统对象?

创建

描述

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对象指定为第一个输入参数。例如,释放名为obj,使用以下语法:

发行版(obj)

全部展开

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

例子

全部折叠

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

fileReader = dsp。AudioFileReader (“RockDrums-44p1-stereo-11secs.mp3”);音量计(“SampleRate”, fileReader.SampleRate);

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

瞬间= [];shortTerm = [];积分= [];~isDone(fileReader) x = fileReader();[m,s,i] = loudMtr(x);moment =[瞬间的;m];shortTerm =[短期;s];积分=[积分;i];结束发行版(fileReader)

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

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

图中包含一个axes对象。标题为“响度测量”的axes对象包含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();[momentaryloutness,~,~,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”'振幅/单位'...“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 Tech 3341。2014.

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

扩展功能

版本历史

在R2016b中引入