Извлеките коэффициенты гамматона cepstral, логарифмическую энергию, дельту и дельту
задает опции с использованием одного или нескольких coeffs
= gtcc(___,Name,Value
)Name,Value
аргументы в виде пар.
[
также возвращает дельту, дельту и местоположение в выборках, соответствующих каждому окну данных.coeffs
,delta
,deltaDelta
,loc
] = gtcc(___)
Получите коэффициенты gammatone cepstral для аудио файла с помощью настроек по умолчанию. Постройте график результатов.
[audioIn,fs] = audioread('Counting-16-44p1-mono-15secs.wav'); [coeffs,~,~,loc] = gtcc(audioIn,fs); t = loc./fs; plot(t,coeffs) xlabel('Time (s)') title('Gammatone Cepstral Coefficients') legend('logE','0','1','2','3','4','5','6','7','8','9','10','11','12', ... 'Location','northeastoutside')
Чтение в аудио файла.
[audioIn,fs] = audioread('Turbine-16-44p1-mono-22secs.wav');
Вычислите 20 GTCC, используя фильтры с равными интервалами по шкале ERB между hz2erb(62.5)
и hz2erb(12000)
. Вычислите коэффициенты, используя 50 мс периодических окон Ханна с перекрытием 25 мс. Замените 0-й коэффициент логарифмической энергией. Используйте фильтрацию во временной области.
[coeffs,~,~,loc] = gtcc(audioIn,fs, ... 'NumCoeffs',20, ... 'FrequencyRange',[62.5,12000], ... 'Window',hann(round(0.05*fs),'periodic'), ... 'OverlapLength',round(0.025*fs), ... 'LogEnergy','Replace', ... 'FilterDomain','Time');
Постройте график результатов.
t = loc/fs; plot(t,coeffs) xlabel('Time (s)') title('Gammatone Cepstral Coefficients') legend('logE','1','2','3','4','5','6','7','8','9','10','11','12','13', ... '14','15','16','17','18','19','Location','northeastoutside');
Считайте в аудио файла и преобразуйте его в частотное представление.
[audioIn,fs] = audioread("Rainbow-16-8-mono-114secs.wav"); win = hann(1024,"periodic"); S = stft(audioIn,"Window",win,"OverlapLength",512,"Centered",false);
Чтобы извлечь коэффициенты gammatone cepstral, вызовите gtcc
с аудио частотным диапазоном. Игнорируйте логарифмическую энергию.
coeffs = gtcc(S,fs,"LogEnergy","Ignore");
Во многих приложениях наблюдения GTCC преобразуются в сводную статистику для использования в задачах классификации. Постройте график функции плотности вероятностей для одного из коэффициентов гамматона cepstral, чтобы наблюдать его распределения.
nbins = 60; coefficientToAnalyze = 4; гистограмма (коэффициенты (:, коэффициентToAnalyze + 1), nbins,'Normalization','pdf') заголовок (sprintf ("Coefficient %d", коэффициентToAnalyze))
audioIn
- Входной сигналВходной сигнал, заданный как вектор, матрица или трехмерный массив.
Если 'FilterDomain
'установлено на 'Frequency'
(по умолчанию), затем audioIn
может быть реальным или комплексным.
Если audioIn
является реальным, он интерпретируется как сигнал временной области и должен быть вектором-столбцом или матрицей. Столбцы матрицы обрабатываются как независимые аудиоканалы.
Если audioIn
является комплексным, интерпретируется как сигнал частотного диапазона. В этом случае audioIn
должен быть L -by- M -by- N массивом, где L - количество точек ДПФ, M - количество отдельных спектров, а N - количество отдельных каналов.
Если 'FilterDomain
'установлено на 'Time'
, затем audioIn
должен быть вещественным вектором-столбцом или матрицей. Столбцы матрицы обрабатываются как независимые аудиоканалы.
Типы данных: single
| double
Поддержка комплексного числа: Да
fs
- Частота дискретизации (Гц)Частота дискретизации входного сигнала в Гц, заданная как положительная скалярная величина.
Типы данных: single
| double
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
coeffs = gtcc(audioIn,fs,'LogEnergy','Replace')
Возвраты коэффициенты gammatone cepstral для аудио входного сигнала, дискретизированной в fs
Гц. Для каждого окна анализа первый коэффициент в coeffs
вектор заменяется на журнал энергию входного сигнала.'Window'
- Окно применяется во временном интервалеhamming(round(fs*0.3),'periodic')
(по умолчанию) | векторОкно, примененное во временном интервале, задается как разделенная разделенными запятой парами, состоящая из 'Window'
и вектор действительных чисел. Количество элементов в векторе должно быть в области значений [1, size
. Количество элементов в векторе также должно быть больше (audioIn
,1)]OverlapLength
.
Типы данных: single
| double
'OverlapLength'
- Количество проб, перекрывающихся между смежными окнамираунд (0,02 * fs
)
(по умолчанию) | неотрицательный скаляр'NumCoeffs'
- Количество возвращенных коэффициентов13
(по умолчанию) | положительное скалярное целое числоКоличество коэффициентов, возвращенных для каждого окна данных, заданное как разделенная разделенными запятой парами, состоящая из 'NumCoeffs'
и целое число в области значений [2, v]. v - количество допустимых полос пропускания. Если не задано, NumCoeffs
по умолчанию является 13
.
Количество допустимых полос пропускания определяется как количество шагов ERB (ERBN) в частотной области значений группы фильтров. Частотная область значений группы фильтров определяется FrequencyRange
.
Типы данных: single
| double
'FilterDomain'
- Область, в котором необходимо применить фильтрацию'Frequency'
(по умолчанию) | 'Time'
Область, в котором можно применить фильтрацию, заданный как разделенная разделенными запятой парами, состоящая из 'FilterDomain'
и 'Frequency'
или 'Time'
. Если не задано, FilterDomain
по умолчанию является Frequency
.
Типы данных: string
| char
'FrequencyRange'
- Частотная область значений группы гамматоновых фильтров (Гц)[50 fs
/2]
(по умолчанию) | двухэлементный вектор-строкаЧастотная область значений группы гамматоновых фильтров в Гц, заданный как разделенная разделенными запятой парами, состоящая из 'FrequencyRange'
и двухэлементный вектор-строка с увеличением значений в области значений [0, fs
/2]. Если не задано, FrequencyRange
значение по умолчанию [50,
fs
/2]
Типы данных: single
| double
'FFTLength'
- Количество интервалов в ДПФnumel (Window
)
(по умолчанию) | положительное скалярное целое числоКоличество интервалов, используемых для вычисления дискретного преобразования Фурье (DFT) оконных входных выборок. Длина БПФ должна быть больше или равной количеству элементов в Window
.
Типы данных: single
| double
'Rectification'
- Тип нелинейного выпрямления'log'
(по умолчанию) | 'cubic-root'
Тип нелинейного выпрямления, примененного до дискретного косинусного преобразования, заданный как 'log'
или 'cubic-root'
.
Типы данных: char
| string
'DeltaWindowLength'
- Количество коэффициентов, используемых для вычисления дельты и дельты9
(по умолчанию) | нечетное целое число, больше двухКоличество коэффициентов, используемых для вычисления дельты и значений дельты-дельты, заданных как разделенная разделенными запятой парами, состоящая из 'DeltaWindowLength'
и нечетное целое число, больше двух. Если не задано, DeltaWindowLength
по умолчанию является 9
.
Дельты вычисляются с помощью audioDelta
функция.
Типы данных: single
| double
'LogEnergy'
- Журнал энергопотребления'Append'
(по умолчанию) | 'Replace'
| 'Ignore'
Журнал энергопотребления, заданное как разделенная разделенными запятой парами, состоящая из 'LogEnergy'
и 'Append'
, 'Replace'
, или 'Ignore'
. Если не задано, LogEnergy
по умолчанию является 'Append'
.
'Append'
- Функция подготавливает энергию журнала к вектору коэффициентов. Длина вектора коэффициентов 1 + NumCoeffs
.
'Replace'
- Функция заменяет первый коэффициент на журнал энергию сигнала. Длина вектора коэффициентов NumCoeffs
.
'Ignore'
- Функция не вычисляет и не возвращает энергию журнала.
Типы данных: char
| string
coeffs
- Коэффициенты Гамматона cepstralКоэффициенты Gammatone cepstral, возвращенные как L -by- M матрица или L -by- M -by- N массив, где:
L - Количество окон анализа, в которых разбит аудиосигнал. Размер входа, Window
, и OverlapLength
управляйте этой размерностью: L = floor ((size
.(audioIn
1) − число (Window
))) / (numel(Window)
− OverlapLength
) + 1
M -- Количество коэффициентов, возвращаемых на систему координат. Это значение определяется NumCoeffs
и LogEnergy
.
Когда LogEnergy
установлено в:
'Append'
- Функция готовит значение энергии журнала к вектору коэффициентов. Длина вектора коэффициентов 1 + NumCoeffs
.
'Replace'
- Функция заменяет первый коэффициент на журнал энергию сигнала. Длина вектора коэффициентов NumCoeffs
.
'Ignore'
- Функция не вычисляет и не возвращает энергию журнала. Длина вектора коэффициентов NumCoeffs
.
N -- Количество каналов входа (столбцы). Это значение размера
.(audioIn
,2)
Типы данных: single
| double
delta
- Изменение коэффициентовИзменение коэффициентов из одного окна анализа в другое, возвращаемое как L матрица M или L массив -by- M -by- N. The delta
массив имеет тот же размер и тип данных, что и coeffs
массив. См. coeffs
для определений L, M и N.
Типы данных: single
| double
loc
- Расположение последней выборки в каждом окне анализаРасположение последней выборки в каждом окне анализа, возвращаемое как вектор-столбец с одинаковым числом строк, как coeffs
.
Типы данных: single
| double
gtcc
функция разделяет все данные на перекрывающиеся сегменты. Длина каждого окна анализа определяется Window
. Длина перекрытия между окнами анализа определяется OverlapLength
. Алгоритм для определения коэффициентов гамматона cepstral зависит от области фильтра, заданной как FilterDomain
. Область фильтра по умолчанию является частотой.
Коэффициенты Gammatone cepstrum являются популярными функциями, извлеченными из речевых сигналов для использования в задачах распознавания. В модели речи «источник-фильтр» кепстральные коэффициенты понимаются как представляющие фильтр (голосовой тракт). Частотная характеристика голосового тракта относительно гладкая, в то время как источник голосовой речи может быть смоделирован как импульсный train. В результате голосовой тракт может быть оценен спектральной огибающей речевого сегмента.
Мотивирующая идея гамматоновых кепстральных коэффициентов состоит в том, чтобы сжать информацию о голосовом тракте (сглаженном спектре) в небольшое количество коэффициентов, основанных на понимании улитки. Несмотря на отсутствие жесткого стандарта для вычисления коэффициентов, основные шаги описаны схемой.
Группа гамматоновых фильтров по умолчанию состоит из гамматоновых фильтров, расположенных линейно по шкале ERB между 50 и 8000 Гц. Банк фильтров разработан designAuditoryFilterBank
.
Информация, содержащаяся в коэффициенте zeroth gammatone cepstral, часто увеличивается на или заменяется энергией журнала. Вычисление журнала энергии зависит от области входа.
Если вход является сигналом временной области, энергия журнала вычисляется с помощью следующего уравнения:
Если вход является частотным диапазоном сигналом, энергия журнала вычисляется с помощью следующего уравнения:
Если FilterDomain
задается как 'Time'
, gtcc
функция использует gammatoneFilterBank
для применения фильтрации во временной области. Основные шаги gtcc
алгоритм обрисован схемой.
The FrequencyRange
и частота дискретизации (fs
) параметры устанавливаются на банке фильтров с помощью пар "имя-значение", вводимых в gtcc
функция. Количество фильтров в группе гамматоновых фильтров определяется как
.Это примерно соответствует помещению гамматонового фильтра через каждые 0,9 мм в улитку.hz2erb
(FrequencyRange
(2)) − hz2erb
(FrequencyRange
(1))
Выход от группы гамматоновых фильтров является многоканальным сигналом. Каждый выход из группы гамматоновых фильтров, буферизируется в перекрывающиеся окна анализа, как задано Window
и OverlapLength
параметры. Вычисляется энергия для каждого окна анализа данных. STE каналов объединены. Затем конкатенированный сигнал передается через логарифмическую функцию и преобразуется в кепстральную область с помощью дискретного косинусоидного преобразования (DCT).
Логарифмическая энергия вычисляется на исходном аудиосигнале с помощью той же схемы буферизации, применяемой к выходу банка гамматоновых фильтров.
Поведение изменено в R2020b
Расчеты дельта-дельта и дельта-дельта теперь вычисляются с помощью audioDelta
функция, которая имеет другое поведение при запуске, чем предыдущий алгоритм. Значение по умолчанию DeltaWindowLength
параметр изменился с 2
на 9
. Длина дельта-окна 2
больше не поддерживается.
WindowLength
будет удалено в следующем релизеИзменение поведения в будущем релизе
The WindowLength
параметр будет удален из gtcc
функция в будущем релизе. Используйте Window
вместо этого параметр.
В релизах до R2020b можно было задать только длину окна временной области. Окно всегда проектировалось как периодическое окно Хэмминга. Можно заменить образцы кода
coeffs = gtcc(audioin,fs,'WindowLength',1024);
coeffs = gtcc(audioIn,fs,'Window',hamming(1024,'periodic'));
[1] Shao, Yang, Zhaozhang Jin, Deliang Wang и Soundarajan Srinivasan. «Звуковая функция для робастного распознавания речи». Международная конференция IEEE по акустике, речи и обработке сигналов. 2009.
[2] Valero, X., and F. Alias. Gammatone Cepstral Coefficients: Biological Inspired Features for Non-Speech Audio Classification (неречевая аудио классификация). Транзакции IEEE на мультимедиа. Том 14, Выпуск 6, 2012, стр. 1684-1689.
audioDelta
| audioFeatureExtractor
| Cepstral Feature Extractor | cepstralCoefficients
| detectSpeech
| mfcc
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.