exponenta event banner

информация

Отображение выходных данных и отдельные параметры экстрактора элементов

Описание

пример

idx = info(aFE) возвращает структуру с именами полей, соответствующими включенным экстракторам элементов. Значения полей соответствуют индексам столбцов, которые извлеченные элементы занимают в выходных данных extract.

пример

idx = info(aFE,"all") возвращает структуру с именами полей, соответствующими всем доступным экстракторам элементов. Если экстрактор элементов отключен, значение поля пусто.

пример

[idx,params] = info(___) возвращает вторую структуру, params. Имена полей params соответствуют экстракторам элементов с настраиваемыми параметрами. Если "all" флаг указан, params содержит все экстракторы элементов с настраиваемыми параметрами. Если "all" флаг не указан, params содержит только включенные экстракторы элементов с настраиваемыми параметрами. Задать параметры можно с помощью setExtractorParams.

Примеры

свернуть все

Извлеките спектр 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")

Figure contains an axes. The axes with title Mel Spectrum contains an object of type surface.

plot(features(:,idx.spectralCentroid))
axis tight
title("Mel Spectral Centroid")
xlabel("Analysis Frame Number")

Figure contains an axes. The axes with title Mel Spectral Centroid contains an object of type line.

plot(features(:,idx.spectralSkewness))
axis tight
title("Mel Spectral Skewness")
xlabel("Analysis Frame Number")

Figure contains an axes. The axes with title Mel Spectral Skewness contains an object of type line.

Создание значения по умолчанию 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.erbSpectrum
ans = struct with fields:
                   NumBands: 43
             FrequencyRange: [0 22050]
    FilterBankNormalization: "bandwidth"
        WindowNormalization: 1
               SpectrumType: "power"

Входные аргументы

свернуть все

audioFeatureExtractor объект.

Выходные аргументы

свернуть все

Сопоставление запрашиваемых функций с выводом из extract, возвращается в виде структуры с именами полей, соответствующими отдельным экстракторам элементов, и значениями полей, соответствующими индексам столбцов.

Настраиваемые параметры отдельных экстракторов элементов, возвращаемые в виде структуры с именами полей, соответствующими отдельным экстракторам элементов, и значениями полей, содержащими структуры спецификации параметров. Структуры спецификации параметров имеют имена полей, соответствующие настраиваемым именам параметров, и значения полей, соответствующие текущей настройке параметров.

См. также

Представлен в R2019b