integratedLoudness

Измерьте интегрированную область значений громкости и громкости

Описание

пример

loudness = integratedLoudness(audioIn,Fs) возвращает интегрированную громкость аудиосигнала, audioIn, со скоростью дискретизации Fs. Стандарты BS.1770-4 ITU-R и EBU R 128 определяют алгоритмы для вычисления интегрированной громкости.

пример

loudness = integratedLoudness(audioIn,Fs,channelWeights) задает веса каналов, используемые для вычисления интегрированной громкости. channelWeights должен быть вектором-строкой с таким же количеством элементов, как и количество каналов в audioIn.

пример

[loudness,loudnessRange] = integratedLoudness(___) возвращает область значений громкости аудиосигнала, используя любой из предыдущих синтаксисов. Стандарт EBU R 128 Tech 3342 определяет расчет области значений громкости.

Примеры

свернуть все

Определите интегрированную громкость аудиосигнала.

Создайте двухсекундную синусоиду с амплитудой 0 дБ, частотой 1 кГц и частотой дискретизации 48 кГц.

sampleRate = 48e3;
increment  = sampleRate*2;
amplitude  = 10^(0/20);
frequency  = 1e3;

sineGenerator = audioOscillator( ...
    'SampleRate',sampleRate, ...
    'SamplesPerFrame',increment, ...
    'Amplitude',amplitude, ...
    'Frequency',frequency);

signal = sineGenerator();

Вычислите интегрированную громкость аудиосигнала при заданной частоте дискретизации.

loudness = integratedLoudness(signal,sampleRate)
loudness = -3.0036

Считывайте в четырехканальном аудиосигнале. Задайте вектор веса без параметров с четырьмя элементами.

[signal,fs] = audioread('AudioArray-16-16-4channels-20secs.wav');
weightingVector = [1,0.8,0.8,1.2];

Вычислите интегрированную громкость с взвешиванием канала по умолчанию и вектором взвешивания канала без ограничений.

standardLoudness    = integratedLoudness(signal,fs,weightingVector)
standardLoudness = -11.6825
nonStandardLoudness = integratedLoudness(signal,fs)
nonStandardLoudness = -11.0121

Считывайте аудиосигнал. Выключите 3 пятисекундных интервала из сигнала.

[x,fs] = audioread('FunkyDrums-44p1-stereo-25secs.mp3');
x1 = x(1:fs*5,:);
x2 = x(5e5:5e5+5*fs,:);
x3 = x(end-5*fs:end,:);

Вычислите громкость и области значений громкости общего сигнала и каждого интервала.

[L,LRA] = integratedLoudness(x,fs);
[L1,LRA1] = integratedLoudness(x1,fs);
[L2,LRA2] = integratedLoudness(x2,fs);
[L3,LRA3] = integratedLoudness(x3,fs);

fprintf(['Loudness: %0.2f\n', ...
    'Loudness range: %0.2f\n\n', ...
    'Beginning loudness: %0.2f\n', ...
    'Beginning loudness range: %0.2f\n\n', ...
    'Middle loudness: %0.2f\n', ...
    'Middle loudness range: %0.2f\n\n', ...
    'End loudness: %0.2f\n', ...
    'End loudness range: %0.2f\n'], ...
    L,LRA,L1,LRA1,L2,LRA2,L3,LRA3);
Loudness: -22.93
Loudness range: 1.50

Beginning loudness: -23.29
Beginning loudness range: 1.17

Middle loudness: -22.99
Middle loudness range: 1.12

End loudness: -22.09
End loudness range: 1.82

Входные параметры

свернуть все

Входной сигнал, заданный как матрица. Столбцы матрицы обрабатываются как аудиоканалы.

Максимальное количество столбцов входного сигнала зависит от вашего channelWeights спецификация:

  • Если вы используете channelWeights по умолчаниювходной сигнал имеет максимум пять каналов. Задайте каналы в таком порядке: [Влево, Вправо, Центр, Левое окружение, Правое окружение].

  • Если вы задаете nondefault channelWeightsвходной сигнал должен иметь одинаковое число столбцов как количество элементов в channelWeights вектор.

Типы данных: single | double

Частота дискретизации входного сигнала в Гц, заданная как положительная скалярная величина.

Типы данных: single | double

Линейное взвешивание, применяемое к каждому входу каналу, задается как вектор-строка неотрицательных значений. Количество элементов в векторе-строке должно быть равно или больше, чем количество входных каналов. Избыточные значения в векторе игнорируются.

Веса каналов по умолчанию соответствуют стандарту BS.1170-4 ITU-R. Чтобы использовать веса каналов по умолчанию, задайте каналы audioIn матрица в таком порядке: [Влево, Вправо, Центр, Левое окружение, Правое окружение].

