Получите слуховой набор фильтров
[filterbank,freq] = getFilters(cepFeatures)
[
возвращает набор фильтров и соответствующие интервалы частоты в Гц. Каждый столбец набора фильтров соответствует одному полосовому фильтру. filterbank не определен, пока объект не заблокирован.filterbank
,freq
] = getFilters(cepFeatures
)
Слуховой набор фильтров содержит набор полосовых фильтров, которые используются, чтобы извлечь функции cepstral от звукового сигнала. Функции cepstral включают cepstral коэффициенты (coeffs)
, различие между током и предыдущими cepstral коэффициентами (delta)
и различие между током и предыдущими значениями дельты, deltaDelta
. Функция getFilters
возвращает слуховой набор фильтров и соответствующие интервалы частоты.
Считайте звуковой сигнал из файла 'SpeechDFT-16-8-mono-5secs.wav'
. Извлеките сегмент на 40 мс от аудиоданных. Создайте Систему cepstralFeatureExtractor
object™, который принимает входной аудиосигнал временного интервала, выбранный на уровне 8 кГц.
[audioFile, fs] = audioread('SpeechDFT-16-8-mono-5secs.wav'); duration = round(0.04*fs); % 40 ms audioSegment = audioFile(5500:5500+duration-1); cepFeatures = cepstralFeatureExtractor('SampleRate',fs)
cepFeatures = cepstralFeatureExtractor with properties: Properties FilterBank: 'Mel' InputDomain: 'Time' NumCoeffs: 13 FFTLength: [] LogEnergy: 'Append' SampleRate: 8000 Show all properties
Передайте аудио сегмент на 40 мс как вход к алгоритму cepstralFeatureExtractor
. Алгоритм вычисляет mel коэффициенты частоты, логарифмическую энергию, дельту и значения дельты дельты аудио сегмента.
[coeffs,delta,deltaDelta] = cepFeatures(audioSegment);
Используя функцию getFilters
, получите набор фильтров, который вычисляет функции cepstral. Каждый столбец в наборе фильтров содержит полосовой фильтр. Интервалы частоты, соответствующие полосовым фильтрам, отображены в Bins
. Обратите внимание на то, что функция getFilters
требует, чтобы объект cepstralFeatureExtractor
был заблокирован.
[filterbank, freq] = getFilters(cepFeatures);
Постройте набор фильтров, и вы видите, что столбцы 33 - 40 набора фильтров имеют нулевые элементы. Эти столбцы соответствуют фильтрам, ребра полосы которых (один или оба) выше частоты Найквиста, . В этом примере частота Найквиста составляет 4 кГц.
plot(freq,filterbank)
cepFeatures.BandEdges(33:40)
ans = 1×8
103 ×
3.6915 3.9543 4.2357 4.5371 4.8601 5.2059 5.5765 5.9733
nnz(filterbank(:,33:40))
ans = 0
Выпустите экстрактор функции cepstral, возражают и передают различный звуковой сигнал, выбранный на уровне 22,5 кГц.
release(cepFeatures) [audioFileTwo, fsTwo] = audioread('NoisySpeech-16-22p5-mono-5secs.wav'); duration = round(0.04*fsTwo); % 40 ms audioSegmentTwo = audioFileTwo(5500:5500+duration-1); cepFeatures = cepstralFeatureExtractor('SampleRate',fsTwo)
cepFeatures = cepstralFeatureExtractor with properties: Properties FilterBank: 'Mel' InputDomain: 'Time' NumCoeffs: 13 FFTLength: [] LogEnergy: 'Append' SampleRate: 22500 Show all properties
Частота Найквиста является 22,500/2, который составляет 11 250 Гц. Извлеките cepstral функции второго аудио сегмента. Постройте набор фильтров, который используется, чтобы вычислить функции cepstral. Увеличьте масштаб оси для сравнения.
[coeffsTwo,deltaTwo,deltaDeltaTwo] = cepFeatures(audioSegmentTwo); [filterbankTwo, freqTwo] = getFilters(cepFeatures); plot(freqTwo,filterbankTwo) axis([0 8000 0 0.015])
Все ребра полосы ниже частоты Найквиста, и полосовые фильтры в наборе фильтров имеют ненулевые коэффициенты.
cepFeatures
— Введите Систему экстрактора функции cepstral object™cepstralFeatureExtractor System object
Введите экстрактор функции cepstral, заданный как Системный объект cepstralFeatureExtractor
. Чтобы использовать функцию getFilters
, объект должен быть заблокирован. Набор фильтров задан только, когда объект заблокирован. Объект заблокирован, когда вы вызываете объектный алгоритм.
filterbank
— Слуховой набор фильтровНабор фильтров, используемый, чтобы вычислить функции cepstral, возвратился как матрица. Каждый столбец матрицы соответствует одному полосовому фильтру в наборе фильтров. Количество столбцов в матрице дано m – 2, где m является длиной вектора, вы задаете в свойстве BandEdges
Системного объекта. Количество строк в матрице соответствует длине БПФ. По умолчанию длина БПФ равняется количеству строк во входном сигнале. Можно также задать длину БПФ через свойство FFTLength
Системного объекта.
Если частота Найквиста, fs/2, является меньше, чем частоты ребра полосы, вы задаете в свойстве BandEdges
, коэффициенты полосовых фильтров, которые выходят за пределы области значений Найквиста, обнуляются. fs является частотой дискретизации, которую вы задаете в свойстве SampleRate
Системного объекта.
Типы данных: single | double
freq
— Интервалы частоты, соответствующие набору фильтров (Гц)Интервалы частоты, соответствующие набору фильтров в Гц, возвращенном как вектор - строка. Длина вектора равняется длине БПФ.
Типы данных: single | double
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.