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