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)
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

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

Веса канала по умолчанию следуют стандарту 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+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, через Вычислить систему Громкости:

    IntegratedГромкость=0.691+10log10(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+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] Международный союз электросвязи; сектор радиосвязи. Алгоритмы, чтобы измерить аудио громкость программы и истинно-пиковый уровень звука. 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