主要内容

audioFeatureExtractor

简化音频特征提取

描述

audioFeatureExtractor多个音频特征提取器封装到一个精简和模块化的实现。

创建

描述

aFE= audioFeatureExtractor ()创建一个音频特征提取器默认属性值。

例子

aFE= audioFeatureExtractor (名称,值)指定默认的属性aFE使用一个或多个名称-值对参数。

属性

全部展开

主要特性

分析窗口中,指定为一个真正的向量。

数据类型:|

重叠相邻的长度分析窗口,指定为一个整数范围在[0,元素个数(窗口))。

数据类型:|

FFT长度指定为一个整数。默认的,[],意味着FFT长度等于窗口长度,(元素个数(窗口))。

数据类型:|

输入采样率在赫兹,指定为负的标量。

数据类型:|

输入谱描述符指定为“linearSpectrum”,“melSpectrum”,“barkSpectrum”,或“erbSpectrum”

光谱描述符影响这个属性是:

光谱谱描述符的输入输出相应的功能是一样的:

例如,如果您设置“SpectralDescriptorInput”“barkSpectrum”,“spectralCentroid”真正的,然后aFE返回默认的质心树皮频谱。

[audioIn, fs] = audioread (“Counting-16-44p1-mono-15secs.wav”);aFE = audioFeatureExtractor (“SampleRate”fs,“SpectralDescriptorInput”,“barkSpectrum”,“spectralCentroid”,真正的);audioIn barkSpectralCentroid =提取(aFE);
如果你指定一个默认的barkSpectrum使用setExtractorParams,那么默认的树皮光谱谱描述符的输入。例如,如果您的电话setExtractorParams (aFE“barkSpectrum”、“NumBands”, 40),然后aFE返回40-band树皮频谱的重心。

setExtractorParams (aFE“barkSpectrum”,“NumBands”,40)bark40SpectralCentroid =提取(aFE audioIn);

数据类型:字符|字符串

特征提取

提取的线性范围,指定为真正的

设置参数的线性光谱提取、使用setExtractorParams:

setExtractorParams (aFE“linearSpectrum”,“名称”,值)
可设置的参数线性光谱提取:

  • “FrequencyRange”——在赫兹频率提取的光谱范围,指定为逗号分隔组成的“FrequencyRange”双元素向量和越来越多的范围(0,SampleRate/ 2)。如果未指定的,FrequencyRange默认为[0,SampleRate/ 2)

  • “SpectrumType”——光谱类型,指定为逗号分隔组成的“SpectrumType”“权力”“级”。如果未指定的,SpectrumType默认为“权力”

  • “WindowNormalization”——应用标准化窗口,指定为逗号分隔组成的“WindowNormalization”真正的。如果未指定的,WindowNormalization默认为真正的

数据类型:逻辑

提取片面梅尔频谱,指定为真正的

梅尔的设置参数谱提取、使用setExtractorParams:

setExtractorParams (aFE“melSpectrum”,“名称”,值)
梅尔谱提取可设置的参数有:

  • “FrequencyRange”——在赫兹频率提取的光谱范围,指定为逗号分隔组成的“FrequencyRange”双元素向量和越来越多的范围(0,SampleRate/ 2)。如果未指定的,FrequencyRange默认为[0,SampleRate/ 2)

  • “SpectrumType”——光谱类型,指定为逗号分隔组成的“SpectrumType”“权力”“级”。如果未指定的,SpectrumType默认为“权力”

  • “NumBands”——梅尔乐队的数量,指定为逗号分隔组成的“NumBands”和一个整数。如果未指定的,NumBands默认为32

  • “FilterBankNormalization”——标准化应用于带通滤波器,指定为逗号分隔组成的“FilterBankNormalization”“带宽”,“区域”,或“没有”。如果未指定的,FilterBankNormalization默认为“带宽”

  • “WindowNormalization”——应用标准化窗口,指定为逗号分隔组成的“WindowNormalization”真正的。如果未指定的,WindowNormalization默认为真正的

  • “FilterBankDesignDomain”——域的滤波器组设计,指定为逗号分隔组成的FilterBankDesignDomain,要么“线性”“扭曲”。如果未指定的,FilterBankDesignDomain默认为“线性”

数据类型:逻辑

树皮中提取的光谱,指定为真正的

树皮的设置参数谱提取、使用setExtractorParams:

