Спектрограмма Мэла
S = melSpectrogram(audioIn,fs)S = melSpectrogram(audioIn,fs,Name,Value)[S,F,T] = melSpectrogram(___)melSpectrogram(___) задает опции с помощью одного или нескольких аргументов пары S = melSpectrogram(audioIn,fs,Name,Value)Name,Value.
melSpectrogram(___) строит mel спектрограмму на поверхности в текущей фигуре.
Используйте настройки по умолчанию, чтобы вычислить mel спектрограмму для целого звукового файла. Распечатайте количество полосовых фильтров в наборе фильтров и количество кадров в mel спектрограмме.
[audioIn,fs] = audioread('Counting-16-44p1-mono-15secs.wav'); S = melSpectrogram(audioIn,fs); [numBands,numFrames] = size(S); fprintf("Number of bandpass filters in filterbank: %d\n",numBands) fprintf("Number of frames in spectrogram: %d\n",numFrames)
Number of bandpass filters in filterbank: 32 Number of frames in spectrogram: 1551
Постройте mel спектрограмму.
melSpectrogram(audioIn,fs)

Вычислите mel спектры окон с 2048 точками с перекрытием с 1024 точками. Преобразуйте в частотный диапазон с помощью БПФ с 4096 точками. Передайте представление частотного диапазона через 64 полуперекрытых треугольных полосовых фильтра, которые порождают линейную оболочку столбцов от 62,5 Гц до 8 кГц.
[audioIn,fs] = audioread('FunkyDrums-44p1-stereo-25secs.mp3'); S = melSpectrogram(audioIn,fs, ... 'WindowLength',2048,... 'OverlapLength',1024, ... 'FFTLength',4096, ... 'NumBands',64, ... 'FrequencyRange',[62.5,8e3]);
Вызовите melSpectrogram снова, на этот раз без выходных аргументов так, чтобы можно было визуализировать mel спектрограмму. Входное аудио является многоканальным сигналом. Если вы вызываете melSpectrogram с многоканальным входом и без выходных аргументов, только первый канал построен.
melSpectrogram(audioIn,fs, ... 'WindowLength',2048,... 'OverlapLength',1024, ... 'FFTLength',4096, ... 'NumBands',64, ... 'FrequencyRange',[62.5,8e3])

melSpectrogram применяет набор фильтров частотного диапазона к звуковым сигналам, которые являются оконными вовремя. Можно получить центральные частоты фильтров и моменты времени, соответствуя аналитическим окнам как вторым и третьим выходным аргументам от melSpectrogram.
Получите mel спектрограмму, частоты центра набора фильтров, и аналитические моменты времени окна многоканального звукового сигнала. Используйте центральные частоты и моменты времени, чтобы построить mel спектрограмму для каждого канала.
[audioIn,fs] = audioread('AudioArray-16-16-4channels-20secs.wav'); [S,cF,t] = melSpectrogram(audioIn,fs); S = 10*log10(S+eps); % Convert to dB for plotting for i = 1:size(S,3) figure(i) surf(t,cF,S(:,:,i),'EdgeColor','none'); xlabel('Time (s)') ylabel('Frequency (Hz)') view([0,90]) title(sprintf('Channel %d',i)) axis([t(1) t(end) cF(1) cF(end)]) end




