Спектрограмма Мэла
задает опции с помощью одного или нескольких 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 спектры окон с 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 имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
'WindowLength',1024'WindowLength' — Длина окна Analysis (выборки)вокруг (0.03*fs) (значение по умолчанию) | целое число в области значений [2, размер (audioIn,1)]Длина окна Analysis в выборках, заданных как разделенная запятой пара, состоящая из 'WindowLength' и целое число в области значений [2, размер (.audioIn,1)]
Типы данных: 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
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].

В этом алгоритме аудиовход сначала буферизуется в системы координат 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.