setExtractorParams (aFE“barkSpectrum”,“名称”,值)
树皮谱提取可设置的参数有:

  • “FrequencyRange”——在赫兹频率提取的光谱范围,指定为逗号分隔组成的“FrequencyRange”双元素向量和越来越多的范围(0,SampleRate/ 2)。如果未指定的,FrequencyRange默认为[0,SampleRate/ 2)

  • “SpectrumType”——光谱类型,指定为逗号分隔组成的“SpectrumType”“权力”“级”。如果未指定的,SpectrumType默认为“权力”

  • “NumBands”——树皮乐队的数量,指定为逗号分隔组成的“NumBands”和一个整数。如果未指定的,NumBands默认为32

  • “FilterBankNormalization”——标准化应用于带通滤波器,指定为逗号分隔组成的“FilterBankNormalization”“带宽”,“区域”,或“没有”。如果未指定的,FilterBankNormalization默认为“带宽”

  • “WindowNormalization”——应用标准化窗口,指定为逗号分隔组成的“WindowNormalization”真正的。如果未指定的,WindowNormalization默认为真正的

  • “FilterBankDesignDomain”——域的滤波器组设计,指定为逗号分隔组成的FilterBankDesignDomain,要么“线性”“扭曲”。如果未指定的,FilterBankDesignDomain默认为“线性”

数据类型:逻辑

提取片面ERB频谱,指定为真正的

设置参数ERB光谱提取、使用setExtractorParams:

setExtractorParams (aFE“erbSpectrum”,“名称”,值)
可设置的ERB谱提取的参数是:

  • “FrequencyRange”——在赫兹频率提取的光谱范围,指定为逗号分隔组成的“FrequencyRange”双元素向量和越来越多的范围(0,SampleRate/ 2)。如果未指定的,FrequencyRange默认为[0,SampleRate/ 2)

  • “SpectrumType”——光谱类型,指定为逗号分隔组成的“SpectrumType”“权力”“级”。如果未指定的,SpectrumType默认为“权力”

  • “NumBands”——ERB乐队的数量,指定为逗号分隔组成的“NumBands”和一个整数。如果未指定的,NumBands默认为(即:hz2erb(FrequencyRange (2))hz2erb(FrequencyRange (1)))

  • “FilterBankNormalization”——标准化应用于带通滤波器,指定为逗号分隔组成的“FilterBankNormalization”“带宽”,“区域”,或“没有”。如果未指定的,FilterBankNormalization默认为“带宽”

  • “WindowNormalization”——应用标准化窗口,指定为逗号分隔组成的“WindowNormalization”真正的。如果未指定的,WindowNormalization默认为真正的

数据类型:逻辑

提取mel-frequency cepstral系数(MFCC),指定为真正的

设置MFCC参数提取、使用setExtractorParams:

setExtractorParams (aFE“mfcc”,“名称”,值)
MFCC提取可设置的参数有:

  • “NumCoeffs”——返回系数的数量为每个窗口中,指定为一双的逗号分隔组成的“NumCoeffs”和一个正整数。如果未指定的,NumCoeffs默认为13

  • “DeltaWindowLength”——三角洲窗口长度指定为逗号分隔组成的“DeltaWindowLength”和一个奇数大于2。如果未指定的,DeltaWindowLength默认为9。这个参数影响mfccDeltamfccDeltaDelta特性。

  • “整改”——类型的非线性整流,指定为逗号分隔组成的“整改”“日志”“立方根”

的mel-frequency cepstral系数计算使用melSpectrum

数据类型:逻辑

