Спектрограмма Мэла
S = melSpectrogram(audioIn,fs)
S = melSpectrogram(audioIn,fs,Name,Value)
[S,F,T] = melSpectrogram(___)
melSpectrogram(___)
задает опции с помощью одного или нескольких аргументов пары 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) fprintf("Number of frames in spectrogram: %d\n",numFrames)
Number of bandpass filters in filterbank: 32 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
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
'WindowLength',1024
'WindowLength'
— Analysis (выборки)round(0.03*fs)
(значение по умолчанию) | целое число в области значений [2, size(audioIn,1)]
Длина окна Analysis в выборках, заданных как пара, разделенная запятой, состоящая из 'WindowLength'
и целого числа в области значений
.[2, size(audioIn,1)]
Типы данных: single | double
'OverlapLength'
— Analysis перекрывает длину (выборки)round(0.02*fs)
(значение по умолчанию) | целое число в области значений [0, (WindowLength - 1)]
Окно Analysis перекрывает длину в выборках, заданных как пара, разделенная запятой, состоящая из 'OverlapLength'
и целого числа в области значений
.[0, (WindowLength - 1)]
Типы данных: single | double
'FFTLength'
— Количество точек ДПФWindowLength
(значение по умолчанию) | положительное целое числоЧисло точек раньше вычисляло ДПФ, заданного как пара, разделенная запятой, состоящая из 'FFTLength'
и положительного целого числа, больше, чем или равный WindowLength
. Если незаданный, значения по умолчанию FFTLength
к WindowLength
.
Типы данных: single | double
'NumBands'
— Количество mel полосовых фильтров32
(значение по умолчанию) | положительное целое числоКоличество 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 является количеством кадров, в которые разделен звуковой сигнал.
, size(audioIn,1)
WindowLength
и OverlapLength
определяют M.
N является количеством каналов, таким образом что N =
.size(audioIn,2)
Запаздывающие одноэлементные размерности удалены из вывода S
.
Типы данных: single | double
F
Центральные частоты mel полосовых фильтров (Гц)Центральные частоты mel полосовых фильтров в Гц, возвращенном как вектор - строка с длиной
.size(S,1)
Типы данных: single | double
T
Местоположение каждого окна аудиоМестоположение каждого аналитического окна аудио в секундах, возвращенных как длина вектора - строки
. Местоположение соответствует центру каждого окна.size(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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.