Это лучшая практика, чтобы определить channelWeights вектор по порядку: [Влево, Вправо, Центр, Левое окружение, Правое окружение].

Типы данных: single | double

Выходные аргументы

свернуть все

Интегрированная громкость в единицах громкости относительно полной шкалы (LUFS), возвращаемая в виде скаляра.

Стандарты ITU-R BS.1770-4 и EBU R 128 определяют интегрированную громкость. Алгоритм вычисляет громкость путем разбиения аудиосигнала на 0,4-секундные сегменты с 75% перекрытием. Если входной сигнал меньше 0,4 секунд, loudness возвращается пустым.

Типы данных: single | double

Громкость области значений в громкости модулей (LU), возвращается как скаляр.

Стандарт EBU R 128 Tech 3342 определяет область значений громкости. Алгоритм вычисляет область значений громкости, разбивая аудио на 3-секундные сегменты с 2.9-секундным перекрытием. Если входной сигнал меньше трех секунд, loudnessRange возвращается пустым.

Типы данных: single | double

Алгоритмы

свернуть все

integratedLoudness функция возвращает интегрированную область значений громкости и громкости (LRA) аудиосигнала. Можно задать любое количество каналов и ненарушенных весов каналов, используемых для измерений громкости. integratedLoudness алгоритм описан для общего случая n каналов.

Интегрированная область значений громкости и громкости

Входные каналы, x, проходят через K-взвешенную weightingFilter. К-взвешенный фильтр формирует частотный спектр, чтобы отразить воспринимаемую громкость.

Интегрированная громкость
  1. K-взвешенные каналы, y, разделены на 0,4-секундные сегменты с 0,3-секундным перекрытием. Степень (средний квадрат) каждого сегмента K-взвешенных каналов вычисляется:

    mPi=1wk=1wyi2[k]

    • mPi - мгновенная степень i-го сегмента канала.

    • w - длина сегмента в выборках.

  2. Сиюминутная громкость, mL, вычисляется для каждого сегмента:

    mLi=0.691+10log10(c=1nGc×mP(i,c))LUFS

    • Gc - взвешивание для c канала.

  3. Сиюминутная степень строится с помощью мгновенного вычисления громкости:

    mPimPj

    j={i|mLi70}

  4. Относительный порог, Γ, вычисляется:

    Γ=0.691+10log10(c=1nGc×lc)10

    lc - средняя мгновенная степень c канала:

    lc=1|j|jmP(j,c)

  5. Подмножество степени, mPj, стробируется с помощью относительного порога:

    mPjmPk

    k={j|mPjΓ}

  6. Среднее значение моментальных сегментов степени:

    P=1|k|kmPk

  7. Интегрированная громкость вычисляется путем передачи среднего сиюминутного подмножества степени, P, через систему Compute Loudness:

    IntegratedГромкость=0.691+10log10(c=1nGc×Pc)LUFS

Громкость Области значений
  1. K-взвешенные каналы, y, разделены на 3-секундные сегменты с 2.9-секундным перекрытием. Степень (средний квадрат) каждого сегмента K-взвешенных каналов вычисляется:

    sPi=1wk=1wyi2[k]

    • sPi - краткосрочная степень i-го сегмента канала.

    • w - длина сегмента в выборках.

  2. Краткосрочная громкость, sL, вычисляется для каждого сегмента:

    sLi=0.691+10log10(c=1nGc×sP(i,c))

    • Gc - взвешивание для c канала.

  3. Кратковременная громкость стробируется с помощью абсолютного порога:

    sLisLj

    j={i|sLi70}

  4. Затворная кратковременная громкость преобразуется назад в линейную, а затем берётся среднее:

    sPj=1|j|j10(sLj10)

    Относительный порог, K, вычисляется:

    K=20+10log10(sPj)

  5. Кратковременное подмножество громкости, sLj, строится с помощью относительного порога:

    sLjsLk

    k={j|sLjK}

  6. Краткосрочное подмножество громкости, sLk, отсортировано. Область значений громкости вычисляется как между 10-м и 95-м процентилями распределения и возвращается в единицах громкости (LU).

Ссылки

[1] Международное объединение электросвязи; Сектор радиосвязи. Алгоритмы измерения громкости аудиопрограммы и уровня звука True-Peak. Система ITU-R BS.1770-4. 2015.

[2] Европейское вещательное объединение. Нормализация громкости и разрешенный максимальный уровень аудиосигналов. EBU R 128. 2014.

[3] Европейское вещательное объединение. Измерение громкости: Измерение режима EBU в дополнение к нормализации громкости EBU R 128. EBU R 128 Tech 3341. 2014.

[4] Европейское вещательное объединение. Громкость Области значений: Мера дополнения EBU R 128 Громкость Нормализация. EBU R 128 Tech 3342. 2016.

Расширенные возможности

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ MATLAB ®

.
Введенный в R2016b