Выведите отображение и отдельные параметры экстрактора функции
[ возвращает второй struct, idx,params] = info(___)params. Имена полей params соответствуйте экстракторам функции устанавливаемыми параметрами. Если "all" флаг задан, params содержит все экстракторы функции устанавливаемыми параметрами. Если "all" флаг не задан, params содержит только активированные экстракторы функции устанавливаемыми параметрами. Можно установить использование параметров setExtractorParams.
extractИзвлеките mel спектр, mel спектральный центроид и mel спектральная скошенность от конкатенированного бело-розового шума.
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.
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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.