δ(MFCC提取,指定为真正的

三角洲MFCC计算基于提取的MFCC。参数设置mfcc影响mfccDelta

数据类型:逻辑

MFCC提取δ,指定为真正的

δ的MFCC计算基于提取的MFCC。参数设置mfcc影响mfccDeltaDelta

数据类型:逻辑

提取gammatone cepstral系数(GTCC),指定为真正的

GTCC的设置参数提取、使用setExtractorParams:

setExtractorParams (aFE“gtcc”,“名称”,值)
GTCC提取可设置的参数有:

  • “NumCoeffs”——返回系数的数量为每个窗口中,指定为一双的逗号分隔组成的“NumCoeffs”和一个正整数。如果未指定的,NumCoeffs默认为13

  • “DeltaWindowLength”——三角洲窗口长度指定为逗号分隔组成的“DeltaWindowLength”和一个奇数大于2。如果未指定的,DeltaWindowLength默认为9。这个参数影响gtccDeltagtccDeltaDelta特性。

  • “整改”——类型的非线性整流,指定为逗号分隔组成的“整改”“日志”“立方根”

的gammatone cepstral系数计算使用erbSpectrum

数据类型:逻辑

提取GTCC的三角洲,指定为真正的

三角洲GTCC基于提取的GTCC的计算。参数设置gtcc影响gtccDelta

数据类型:逻辑

提取GTCC的δ,指定为真正的

的δGTCC基于提取的GTCC的计算。参数设置gtcc影响gtccDeltaDelta

数据类型:逻辑

提取频谱质心,指定为真正的

频谱质心计算的光谱表征后,指定的SpectralDescriptorInput属性:

数据类型:逻辑

提取光谱波峰,指定为真正的

光谱峰值计算的光谱表征后,指定的SpectralDescriptorInput属性:

数据类型:逻辑

提取光谱减少,指定为真正的

光谱减少计算的光谱表征后,指定的SpectralDescriptorInput属性:

数据类型:逻辑

提取谱熵,指定为真正的

谱熵计算的光谱表征后,指定的SpectralDescriptorInput属性:

数据类型:逻辑

提取光谱平坦,指定为真正的

计算谱平坦的光谱表征后,指定的SpectralDescriptorInput属性:

数据类型:逻辑

提取谱通量,指定为真正的

谱通量计算的光谱表征后,指定的SpectralDescriptorInput属性:

谱通量的设置参数提取、使用setExtractorParams:

setExtractorParams (aFE“spectralFlux”,“名称”,值)
可设置的参数谱通量提取:

  • “NormType”——规范类型用来计算谱通量,指定为逗号分隔组成的“NormType”和一个12。如果未指定的,NormType默认为2

数据类型:逻辑

提取谱峰度,指定为真正的

计算谱峰态的光谱表征后,指定的SpectralDescriptorInput属性:

数据类型:逻辑

提取光谱滚边点,指定为真正的

光谱滚边点计算的光谱表征后,指定的SpectralDescriptorInput属性:

设置参数的光谱滚边点提取、使用setExtractorParams:

setExtractorParams (aFE“spectralRolloffPoint”,“名称”,值)
可设置的参数谱通量提取:

  • “阈值”——滚边点阈值,指定为逗号分隔组成的“阈值”和一个标量范围(0,1)。如果未指定的,阈值默认为0.95

数据类型:逻辑

提取光谱偏态,指定为真正的

光谱计算偏态的光谱表征后,指定的SpectralDescriptorInput属性:

数据类型:逻辑

提取光谱斜率,指定为真正的

光谱斜率计算的光谱表征后,指定的SpectralDescriptorInput属性:

数据类型:逻辑

提取光谱扩散,指定为真正的

光谱分布计算的光谱表征后,指定的SpectralDescriptorInput属性:

数据类型:逻辑

提取音高,指定为真正的

设置参数的提取,使用setExtractorParams:

setExtractorParams (aFE“节”,“名称”,值)
音高提取可设置的参数有:

  • “方法”——方法用于计算,指定为逗号分隔组成的“方法”“PEF”,“NCF”,“CEP”,“韩”,或“SRH”。如果未指定的,方法默认为“NCF”。可用沥青萃取方法的描述,请参阅球场

  • “范围”——范围内搜索赫兹的音高,指定为逗号分隔组成的“范围”双元素行向量和增加价值。如果未指定的,范围默认为[50400]

  • “MedianFilterLength”——中值滤波器长度用来光滑音高估计随着时间的推移,指定为逗号分隔组成的“MedianFilterLength”和一个正整数。如果未指定的,MedianFilterLength默认为1(无中值滤波)。

数据类型:逻辑

提取谐波比率,指定为真正的

数据类型:逻辑

对象的功能

提取 提取音频功能
setExtractorParams 为个人特征提取器设置默认的参数值
信息 输出映射器参数和个人特性
generateMATLABFunction 创建MATLAB功能兼容C / c++代码生成

例子

全部折叠

读入一个音频信号。

[audioIn, fs] = audioread (“Counting-16-44p1-mono-15secs.wav”);

创建一个audioFeatureExtractor对象,提取MFCC,δMFCC,δMFCC,音高,音频信号的频谱质心。使用30 ms分析窗口与20 ms重叠。

aFE = audioFeatureExtractor (“SampleRate”fs,“窗口”汉明(圆(0.03 * fs),“周期”),“OverlapLength”而圆(0.02 * fs),“mfcc”,真的,“mfccDelta”,真的,“mfccDeltaDelta”,真的,“节”,真的,“spectralCentroid”,真正的);

调用提取提取音频信号的音频特性。

特点=提取(aFE audioIn);

使用信息特征提取的确定哪些列矩阵对应请求的音高提取。

idx = info (aFE)
idx =结构体字段:mfcc:(1 2 3 4 5 6 7 8 9 10 11 12 13] mfccDelta:[14 15 16 17 18 19 20 21日22日23日24日25日26日]mfccDeltaDelta: [27 28 29 30 31 32 33 34 35 36 37 38 39] spectralCentroid: 40节:41

随着时间的推移情节发现音高。

t = linspace(0,大小(audioIn 1) / fs,大小(功能,1));情节(t)特性(:,idx.pitch))标题(“节”)包含(“时间(s)”)ylabel (的频率(赫兹))

