integratedLoudness

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

Синтаксис

loudness = integratedLoudness(audioIn,Fs)
loudness = integratedLoudness(audioIn,Fs,channelWeights)
[loudness,loudnessRange] = 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 3 342 стандарта задает вычисление области значений громкости.

Примеры

свернуть все

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

Создайте 2D вторую синусоиду с амплитудой на 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)

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

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

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

standardLoudness    = integratedLoudness(signal,fs,weightingVector)
nonStandardLoudness = integratedLoudness(signal,fs)

Читайте в звуковом сигнале. Отсеките 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);

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

свернуть все

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

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

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

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

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

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

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

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

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

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

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

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

свернуть все

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

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

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

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

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

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

Алгоритмы

свернуть все

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

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

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

Интегрированная громкость

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

    mPi=1wk=1wyi2[k]

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

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

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

    mLi=0.691+10 журнал10(c=1nGc×mP(i,c))LUFS

    • Gc является взвешиванием для канала c.

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

    mPimPj

    j={i|mLi70 }

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

    Γ=0.691+10журнал10(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, через Вычислить систему Громкости:

    Интегрированная    Громкость   =0.691+10журнал10(c=1nGc×Pc)LUFS

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

  1. Каналы K-weighted, y, разделены на 3-секундные сегменты с 2,9 вторыми перекрытиями. Степень (среднее квадратичное) каждого сегмента каналов K-weighted вычисляется:

    sPi=1wk=1wyi2[k]

    • sPi является краткосрочной степенью i th сегмент канала.

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

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

    sLi=0.691+10 журнал10(c=1nGc×sP(i,c))

    • Gc является взвешиванием для канала c.

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

    sLisLj

    j={i|sLi70 }

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

    sPj=1|j|j10(sLj10)

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

    K=20+10журнал10(sPj)

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

    sLjsLk

    k={j|sLjK}

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

Ссылки

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

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

[3] Европейский вещательный союз. Измерение громкости: 'Режим EBU', измеряющий, чтобы добавить нормализацию EBU R 128 громкости. Технология EBU R 128 3341. 2014.

[4] Европейский вещательный союз. Область значений громкости: мера, чтобы добавить нормализацию EBU R 128 громкости. Технология EBU R 128 3342. 2016.

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

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

Смотрите также

Системные объекты

Блоки

Введенный в R2017b