Спектрограмма Меля
задает опции с использованием одного или нескольких S = melSpectrogram(audioIn,fs,Name,Value)Name,Value аргументы в виде пар.
melSpectrogram(___) строит графики mel spectrogram на поверхности на текущей фигуре.
Используйте настройки по умолчанию, чтобы вычислить mel spectrogram для всего аудио файла. Напечатайте количество полосно-пропускающих фильтров в группе фильтров и количество систем координат в спектрограмме 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 spectrogram.
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 spectrogram. Аудио входа является многоканальным сигналом. Если вы звоните melSpectrogram с многоканальным входом и без выходных аргументов строится график только для первого канала.
melSpectrogram(audioIn,fs, ... 'Window',hann(2048,'periodic'), ... 'OverlapLength',1024, ... 'FFTLength',4096, ... 'NumBands',64, ... 'FrequencyRange',[62.5,8e3])

melSpectrogram применяет банк фильтров частотного диапазона к аудиосигналам, которые окрашены во времени. Можно получить центральные частоты фильтров и моменты времени, соответствующие окнам анализа, в качестве второго и третьего выходных аргументов от melSpectrogram.
Получите спектрограмму mel, частоты центра банка фильтрации и время окна анализа многоканального аудиосигнала. Используйте центральные частоты и моменты времени, чтобы построить график mel spectrogram для каждого канала.
[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' - Длина перекрытия окна анализа ( выборок)раунд (0,02 * fs) (по умолчанию) | целое число в области значений [0, (WindowLength - 1)]Длина перекрытия окна анализа в выборках, заданная как разделенная разделенными запятой парами, состоящая из 'OverlapLength' и целое число в области значений [0, (.WindowLength - 1)]
Типы данных: single | double
'FFTLength' - Количество точек ДПФWindowLength (по умолчанию) | положительное целое числоЧисло точек, используемых для вычисления ДПФ, заданное как разделенная разделенными запятой парами, состоящая из 'FFTLength' и положительное целое число, больше или равное WindowLength. Если не задано, FFTLength по умолчанию является WindowLength.
Типы данных: single | double
'NumBands' - Количество мел полосно-пропускающих фильтров32 (по умолчанию) | положительное целое числоКоличество mel полосно-пропускающих фильтров, заданное как разделенная разделенными запятой парами, состоящая из 'NumBands' и положительное целое число.
Типы данных: single | double
'FrequencyRange' - Частотная область значений, в котором можно вычислить mel spectrogram (Гц)[0 <reservedrangesplaceholder0>/2] (по умолчанию) | двухэлементный вектор-строкаЧастотная область значений, в котором можно вычислить mel spectrogram в Гц, заданный как разделенная разделенными запятой парами, состоящая из 'FrequencyRange' и двухэлементный вектор-строка монотонно увеличивающихся значений в область значений [0, . fs/2]
Типы данных: single | double
'SpectrumType' - Тип mel spectrogram'power' (по умолчанию) | 'magnitude'Тип mel spectrogram, заданный как разделенная разделенными запятой парами, состоящая из '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 spectrogramСпектрограмма Меля, возвращенная как вектор-столбец, матрица или трехмерный массив. Размерности S L -by- M -by- N, где:
L - количество интервалов частоты в каждом спектре mel. NumBands и fs определите L.
M - количество систем координат, в которые разбит аудиосигнал. размер , (audioIn,1)WindowLength, и OverlapLength определите M.
N - количество каналов, таких что N = size .(audioIn,2)
Конечные размеры синглтона удаляются из выхода S.
Типы данных: single | double
F - Центральные частоты мел полосно-пропускающих фильтров (Гц)Центральные частоты mel полосно-пропускающих фильтров в Гц, возвращенные как вектор-строка с размером длины .(S,1)
Типы данных: single | double
T - Расположение каждого окна аудио (-ов)Расположение каждого окна анализа аудио в секундах, возвращаемое как вектор-строка размер длины . Расположение соответствует центру каждого окна.(S,2)
Типы данных: single | double
melSpectrogram функция следует общему алгоритму для вычисления mel spectrogram, как описано в [1].

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

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