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