gtcc

Извлеките gammatone cepstral коэффициенты, логарифмическая энергия, дельта и дельта дельты

Синтаксис

coeffs = gtcc(audioIn,fs)
coeffs = gtcc(___,Name,Value)
[coeffs,delta,deltaDelta,loc] = gtcc(___)

Описание

пример

coeffs = gtcc(audioIn,fs) возвращает gammatone cepstral коэффициенты (GTCCs) для аудиовхода, выбранного на частоте Гц fs.

пример

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');

Входные параметры

свернуть все

Входной сигнал, заданный как вектор или матрица. Если задано как матрица, gtcc обрабатывает столбцы матрицы как отдельные звуковые каналы.

Типы данных: single | double

Частота дискретизации входного сигнала в Гц, заданном как положительная скалярная величина.

Типы данных: single | double

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: coeffs = gtcc(audioIn,fs,'LogEnergy','Replace') возвращает gammatone cepstral коэффициенты для входного аудиосигнала, выбранного на уровне Гц fs. Для каждого аналитического окна первый коэффициент в векторе coeffs заменяется логарифмической энергией входного сигнала.

Количество выборок в аналитическом окне раньше вычисляло коэффициенты, заданные как пара, разделенная запятой, состоящая из 'WindowLength' и целого числа в области значений [2, size(audioIn,1)]. Если незаданный, значения по умолчанию WindowLength к round(0.03*fs).

Типы данных: single | double

Количество выборок перекрывается между смежными окнами, заданными как пара, разделенная запятой, состоящая из 'OverlapLength' и целого числа в области значений [0, WindowLength). Если незаданный, значения по умолчанию OverlapLength к round(0.02*fs).

Типы данных: single | double

Количество коэффициентов, возвращенных для каждого окна данных, заданных как пара, разделенная запятой, состоящая из 'NumCoeffs' и целого числа в области значений [2, v]. v является количеством допустимых полос пропускания. Если незаданный, значения по умолчанию NumCoeffs к 13.

Количество допустимых полос пропускания задано как количество шагов ERB (ERBN) в частотном диапазоне набора фильтров. Частотный диапазон набора фильтров задан FrequencyRange.

Типы данных: single | double

Область, в которой можно применить фильтрацию, заданную как пара, разделенная запятой, состоящая из 'FilterDomain' и 'Frequency' или 'Time'. Если незаданный, значения по умолчанию FilterDomain к Frequency.

Типы данных: string | char

Частотный диапазон gammatone набора фильтров в Гц, заданном как пара, разделенная запятой, состоящая из 'FrequencyRange' и двухэлементный вектор - строка из увеличения значений в области значений [0, fs/2]. Если незаданный, значения по умолчанию FrequencyRange к [50, fs/2]

Типы данных: single | double

Количество интервалов раньше вычисляло ДПФ оконных входных выборок, заданных как пара, разделенная запятой, состоящая из 'FFTLength' и положительного скалярного целого числа. Если незаданный, значения по умолчанию FFTLength к WindowLength.

Типы данных: single | double

Количество коэффициентов раньше вычисляло дельту и значения дельты дельты, заданные как пара, разделенная запятой, состоящая из 'DeltaWindowLength' и два или нечетное целое число, больше, чем два. Если незаданный, значения по умолчанию DeltaWindowLength к 2.

Если DeltaWindowLength установлен в 2, delta дан различием между текущими коэффициентами и предыдущими коэффициентами.

Если DeltaWindowLength установлен в нечетное целое число, больше, чем 2, следующее уравнение задает их значения:

Функция использует приближение наименьших квадратов локального наклона по области вокруг коэффициентов текущего аналитического окна. Дельта cepstral значения вычисляется путем подбора кривой cepstral коэффициентам соседних аналитических окон (аналитические окна M перед текущим аналитическим окном и аналитическими окнами M после текущего аналитического окна) к прямой линии. Для получения дополнительной информации см. [1].

Типы данных: single | double

Регистрируйте энергетическое использование, заданное как пара, разделенная запятой, состоящая из 'LogEnergy' и 'Append', 'Replace' или 'Ignore'. Если незаданный, значения по умолчанию LogEnergy к Append.

  • добавление Функция предварительно ожидает логарифмическую энергию к содействующему вектору. Длина содействующего вектора равняется 1 + NumCoeffs.

  • замена Функция заменяет первый коэффициент на логарифмическую энергию сигнала. Длиной содействующего вектора является NumCoeffs.

  • 'Ignore' – Функция не вычисляет или возвращает логарифмическую энергию.

Типы данных: char | string

Выходные аргументы

свернуть все

