Извлеките 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)
. Вычислите коэффициенты с помощью 50 MS Windows с перекрытием на 25 мс. Замените 0th коэффициент на логарифмическую энергию. Используйте фильтрацию временного интервала.
[coeffs,~,~,loc] = gtcc(audioIn,fs, ... 'NumCoeffs',20, ... 'FrequencyRange',[62.5,12000], ... 'WindowLength',round(0.05*fs), ... '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; for i = 1:size(coeffs,2) figure histogram(coeffs(:,i),nbins,'Normalization','pdf') title(sprintf("Coefficient %d",i-1)) end
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
вектор заменяется логарифмической энергией входного сигнала.'WindowLength'
— Количество выборок в аналитическом окневокруг (0.03*fs
)
(значение по умолчанию) | положительное скалярное целое число'OverlapLength'
— Количество выборок перекрывается между смежными окнамивокруг (0.02*fs
)
(значение по умолчанию) | неотрицательный скалярКоличество выборок, перекрытых между смежными окнами в виде разделенной запятой пары, состоящей из 'OverlapLength'
и целое число в области значений [0, WindowLength
). Если незаданный, OverlapLength
значения по умолчанию к раунду (0.02*
.fs
)
Типы данных: single
| double
'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'
— Количество интервалов в ДПФWindowLength
(значение по умолчанию) | положительное скалярное целое числоКоличество интервалов раньше вычисляло ДПФ оконных входных выборок в виде разделенной запятой пары, состоящей из 'FFTLength'
и положительное скалярное целое число. Если незаданный, FFTLength
значения по умолчанию к WindowLength
.
Типы данных: single
| double
'Rectification'
— Тип нелинейного исправления'log'
(значение по умолчанию) | 'cubic-root'
Тип нелинейного исправления, примененного до дискретного косинусного преобразования в виде 'log'
или 'cubic-root'
.
Типы данных: char |
string
'DeltaWindowLength'
— Количество коэффициентов раньше вычисляло дельту и дельту дельты
(значение по умолчанию) | нечетное целое число, больше, чем дваКоличество коэффициентов раньше вычисляло дельту и значения дельты дельты в виде разделенной запятой пары, состоящей из 'DeltaWindowLength'
и два или нечетное целое число, больше, чем два. Если незаданный, DeltaWindowLength
значения по умолчанию к 2
.
Если DeltaWindowLength
установлен в 2
, delta
дан различием между текущими коэффициентами и предыдущими коэффициентами.
Если DeltaWindowLength
установлен в нечетное целое число, больше, чем 2
, следующее уравнение задает их значения:
Функция использует приближение наименьших квадратов локального наклона по области вокруг коэффициентов текущего аналитического окна. Дельта cepstral значения вычисляется путем подбора кривой cepstral коэффициентам соседних аналитических окон (аналитические окна M перед текущим аналитическим окном и аналитическими окнами M после текущего аналитического окна) к прямой линии. Для получения дополнительной информации см. [3].
Типы данных: 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 Количество аналитических окон звуковой сигнал разделено в. Входной размер, WindowLength
, и OverlapLength
управляйте этой размерностью: L = пол ((размер (
.audioIn
, 1) − WindowLength
)) / (WindowLength
− 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.
Функция использует приближение наименьших квадратов локального наклона по области вокруг выборки текущего времени. Для получения дополнительной информации см. [3].
Типы данных: single
| double
deltaDelta
— Изменитесь в значениях дельтыИзменитесь в delta
значения, возвращенные как L-by-M матрица или L-by-M-by-N массив. deltaDelta
массив одного размера и тип данных с coeffs
и delta
массивы. Смотрите coeffs
для определений L, M и N.
Функция использует приближение наименьших квадратов локального наклона по области вокруг выборки текущего времени. Для получения дополнительной информации см. [3].
Типы данных: single
| double
loc
— Местоположение последней выборки в каждом аналитическом окнеМестоположение последней выборки в каждом аналитическом окне, возвращенном как вектор-столбец с одинаковым числом строк как coeffs
.
Типы данных: single
| double
gtcc
функционируйте разделяет целые данные в перекрывающиеся сегменты. Длина каждого аналитического окна определяется WindowLength
. Длина перекрытия между аналитическими окнами определяется OverlapLength
. Алгоритм, чтобы определить gammatone cepstral коэффициенты зависит от области фильтра, заданной FilterDomain
. Область фильтра по умолчанию является частотой.
gtcc
вычисляет gammatone cepstral коэффициенты, логарифмическая энергетическая ценность, дельта и значения дельты дельты для каждого аналитического окна согласно алгоритму, описанному в cepstralFeatureExtractor
.
Если FilterDomain
задан как 'Time'
, gtcc
функционируйте использует gammatoneFilterBank
применять фильтрацию временного интервала. Основные шаги gtcc
алгоритм обрисован в общих чертах схемой.
FrequencyRange
и частота дискретизации (fs
) параметры устанавливаются на наборе фильтров с помощью входа пар "имя-значение" для gtcc
функция. Количество просачивается, gammatone набор фильтров задан как
.This примерно соответствует размещению фильтра gammatone каждые 0,9 мм в улитке уха.hz2erb
(FrequencyRange
(2)) − hz2erb
(FrequencyRange
(1))
Выход от gammatone набора фильтров является многоканальным сигналом. Каждый канал выход от gammatone набора фильтров буферизуется в перекрытые аналитические окна, как задано WindowLength
и OverlapLength
. Затем периодическое Окно Хэмминга применяется к каждому аналитическому окну. Энергия для каждого аналитического окна данных вычисляется. STE каналов конкатенирована. Конкатенированный сигнал затем передается через функцию логарифма и преобразовывается к cepstral области с помощью дискретного косинусного преобразования (DCT).
Логарифмическая энергия вычисляется на исходный звуковой сигнал с помощью той же схемы буферизации, применился к gammatone набору фильтров выход.
[1] Шао, ян, Чжаочжан Цзинь, Дэлян Ван и Сундарарэджэн Сринивасан. "Слуховая функция устойчивого распознавания речи". Международная конференция IEEE по вопросам акустики, речи и обработки сигналов. 2009.
[2] Валеро, X., и F. Псевдоним. "Коэффициенты Gammatone Cepstral: Биологически Вдохновленные Функции Неречевой Классификации Аудио". Транзакции IEEE на Мультимедиа. Издание 14, Выпуск 6, 2012, стр 1684–1689.
[3] Rabiner, Лоуренс Р. и Рональд В. Шафер. Теория и приложения цифровой речевой обработки. Верхний Сэддл-Ривер, NJ: Пирсон, 2010.
cepstralFeatureExtractor
| mfcc
| pitch
| voiceActivityDetector
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.