Спектрограмма Мэла
указывает параметры, использующие один или несколько S = melSpectrogram(audioIn,fs,Name,Value)Name,Value аргументы пары.
melSpectrogram(___) строит график спектрограммы на поверхности на текущем рисунке.
Используйте настройки по умолчанию для вычисления спектрограммы 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 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,size(]. Число элементов в векторе также должно быть больше audioIn,1)OverlapLength.
Типы данных: single | double
'OverlapLength' - Длина перекрытия окна анализа (образцы)round(0.02*fs) (по умолчанию) | целое число в диапазоне [0, (WindowLength - 1)]Длина перекрытия окна анализа в выборках, указанная как разделенная запятыми пара, состоящая из 'OverlapLength' и целое число в диапазоне [0, (.WindowLength - 1)]
Типы данных: single | double
'FFTLength' - Количество точек DFTWindowLength (по умолчанию) | положительное целое числоКоличество точек, используемых для вычисления DFT, указанных как разделенная запятыми пара, состоящая из 'FFTLength' и положительное целое число, большее или равное WindowLength. Если не указано, FFTLength по умолчанию: WindowLength.
Типы данных: single | double
'NumBands' - Количество полосовых фильтров32 (по умолчанию) | положительное целое числоКоличество полосовых фильтров, указанных как разделенная запятыми пара, состоящая из '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', 'area', или 'none'.
Типы данных: char | string
S - спектрограмма МэлаMel-спектрограмма, возвращаемая в виде вектора столбца, матрицы или массива 3-D. Размеры S являются L-by-M-by-N, где:
L - количество частотных ячеек в каждом спектре mel. NumBands и fs определить Л.
M - количество кадров, на которые разделен звуковой сигнал. size(, audioIn,1)WindowLength, и OverlapLength определить М.
N - количество каналов, такое, что N = size(.audioIn,2)
Конечные одиночные размеры удаляются из выходных данных S.
Типы данных: single | double
F - Центральные частоты полосовых фильтров (Гц)Центральные частоты полосовых фильтров в Гц, возвращаемые в виде вектора строки длиной size(.S,1)
Типы данных: single | double
T - Расположение каждого окна аудио (-ов)Местоположение каждого окна анализа звука в секундах, возвращаемое как длина вектора строки size(. Местоположение соответствует центру каждого окна.S,2)
Типы данных: single | double
melSpectrogram функция следует общему алгоритму для вычисления спектрограммы mel, как описано в [1].

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

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