图包含一个轴。标题的轴节包含一个类型的对象。

创建一个音频数据存储指向音频样本包含音频工具箱®。

文件夹= fullfile (matlabroot,“工具箱”,“音频”,“样本”);广告= audioDatastore(文件夹);

找到所有的文件对应44.1 kHz的采样率子集数据存储。

keepFile = cellfun (@ (x)包含(x,“44 p1”),ads.Files);广告=子集(广告,keepFile);

将数据转换成数组中。数组是只有当您显式地请求它们使用评估收集。MATLAB®自动优化计算排队通过最小化通过数据的数量。如果你有并行计算工具箱™,你可以计算分布到多台机器。音频数据的表示1高单元阵列,在音频数据存储文件的数量。

adsTall =高(广告)
开始平行池(parpool)使用“本地”概要文件…连接到平行池(工人数量:6)。adsTall = M×1高细胞数组{539648×1双}{227497×1双}{8000×1双}{685056×1双}{882688×2双}{1115760×2双}{505200×2双}{3195904×2双}::::

创建一个audioFeatureExtractor对象提取梅尔谱、树皮频谱ERB光谱,从每个音频文件和线性光谱。使用默认的窗口和重叠长度频谱分析提取。

aFE = audioFeatureExtractor (“SampleRate”,44.1 e3,“melSpectrum”,真的,“barkSpectrum”,真的,“erbSpectrum”,真的,“linearSpectrum”,真正的);

定义一个cellfun函数,以便从每个细胞中提取音频特性的高数组。调用收集评价高的数组。

specsTall = cellfun (@ (x)提取(aFE x), adsTall,“UniformOutput”、假);规格=收集(specsTall);
评估高表达式使用并行池“当地”:通过1对1:在12秒完成评估在12秒完成

规格变量收集回来numFiles1单元阵列,numFiles在数据存储文件的数量。单元阵列的每个元素numHops——- - - - - -numFeatures——- - - - - -numChannels数组,啤酒花和通道数量的数量取决于渠道的长度和数量的音频文件,和功能的数量从音频数据特性的请求数量。

numFiles =元素个数(规格)
numFiles = 12
[numHops1, numFeaturesFile1 numChanelsFile1] =大小(规格{1})
numHops1 = 1053
numFeaturesFile1 = 620
numChanelsFile1 = 1
[numHops2, numFeaturesFile2 numChanelsFile2] =大小(规格{2})
numHops2 = 443
numFeaturesFile2 = 620
numChanelsFile2 = 1

算法

audioFeatureExtractor创建一个特征提取管道根据你选择的功能。为了减少计算,audioFeatureExtractor重用的中介表示。一些中介表示可以输出功能:

例如,创建一个对象,提取质心的树皮,树皮的通量谱,,谐波比率,和MFCC的δ,指定audioFeatureExtractor为:

aFE = audioFeatureExtractor (“SpectralDescriptorInput”,“barkSpectrum”,“spectralCentroid”,真的,“spectralFlux”,真的,“节”,真的,“harmonicRatio”,真的,“mfccDeltaDelta”,真正的)
aFE = audioFeatureExtractor属性:属性窗口:[1024×1双]OverlapLength: 512 SampleRate: 44100 FFTLength: [] SpectralDescriptorInput:‘barkSpectrum mfccDeltaDelta启用功能,spectralCentroid, spectralFlux,音高,harmonicRatio linearSpectrum禁用功能,melSpectrum, barkSpectrum, erbSpectrum, mfcc, mfccDelta gtcc、gtccDelta, gtccDeltaDelta, spectralCrest, spectralDecrease, spectralEntropy spectralFlatness, spectralKurtosis, spectralRolloffPoint, spectralSkewness, spectralSlope, spectralSpread提取功能,设置相应的属性为true。例如,obj。mfcc= true, adds mfcc to the list of enabled features.
这个配置对应的突出特征提取管道:

请注意

因为audioFeatureExtractor重用中介表示,输出的特性audioFeatureExtractor可能不符合缺省配置相应的个人特征提取器的输出特性。

兼容性的考虑

全部展开

行为改变R2020b

扩展功能

介绍了R2019b