Спектрограмма Мэла
задает опции с помощью одного или нескольких 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)
Number of bandpass filters in filterbank: 32
fprintf("Number of frames in spectrogram: %d\n",numFrames)Number of frames in spectrogram: 1551
Постройте mel спектрограмму.
melSpectrogram(audioIn,fs)

Вычислите mel спектры периодических окон Hann с 2048 точками с перекрытием с 1024 точками. Преобразуйте в частотный диапазон с помощью БПФ с 4096 точками. Передайте представление частотного диапазона через 64 полуперекрытых треугольных полосовых фильтра, которые порождают линейную оболочку столбцов от 62,5 Гц до 8 кГц.
[audioIn,fs] = audioread('FunkyDrums-44p1-stereo-25secs.mp3'); S = melSpectrogram(audioIn,fs, ... 'Window',hann(2048,'periodic'), ... 'OverlapLength',1024, ... 'FFTLength',4096, ... 'NumBands',64, ... 'FrequencyRange',[62.5,8e3]);
Вызовите melSpectrogram снова, на этот раз без выходных аргументов так, чтобы можно было визуализировать mel спектрограмму. Входное аудио является многоканальным сигналом. Если вы вызываете melSpectrogram с многоканальным входом и без выходных аргументов, только построен первый канал.
melSpectrogram(audioIn,fs, ... 'Window',hann(2048,'periodic'), ... '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 имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
'WindowLength',1024'Window' — Окно применяется во временном интервалеhamming(round(fs*0.3),'periodic') (значение по умолчанию) | векторОкно, примененное во временном интервале в виде разделенной запятой пары, состоящей из 'Window' и вектор действительных чисел. Число элементов в векторе должно быть в области значений [1, размер (]. Число элементов в векторе должно также быть больше audioIn,1)OverlapLength.
Типы данных: single | double
'OverlapLength' — Окно Analysis перекрывает длину (выборки)вокруг (0.02*fs) (значение по умолчанию) | целое число в области значений [0, (WindowLength - 1)]Окно Analysis перекрывает длину в выборках в виде разделенной запятой пары, состоящей из 'OverlapLength' и целое число в области значений [0, (.WindowLength - 1)]
Типы данных: single | double
'FFTLength' — Количество точек ДПФWindowLength (значение по умолчанию) | положительное целое числоЧисло точек раньше вычисляло ДПФ в виде разделенной запятой пары, состоящей из 'FFTLength' и положительное целое число, больше, чем или равный WindowLength. Если незаданный, FFTLength значения по умолчанию к WindowLength.
Типы данных: single | double
'NumBands' — Количество mel полосовых фильтров (значение по умолчанию) | положительное целое числоКоличество 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
'WindowNormalization' — Примените нормализацию окнаtrue (значение по умолчанию) | falseПримените нормализацию окна в виде разделенной запятой пары, состоящей из 'WindowNormalization' и true или false. Когда WindowNormalization установлен в true, степень (или величина) в mel спектрограмме нормирована, чтобы удалить степень (или величина) области времени Window.
Типы данных: char | string
'FilterBankNormalization' — Тип нормализации набора фильтров'bandwidth' (значение по умолчанию) | 'area' | 'none'Тип нормализации набора фильтров в виде разделенной запятой пары, состоящей из 'FilterBankNormalization' и 'bandwidth'область, или 'none'.
Типы данных: char | string
S — Спектрограмма МэлаСпектрограмма Мэла, возвращенная как вектор-столбец, матрица или трехмерный массив. Размерности S L-by-M-by-N, где:
L является количеством интервалов частоты в каждом mel спектре. NumBands и fs определите L.
M является количеством систем координат, в которые разделен звуковой сигнал. размер (, audioIn,1)WindowLength, и OverlapLength определите M.
N является количеством каналов, таким образом что N = размер (.audioIn,2)
Запаздывающие одноэлементные размерности удалены из выхода S.
Типы данных: single | double
F — Центральные частоты mel полосовых фильтров (Гц)Центральные частоты mel полосовых фильтров в Гц, возвращенном как вектор-строка с размером длины (.S,1)
Типы данных: single | double
T — Местоположение каждого окна аудиоМестоположение каждого аналитического окна аудио в секундах, возвращенных как размер длины вектора-строки (. Местоположение соответствует центру каждого окна.S,2)
Типы данных: single | double
melSpectrogram функция следует общему алгоритму, чтобы вычислить mel спектрограмму как описано в [1].

В этом алгоритме аудиовход сначала буферизуется в системы координат numel ( количество выборок. Системы координат перекрываются Window)OverlapLength количество выборок. Заданный Window применяется к каждой системе координат, и затем система координат преобразована в представление частотного диапазона с FFTLength число точек. Представление частотного диапазона может быть или величиной или степенью, заданной SpectrumType. Если WindowNormalization установлен в true, спектр нормирован на окно. Каждая система координат представления частотного диапазона проходит через mel набор фильтров. Спектральные значения выход от mel набора фильтров суммирован, и затем каналы, конкатенированы так, чтобы каждая система координат была преобразована к NumBands- вектор-столбец элемента.
mel набор фильтров спроектирован как полуперекрытые треугольные фильтры, равномерно распределенные по шкале mel. NumBands управляет количеством mel полосовых фильтров. FrequencyRange средства управления ребра полосы первого и последнего просачиваются mel набор фильтров. FilterBankNormalization указывает, что тип нормализации применился к отдельным полосам.

WindowLength будет удален в будущем релизеИзменение поведения в будущем релизе
WindowLength параметр будет удален из melSpectrogram функция в будущем релизе. Используйте Window параметр вместо этого.
В релизах до R2020b вы могли только задать длину окна временного интервала. Окно всегда проектировалось как периодическое Окно Хэмминга. Можно заменить экземпляры кода
S = melSpectrogram(audioin,fs,'WindowLength',1024);S = melSpectrogram(audioIn,fs,'Window',hamming(1024,'periodic'));
[1] Rabiner, Лоуренс Р. и Рональд В. Шафер. Теория и приложения цифровой речевой обработки. Верхний Сэддл-Ривер, NJ: Пирсон, 2010.
audioFeatureExtractor | gtcc | mdct | mfcc | spectrogram
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.