Извлеките gammatone 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)
. Вычислите коэффициенты с помощью периодических окон Hann на 50 мс с перекрытием на 25 мс. Замените 0th коэффициент на логарифмическую энергию. Используйте фильтрацию временного интервала.
[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 преобразованы в итоговую статистику для использования в задачах классификации. Постройте функцию плотности вероятности для одного из gammatone cepstral коэффициенты, чтобы наблюдать ее распределения.
nbins = 60; coefficientToAnalyze = 4; гистограмма (coefs (: coefficientToAnalyze+1), nbins,'Normalization','pdf') заголовок (sprintf ("Coefficient %d", coefficientToAnalyze))
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, размер (
. Число элементов в векторе должно также быть больше audioIn
,1)]OverlapLength
.
Типы данных: single
| double
'OverlapLength'
— Количество выборок перекрывается между смежными окнамивокруг (0.02*fs
)
(значение по умолчанию) | неотрицательный скаляр'NumCoeffs'
— Количество коэффициентов возвращено
(значение по умолчанию) | положительное скалярное целое числоКоличество коэффициентов, возвращенных для каждого окна данных в виде разделенной запятой пары, состоящей из 'NumCoeffs'
и целое число в области значений [2, v]. v является количеством допустимых полос пропускания. Если незаданный, NumCoeffs
значения по умолчанию к 13
.
Количество допустимых полос пропускания задано как количество шагов ERB (ERBN) в частотном диапазоне набора фильтров. Частотный диапазон набора фильтров задан FrequencyRange
.
Типы данных: single
| double
'FilterDomain'
— Область, в которой можно применить фильтрацию'Frequency'
(значение по умолчанию) | 'Time'
Область, в которой можно применить фильтрацию в виде разделенной запятой пары, состоящей из 'FilterDomain'
и 'Frequency'
или 'Time'
. Если незаданный, FilterDomain
значения по умолчанию к Frequency
.
Типы данных: string
| char
'FrequencyRange'
— Частотный диапазон gammatone набора фильтров (Гц)[50 fs
/2]
(значение по умолчанию) | двухэлементный вектор-строкаЧастотный диапазон gammatone набора фильтров в Гц в виде разделенной запятой пары, состоящей из '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'
— Количество коэффициентов раньше вычисляло дельту и дельту дельты
(значение по умолчанию) | нечетное целое число, больше, чем дваКоличество коэффициентов раньше вычисляло дельту и значения дельты дельты в виде разделенной запятой пары, состоящей из 'DeltaWindowLength'
и нечетное целое число, больше, чем два. Если незаданный, DeltaWindowLength
значения по умолчанию к 9
.
Дельты вычисляются с помощью audioDelta
функция.
Типы данных: single
| double
'LogEnergy'
— Регистрируйте энергетическое использование'Append'
(значение по умолчанию) | 'Replace'
| 'Ignore'
Регистрируйте энергетическое использование в виде разделенной запятой пары, состоящей из 'LogEnergy'
и 'Append'
замена
, или 'Ignore'
. Если незаданный, LogEnergy
значения по умолчанию к 'Append'
.
'Append'
– Функция предварительно ожидает логарифмическую энергию к содействующему вектору. Длина содействующего вектора равняется 1 + NumCoeffs
.
'Replace'
– Функция заменяет первый коэффициент на логарифмическую энергию сигнала. Длиной содействующего вектора является NumCoeffs
.
'Ignore'
– Функция не вычисляет или возвращает логарифмическую энергию.
Типы данных: char |
string
coeffs
— Коэффициенты Gammatone cepstralКоэффициенты Gammatone cepstral, возвращенные как L-by-M матрица или L-by-M-by-N массив, где:
L Количество аналитических окон звуковой сигнал разделено в. Входной размер, Window
, и OverlapLength
управляйте этой размерностью: L = пол ((размер (
.audioIn
, 1) − numel (Window
))) / (numel(Window)
− OverlapLength
) + 1
M Количество коэффициентов возвращено на систему координат. Это значение определяется NumCoeffs
и LogEnergy
.
Когда LogEnergy
установлен в:
'Append'
– Функция предварительно ожидает логарифмическую энергетическую ценность к содействующему вектору. Длина содействующего вектора равняется 1 + NumCoeffs
.
'Replace'
– Функция заменяет первый коэффициент на логарифмическую энергию сигнала. Длиной содействующего вектора является NumCoeffs
.
'Ignore'
– Функция не вычисляет или возвращает логарифмическую энергию. Длиной содействующего вектора является NumCoeffs
.
N Количество входных каналов (столбцы). Это значение является размером (
.audioIn
,2)
Типы данных: single
| double
delta
— Изменитесь в коэффициентахИзменитесь в коэффициентах от одного аналитического окна до другого, возвращенного как L-by-M матрица или L-by-M-by-N массив. delta
массив одного размера и тип данных с coeffs
массив. Смотрите coeffs
для определений L, M и N.
Типы данных: single
| double
loc
— Местоположение последней выборки в каждом аналитическом окнеМестоположение последней выборки в каждом аналитическом окне, возвращенном как вектор-столбец с одинаковым числом строк как coeffs
.
Типы данных: single
| double
gtcc
функционируйте разделяет целые данные в перекрывающиеся сегменты. Длина каждого аналитического окна определяется Window
. Длина перекрытия между аналитическими окнами определяется OverlapLength
. Алгоритм, чтобы определить gammatone cepstral коэффициенты зависит от области фильтра, заданной FilterDomain
. Область фильтра по умолчанию является частотой.
Коэффициенты кепстра Gammatone являются популярными функциями, извлеченными из речевых сигналов для использования в задачах распознавания. В модели фильтра источника речи, cepstral коэффициенты, как изучают, представляют фильтр (речевой тракт). Частотная характеристика речевого тракта относительно является гладкой, тогда как источник речевой речи может быть смоделирован, когда импульс обучается. В результате речевой тракт может быть оценен спектральным конвертом речевого сегмента.
Идея мотивации gammatone cepstral коэффициенты состоит в том, чтобы сжать информацию о речевом тракте (сглаживавший спектр) в небольшое количество коэффициентов на основе понимания улитки уха. Несмотря на то, что нет никакого твердого стандарта для вычисления коэффициентов, основные шаги обрисованы в общих чертах схемой.
Значение по умолчанию gammatone набор фильтров состоит из фильтров gammatone, расположенных с интервалами линейно по шкале ERB между 50 и 8 000 Гц. Набор фильтров спроектирован designAuditoryFilterBank
.
Информация, содержавшаяся в нулевом gammatone cepstral коэффициент, часто увеличивается с или заменяется логарифмической энергией. Логарифмическое энергетическое вычисление зависит от входной области.
Если вход является сигналом временной области, логарифмическая энергия вычисляется с помощью следующего уравнения:
Если вход является сигналом частотного диапазона, логарифмическая энергия вычисляется с помощью следующего уравнения:
Если FilterDomain
задан как 'Time'
, gtcc
функционируйте использует gammatoneFilterBank
применять фильтрацию временного интервала. Основные шаги gtcc
алгоритм обрисован в общих чертах схемой.
FrequencyRange
и частота дискретизации (fs
) параметры устанавливаются на наборе фильтров с помощью входа пар "имя-значение" для gtcc
функция. Количество просачивается, gammatone набор фильтров задан как
.This примерно соответствует размещению фильтра gammatone каждые 0,9 мм в улитке уха.hz2erb
(FrequencyRange
(2)) − hz2erb
(FrequencyRange
(1))
Выход от gammatone набора фильтров является многоканальным сигналом. Каждый канал выход от gammatone набора фильтров буферизуется в перекрытые аналитические окна, как задано Window
и OverlapLength
параметры. Энергия для каждого аналитического окна данных вычисляется. STE каналов конкатенирована. Конкатенированный сигнал затем передается через функцию логарифма и преобразовывается к cepstral области с помощью дискретного косинусного преобразования (DCT).
Логарифмическая энергия вычисляется на исходный звуковой сигнал с помощью той же схемы буферизации, применился к gammatone набору фильтров выход.
Поведение изменяется в R2020b
Вычисления дельты и дельты дельты теперь вычисляются с помощью audioDelta
функция, которая имеет различное поведение запуска, чем предыдущий алгоритм. Значение по умолчанию DeltaWindowLength
параметр изменился от 2
к 9
. Длина окна дельты 2
больше не поддерживается.
WindowLength
будет удален в будущем релизеИзменение поведения в будущем релизе
WindowLength
параметр будет удален из gtcc
функция в будущем релизе. Используйте Window
параметр вместо этого.
В релизах до R2020b вы могли только задать длину окна временного интервала. Окно всегда проектировалось как периодическое Окно Хэмминга. Можно заменить экземпляры кода
coeffs = gtcc(audioin,fs,'WindowLength',1024);
coeffs = gtcc(audioIn,fs,'Window',hamming(1024,'periodic'));
[1] Шао, ян, Чжаочжан Цзинь, Дэлян Ван и Сундарарэджэн Сринивасан. "Слуховая функция устойчивого распознавания речи". Международная конференция IEEE по вопросам акустики, речи и обработки сигналов. 2009.
[2] Валеро, X., и F. Псевдоним. "Коэффициенты Gammatone Cepstral: Биологически Вдохновленные Функции Неречевой Классификации Аудио". Транзакции IEEE на Мультимедиа. Издание 14, Выпуск 6, 2012, стр 1684–1689.
audioDelta
| audioFeatureExtractor
| Cepstral Feature Extractor | cepstralCoefficients
| detectSpeech
| mfcc
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.