exponenta event banner

integratedLoudness

Измерение интегрированного диапазона громкости и громкости

Описание

пример

loudness = integratedLoudness(audioIn,Fs) возвращает интегрированную громкость звукового сигнала, audioIn, с частотой выборки Fs. Стандарты ITU-R BS.1770-4 и 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входной сигнал имеет максимум пять каналов. Укажите каналы в следующем порядке: [Левый, Правый, Центральный, Левый объемный, Правый объемный].

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

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

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

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

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

Веса каналов по умолчанию соответствуют стандарту ITU-R BS.1170-4. Для использования весов каналов по умолчанию укажите каналы 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=1w∑k=1wyi2[k]

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

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

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

    mLi = 0,691 + 10 log10 (∑c=1nGc×mP (i, c)) LUFS

    • Gc - весовой коэффициент для канала с.

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

    mPi→mPj

    j = {i | mLi≥−70}

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

    Γ = 0,691 + 10log10 (∑c=1nGc×lc) − 10

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

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

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

    mPj→mPk

    k = {j | mPj≥Γ}

  6. Мгновенные сегменты мощности усредняются:

    P=1|k|∑kmPk

  7. Интегрированная громкость вычисляется путем прохождения подмножества средней мгновенной мощности P через систему вычисления громкости:

    Интегрированная громкость = 0,691 + 10log10 (∑c=1nGc×Pc) LUFS

Диапазон громкости
  1. K-взвешенные каналы, y, разделены на 3-секундные сегменты с перекрытием 2,9 секунды. Вычисляют мощность (средний квадрат) каждого сегмента K-взвешенных каналов:

    sPi=1w∑k=1wyi2[k]

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

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

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

    sLi = 0,691 + 10 log10 (∑c=1nGc×sP (i, c))

    • Gc - весовой коэффициент для канала с.

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

    sLi→sLj

    j = {i | sLi≥−70}

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

    sPj=1|j|∑j10 (sLj10)

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

    K = 20 + 10log10 (sPj)

  5. Поднабор кратковременной громкости sLj стробируется с использованием относительного порога:

    sLj→sLk

    k = {j | sLj≥K}

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

Ссылки

[1] Международный союз электросвязи; Сектор радиосвязи. Алгоритмы измерения громкости аудиопрограмм и истинно-пикового уровня звука. BS.1770-4 ITU-R. 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++ с помощью MATLAB ® Coder™

.
Представлен в R2016b