Получите слуховой набор фильтров
[
возвращает набор фильтров и соответствующие интервалы частоты в Гц. Каждый столбец набора фильтров соответствует одному полосовому фильтру. 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
Системный объект
Введите экстрактор функции 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.