Выведите отображение и отдельные параметры экстрактора функции
[
возвращает второй 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]
Normalization: "bandwidth"
SpectrumType: "power"
Если вы используете значения параметров по умолчанию, то параметры являются динамическими и обновляются, когда свойства, от которых они зависят, обновляются. Например, частотный диапазон по умолчанию набора фильтров ERB и количество по умолчанию полосовых фильтров в наборе фильтров ERB зависят от частоты дискретизации. Уменьшите частоту дискретизации audioFeatureExtractor
возразите и затем вызовите info
снова.
aFE.SampleRate = 16e3; [~,params] = info(aFE); params.erbSpectrum
ans = struct with fields:
NumBands: 34
FrequencyRange: [0 8000]
Normalization: "bandwidth"
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]
Normalization: "bandwidth"
SpectrumType: "magnitude"
Когда вы устанавливаете отдельные параметры экстрактора функции, они остаются в значении набора, пока вы не устанавливаете их на другое значение или возвращаете их в значения по умолчанию. Возвратите частоту дискретизации audioFeatureExtractor
возразите против его начального значения и затем вызовите info
. Параметры остаются в своем значении набора.
aFE.SampleRate = 44.1e3; [~,params] = info(aFE); params.erbSpectrum
ans = struct with fields:
NumBands: 40
FrequencyRange: [0 8000]
Normalization: "bandwidth"
SpectrumType: "magnitude"
К возвращаемым параметрам к их значениям по умолчанию вызовите setExtractorParams
и не задайте параметры.
setExtractorParams(aFE,"erbSpectrum")
[~,params] = info(aFE);
params.erbSpectrum
ans = struct with fields:
NumBands: 43
FrequencyRange: [0 22050]
Normalization: "bandwidth"
SpectrumType: "power"
aFE
— Входной объектaudioFeatureExtractor
объектaudioFeatureExtractor
объект.
idx
— Отображение требуемых функций с выходом из извлеченияОтображение требуемых функций с выходом от extract
, возвращенный как struct с именами полей, соответствующими индивидууму, показывают экстракторы и значения полей, соответствующие индексам столбца.
params
— Устанавливаемые параметры отдельных экстракторов функцииУстанавливаемые параметры отдельных экстракторов функции, возвращенных как struct с именами полей, соответствующими индивидууму, показывают экстракторы и значения полей, содержащие структуры спецификации параметра. Структуры спецификации параметра имеют имена полей, соответствующие устанавливаемым названиям параметра и значениям полей, соответствующим текущей установке параметра.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.