Коэффициенты Gammatone cepstral, возвращенные как L-by-M матрица или L-by-M-by-N массив, где:

  • L Количество аналитических окон звуковой сигнал разделено в. Входной размер, WindowLength и OverlapLength управляют этой размерностью: L = floor((size(audioIn,1) − WindowLength))/(WindowLength − OverlapLength) + 1.

  • M Количество коэффициентов возвращено на кадр. Это значение определяется NumCoeffs и LogEnergy.

    Когда LogEnergy установлен в:

    • добавление Объект предварительно ожидает логарифмическую энергетическую ценность к содействующему вектору. Длина содействующего вектора равняется 1 + NumCoeffs.

    • замена Объект заменяет первый коэффициент на логарифмическую энергию сигнала. Длиной содействующего вектора является NumCoeffs.

    • 'Ignore' – Объект не вычисляет или возвращает логарифмическую энергию. Длиной содействующего вектора является NumCoeffs.

  • N Количество входных каналов (столбцы). Этим значением является size(audioIn,2).

Типы данных: single | double

Изменитесь в коэффициентах от одного аналитического окна до другого, возвращенного как L-by-M матрица или L-by-M-by-N массив. Массив delta одного размера и тип данных как массив coeffs. Смотрите coeffs для определений L, M и N.

Функция использует приближение наименьших квадратов локального наклона по области вокруг выборки текущего времени. Для получения дополнительной информации см. [1].

Типы данных: single | double

Изменитесь в значениях delta, возвращенных как L-by-M матрица или L-by-M-by-N массив. Массив deltaDelta одного размера и тип данных как массивы delta и coeffs. Смотрите coeffs для определений L, M и N.

Функция использует приближение наименьших квадратов локального наклона по области вокруг выборки текущего времени. Для получения дополнительной информации см. [1].

Типы данных: single | double

Местоположение последней выборки в каждом аналитическом окне, возвращенном как вектор-столбец с одинаковым числом строк как coeffs.

Типы данных: single | double

Алгоритмы

свернуть все

Функция gtcc разделяет целые данные в перекрывающиеся сегменты. Длина каждого аналитического окна определяется WindowLength. Длина перекрытия между аналитическими окнами определяется OverlapLength. Алгоритм, чтобы определить gammatone cepstral коэффициенты зависит от области фильтра, заданной FilterDomain. Область фильтра по умолчанию является частотой.

Фильтрация частотного диапазона

gtcc вычисляет gammatone cepstral коэффициенты, логарифмическая энергетическая ценность, дельта и значения дельты дельты для каждого аналитического окна согласно алгоритму, описанному в cepstralFeatureExtractor.

Фильтрация временного интервала

Если FilterDomain задан как 'Time', функция gtcc использует gammatoneFilterBank, чтобы применить фильтрацию временного интервала. Основные шаги алгоритма gtcc обрисованы в общих чертах схемой.

FrequencyRange и частота дискретизации (fs) параметры установлены на наборе фильтров с помощью входа пар "имя-значение" для функции gtcc. Количество просачивается, gammatone набор фильтров задан, когда hz2erb(FrequencyRange(2)) − hz2erb(FrequencyRange(1)).This примерно соответствует размещению фильтра gammatone каждые 0,9 мм в улитке уха.

Вывод от gammatone набора фильтров является многоканальным сигналом. Каждый канал вывод от gammatone набора фильтров буферизуется в перекрытые аналитические окна, как задано WindowLength и OverlapLength. Затем периодическое Окно Хэмминга применяется к каждому аналитическому окну. Энергия для каждого аналитического окна данных вычисляется. STE каналов конкатенирована. Конкатенированный сигнал затем передается через функцию логарифма и преобразовывается к cepstral области с помощью дискретного косинусного преобразования (DCT).

Логарифмическая энергия вычисляется на исходный звуковой сигнал с помощью той же схемы буферизации, применился к gammatone набору фильтров вывод.

Ссылки

[1] Rabiner, Лоуренс Р. и Рональд В. Шафер. Теория и приложения цифровой речевой обработки. Верхний Сэддл-Ривер, NJ: Пирсон, 2010.

[2] Шао, ян, Чжаочжан Цзинь, Дэлян Ван и Сундарарэджэн Сринивасан. "Слуховая функция устойчивого распознавания речи". Международная конференция IEEE по вопросам акустики, речи и обработки сигналов. 2009.

[3] Валеро, X., и F. Псевдоним. "Коэффициенты Gammatone Cepstral: Биологически Вдохновленные Функции Неречевой Классификации Аудио". Транзакции IEEE на Мультимедиа. Издание 14, Выпуск 6, 2012, стр 1684–1689.

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Смотрите также

| | |

Введенный в R2019a