Выходное отображение и параметры извлечения отдельных функций
[
возвращает второй struct, idx
,params
] = info(___)params
. Имена полей params
соответствуют экстракторам функций с установленными параметрами. Если на "all"
флаг задан, params
содержит все экстракторы функций с настраиваемыми параметрами. Если на "all"
флаг не задан, params
содержит только активированные экстракторы функций с установленными параметрами. Можно задать параметры, используя setExtractorParams
.
extract
Извлеките mel спектра, mel spectral centroid и mel spectral skewness от конкатенированного белого и розового шума.
fs = 48e3; aFE = audioFeatureExtractor("SampleRate",fs, ... "melSpectrum",true, ... "SpectralDescriptorInput","melSpectrum", ... "spectralCentroid",true, ... "spectralSkewness",true); features = extract(aFE,[2*rand(fs,1)-1;pinknoise(fs,1)]);
Использование info
чтобы определить, какие столбцы выхода соответствуют какой функции. Постройте график функций отдельно.
idx = info(aFE); surf(log10(features(:,idx.melSpectrum)),"EdgeColor","none"); view([90,-90]) axis tight title("Mel Spectrum") ylabel("Analysis Frame Number")
plot(features(:,idx.spectralCentroid)) axis tight title("Mel Spectral Centroid") xlabel("Analysis Frame Number")
plot(features(:,idx.spectralSkewness)) axis tight title("Mel Spectral Skewness") xlabel("Analysis Frame Number")
audioFeatureExtractor
ОбеспечиваетСоздайте audioFeatureExtractor
по умолчанию объект. По умолчанию все экстракторы функций отключены.
aFE = audioFeatureExtractor
aFE = audioFeatureExtractor with properties: Properties Window: [1024x1 double] OverlapLength: 512 SampleRate: 44100 FFTLength: [] SpectralDescriptorInput: 'linearSpectrum' Enabled Features none Disabled Features linearSpectrum, melSpectrum, barkSpectrum, erbSpectrum, mfcc, mfccDelta mfccDeltaDelta, gtcc, gtccDelta, gtccDeltaDelta, spectralCentroid, spectralCrest spectralDecrease, spectralEntropy, spectralFlatness, spectralFlux, spectralKurtosis, spectralRolloffPoint spectralSkewness, spectralSlope, spectralSpread, pitch, harmonicRatio To extract a feature, set the corresponding property to true. For example, obj.mfcc = true, adds mfcc to the list of enabled features.
The info
функция возвращает информацию о включенных экстракторах признаков. Чтобы просмотреть информацию обо всех экстракторах функции, вызовите info
использование "all"
флаг.
[idx,params] = info(aFE,"all")
idx = struct with fields:
linearSpectrum: [1x0 double]
melSpectrum: [1x0 double]
barkSpectrum: [1x0 double]
erbSpectrum: [1x0 double]
mfcc: [1x0 double]
mfccDelta: [1x0 double]
mfccDeltaDelta: [1x0 double]
gtcc: [1x0 double]
gtccDelta: [1x0 double]
gtccDeltaDelta: [1x0 double]
spectralCentroid: [1x0 double]
spectralCrest: [1x0 double]
spectralDecrease: [1x0 double]
spectralEntropy: [1x0 double]
spectralFlatness: [1x0 double]
spectralFlux: [1x0 double]
spectralKurtosis: [1x0 double]
spectralRolloffPoint: [1x0 double]
spectralSkewness: [1x0 double]
spectralSlope: [1x0 double]
spectralSpread: [1x0 double]
pitch: [1x0 double]
harmonicRatio: [1x0 double]
params = struct with fields:
linearSpectrum: [1x1 struct]
melSpectrum: [1x1 struct]
barkSpectrum: [1x1 struct]
erbSpectrum: [1x1 struct]
mfcc: [1x1 struct]
gtcc: [1x1 struct]
spectralFlux: [1x1 struct]
spectralRolloffPoint: [1x1 struct]
pitch: [1x1 struct]
Используйте idx
struct, чтобы включить все экстракторы функций на audioFeatureExtractor
объект.
features = fieldnames(idx); for i = 1:numel(features) aFE.(features{i}) = true; end aFE
aFE = audioFeatureExtractor with properties: Properties Window: [1024x1 double] OverlapLength: 512 SampleRate: 44100 FFTLength: [] SpectralDescriptorInput: 'linearSpectrum' Enabled Features linearSpectrum, melSpectrum, barkSpectrum, erbSpectrum, mfcc, mfccDelta mfccDeltaDelta, gtcc, gtccDelta, gtccDeltaDelta, spectralCentroid, spectralCrest spectralDecrease, spectralEntropy, spectralFlatness, spectralFlux, spectralKurtosis, spectralRolloffPoint spectralSkewness, spectralSlope, spectralSpread, pitch, harmonicRatio Disabled Features none To extract a feature, set the corresponding property to true. For example, obj.mfcc = true, adds mfcc to the list of enabled features.
Создайте audioFeatureExtractor
для извлечения спектра ERB.
aFE = audioFeatureExtractor("erbSpectrum",true)
aFE = audioFeatureExtractor with properties: Properties Window: [1024x1 double] OverlapLength: 512 SampleRate: 44100 FFTLength: [] SpectralDescriptorInput: 'linearSpectrum' Enabled Features erbSpectrum Disabled Features linearSpectrum, melSpectrum, barkSpectrum, mfcc, mfccDelta, mfccDeltaDelta gtcc, gtccDelta, gtccDeltaDelta, spectralCentroid, spectralCrest, spectralDecrease spectralEntropy, spectralFlatness, spectralFlux, spectralKurtosis, spectralRolloffPoint, spectralSkewness spectralSlope, spectralSpread, pitch, harmonicRatio To extract a feature, set the corresponding property to true. For example, obj.mfcc = true, adds mfcc to the list of enabled features.
Второй выходной аргумент от info
является struct
который содержит настраиваемые параметры отдельных экстракторов функций и их текущее значение.
[~,params] = info(aFE)
params = struct with fields:
erbSpectrum: [1x1 struct]
params.erbSpectrum
ans = struct with fields:
NumBands: 43
FrequencyRange: [0 22050]
FilterBankNormalization: "bandwidth"
WindowNormalization: 1
SpectrumType: "power"
Если вы используете значения параметров по умолчанию, то параметры являются динамическими и обновляются, когда свойства, от которых они зависят, обновляются. Для примера, частота по умолчанию область значений ERB-фильтра и количество полосно-пропускающих фильтров по умолчанию в ERB-фильтре зависит от частоты дискретизации. Уменьшите частоту дискретизации audioFeatureExtractor
Объект и затем вызовите info
снова.
aFE.SampleRate = 16e3; [~,params] = info(aFE); params.erbSpectrum
ans = struct with fields:
NumBands: 34
FrequencyRange: [0 8000]
FilterBankNormalization: "bandwidth"
WindowNormalization: 1
SpectrumType: "power"
Можно изменить параметры извлечения функций с помощью setExtractorParams
. Установите количество полос на 40
и тип спектра для "magnitude"
. Функции info
для подтверждения обновления параметров.
params.erbSpectrum.NumBands = 40; params.erbSpectrum.SpectrumType = "magnitude"; setExtractorParams(aFE,"erbSpectrum",params.erbSpectrum) [~,params] = info(aFE); params.erbSpectrum
ans = struct with fields:
NumBands: 40
FrequencyRange: [0 8000]
FilterBankNormalization: "bandwidth"
WindowNormalization: 1
SpectrumType: "magnitude"
Когда вы устанавливаете индивидуум параметры функции экстрактора, они остаются на заданном значении, пока вы не установите их другое значение или не вернете к значениям по умолчанию. Верните частоту дискретизации audioFeatureExtractor
объект на его начальное значение и затем вызов info
. Параметры остаются на заданном значении.
aFE.SampleRate = 44.1e3; [~,params] = info(aFE); params.erbSpectrum
ans = struct with fields:
NumBands: 40
FrequencyRange: [0 8000]
FilterBankNormalization: "bandwidth"
WindowNormalization: 1
SpectrumType: "magnitude"
Чтобы вернуть параметрам значения по умолчанию, вызовите setExtractorParams
и не задавать параметры.
setExtractorParams(aFE,"erbSpectrum")
[~,params] = info(aFE);
params.erbSpectrum
ans = struct with fields:
NumBands: 43
FrequencyRange: [0 22050]
FilterBankNormalization: "bandwidth"
WindowNormalization: 1
SpectrumType: "power"
aFE
- Входной объектaudioFeatureExtractor
объектaudioFeatureExtractor
объект.
idx
- Отображение запрашиваемых функций с выходом из извлеченияОтображение запрашиваемых функций с выходами от extract
, возвращенный как struct с именами полей, соответствующими отдельным экстракторам функций, и значениями полей, соответствующими индексам столбцов.
params
- Настраиваемые параметры отдельных экстракторов функцийНастраиваемые параметры отдельных экстракторов функций, возвращаемые как struct с именами полей, соответствующими отдельным экстракторам функций, и значениями полей, содержащими структуры спецификации параметров. Структуры спецификации параметров имеют имена полей, соответствующие установленным именам параметров и значениям полей, соответствующим текущей установке параметров.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.