audioIn — АудиовходАудиовход, заданный как вектор-столбец или матрица. Если задано как матрица, функция обрабатывает столбцы как независимые звуковые каналы.
Типы данных: single | double
fs — Введите частоту дискретизации (Гц)Введите частоту дискретизации в Гц, заданном как положительная скалярная величина.
Типы данных: single | double
Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
'WindowLength',1024'WindowLength' — Analysis (выборки)round(0.03*fs) (значение по умолчанию) | целое число в области значений [2, size(audioIn,1)]Длина окна Analysis в выборках, заданных как пара, разделенная запятой, состоящая из 'WindowLength' и целого числа в области значений .[2, size(audioIn,1)]
Типы данных: single | double
'OverlapLength' — Analysis перекрывает длину (выборки)round(0.02*fs) (значение по умолчанию) | целое число в области значений [0, (WindowLength - 1)]Окно Analysis перекрывает длину в выборках, заданных как пара, разделенная запятой, состоящая из 'OverlapLength' и целого числа в области значений .[0, (WindowLength - 1)]
Типы данных: single | double
'FFTLength' — Количество точек ДПФWindowLength (значение по умолчанию) | положительное целое числоЧисло точек раньше вычисляло ДПФ, заданного как пара, разделенная запятой, состоящая из 'FFTLength' и положительного целого числа, больше, чем или равный WindowLength. Если незаданный, значения по умолчанию FFTLength к WindowLength.
Типы данных: single | double
'NumBands' — Количество mel полосовых фильтров32 (значение по умолчанию) | положительное целое числоКоличество mel полосовых фильтров, заданных как пара, разделенная запятой, состоящая из 'NumBands' и положительного целого числа.
Типы данных: single | double
'FrequencyRange' — Частотный диапазон, по которому можно вычислить mel спектрограмму (Гц)[0 fs/2] (значение по умолчанию) | двухэлементный вектор - строкаЧастотный диапазон, по которому можно вычислить mel спектрограмму в Гц, заданном как пара, разделенная запятой, состоящая из 'FrequencyRange' и двухэлементный вектор - строка из монотонно увеличения значений в области значений . [0, fs/2]
Типы данных: single | double
'SpectrumType' — Тип mel спектрограммы'power' (значение по умолчанию) | 'magnitude'Тип mel спектрограммы, заданной как пара, разделенная запятой, состоящая из 'SpectrumType' и 'power' или 'magnitude'.
Типы данных: char | string
S Спектрограмма МэлаСпектрограмма Мэла, возвращенная как вектор-столбец, матрица или трехмерный массив. Размерностями S является L-by-M-by-N, где:
L является количеством интервалов частоты в каждом mel спектре. NumBands и fs определяют L.
M является количеством кадров, в которые разделен звуковой сигнал. , size(audioIn,1)WindowLength и OverlapLength определяют M.
N является количеством каналов, таким образом что N = .size(audioIn,2)
Запаздывающие одноэлементные размерности удалены из вывода S.
Типы данных: single | double
F Центральные частоты mel полосовых фильтров (Гц)Центральные частоты mel полосовых фильтров в Гц, возвращенном как вектор - строка с длиной .size(S,1)
Типы данных: single | double
T Местоположение каждого окна аудиоМестоположение каждого аналитического окна аудио в секундах, возвращенных как длина вектора - строки . Местоположение соответствует центру каждого окна.size(S,2)
Типы данных: single | double
Функция melSpectrogram следует общему алгоритму, чтобы вычислить mel спектрограмму, как описано в [1].

В этом алгоритме аудиовход сначала буферизуется в кадры количества WindowLength выборок. Кадры перекрываются количеством OverlapLength выборок. Периодическое окно hamming применяется к каждому кадру, и затем кадр преобразован в представление частотного диапазона с числом точек FFTLength. Представление частотного диапазона может быть или значением или степенью, заданной SpectrumType. Каждый кадр представления частотного диапазона проходит через mel набор фильтров. Спектральные значения вывод от mel набора фильтров суммирован, и затем каналы, конкатенированы так, чтобы каждый кадр был преобразован к NumBands - вектор-столбец элемента.
mel набор фильтров разработан как полуперекрытые треугольные фильтры, равномерно распределенные в шкале mel. NumBands управляет количеством mel полосовых фильтров. средства управления FrequencyRange ребра полосы первого и последнего просачиваются mel набор фильтров. Фильтры нормированы их пропускной способностью, так, чтобы, если белый шум вводится к системе, каждый фильтр вывел равную сумму энергии.

[1] Rabiner, Лоуренс Р. и Рональд В. Шафер. Теория и приложения цифровой речевой обработки. Верхний Сэддл-Ривер, NJ: Пирсон, 2010.
gtcc | mdct | mfcc | spectrogram
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.