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