audioFeatureExtractor

简化音频特征提取

描述

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

创建

描述

aFE= audioFeatureExtractor ()创建具有默认属性值的音频特征提取。

例子

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

属性

全部展开

主要性能

分析窗口,指定作为一个真正的载体。

数据类型:|

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

数据类型:|

FFT长度,指定为整数。默认的,[]是指该FFT长度等于窗口长度,(numel(窗口))。

数据类型:|

输入采样率,单位为Hz,指定为一个非负的标量。

数据类型:|

输入光谱描述符,指定为“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带巴克谱的质心。

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

数据类型:烧焦|字符串

特点要提取

提取片面线性光谱,指定为真正要么

对设定参数的线谱进行提取,使用setExtractorParams:

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

  • “FrequencyRange”- 以Hz为单位提取的频谱的频率范围,指定为逗号分隔的一对组成的“FrequencyRange”和一个在[0,SampleRate/ 2)。如果未指定的,频率范围默认[0,SampleRate/ 2)

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

数据类型:逻辑

提取单边mel谱,指定为真正要么

要设置参数的mel光谱提取,请使用setExtractorParams:

setExtractorParams(AFE,“melSpectrum”,“名称”,值)
mel谱提取的可设置参数为:

  • “FrequencyRange”- 以Hz为单位提取的频谱的频率范围,指定为逗号分隔的一对组成的“FrequencyRange”和一个在[0,SampleRate/ 2)。如果未指定的,频率范围默认[0,SampleRate/ 2)

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

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

  • “正常化”——归一化应用于带通滤波器,指定为由“正常化”“带宽”,“区域”, 要么“没有”。如果未指定的,正常化默认“带宽”

数据类型:逻辑

提取单侧树皮光谱,指定为真正要么

要设置的巴克谱提取,使用参数setExtractorParams:

setExtractorParams(AFE,“barkSpectrum”,“名称”,值)
对于巴克谱提取可设置的参数是:

  • “FrequencyRange”- 以Hz为单位提取的频谱的频率范围,指定为逗号分隔的一对组成的“FrequencyRange”和一个在[0,SampleRate/ 2)。如果未指定的,频率范围默认[0,SampleRate/ 2)

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

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

  • “正常化”——归一化应用于带通滤波器,指定为由“正常化”“带宽”,“区域”, 要么“没有”。如果未指定的,正常化默认“带宽”

数据类型:逻辑

提取单边ERB谱,指定为真正要么

到的ERB频谱提取,使用设定的参数setExtractorParams:

setExtractorParams(AFE,“erbSpectrum”,“名称”,值)
ERB光谱提取可设置参数为:

  • “FrequencyRange”- 以Hz为单位提取的频谱的频率范围,指定为逗号分隔的一对组成的“FrequencyRange”和一个在[0,SampleRate/ 2)。如果未指定的,频率范围默认[0,SampleRate/ 2)

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

  • “NumBands”——ERB频带数,指定为逗号分隔对,由“NumBands”和一个整数。如果未指定的,NumBands默认(即:hz2erb(FrequencyRange(2)) -hz2erb(FrequencyRange(1)))

  • “正常化”——归一化应用于带通滤波器,指定为由“正常化”“带宽”,“区域”, 要么“没有”。如果未指定的,正常化默认“带宽”

数据类型:逻辑

提取mel-频率倒谱系数(MFCC),指定为真正要么

设定MFCC萃取的参数,使用setExtractorParams:

setExtractorParams(AFE,“mfcc”,“名称”,值)
MFCC萃取的可设置参数为:

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

  • “DeltaWindowLength”——指定为逗号分隔的对组成的窗口长度“DeltaWindowLength”2或一个奇整数。如果未指定的,DeltaWindowLength默认2。此参数影响mfccDeltamfccDeltaDelta特征。

  • “整风”- 类型非线性整流的,指定为逗号分隔的一对组成的“整风”“日志”要么“立方根”

梅尔频率倒谱系数都使用计算出的melSpectrum

数据类型:逻辑

提取MFCC的delta,指定为真正要么

增量MFCC是基于所提取的MFCC计算。参数设置MFCC影响mfccDelta

数据类型:逻辑

提取MFCC的delta-delta,指定为真正要么

根据提取的MFCC值计算出了delta-delta的MFCC值。参数设置MFCC影响mfccDeltaDelta

数据类型:逻辑

提取伽玛酮倒谱系数(GTCC),指定为真正要么

要的GTCC提取,使用设定的参数setExtractorParams:

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

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

  • “DeltaWindowLength”——指定为逗号分隔的对组成的窗口长度“DeltaWindowLength”2或一个奇整数。如果未指定的,DeltaWindowLength默认2。此参数影响gtccDeltagtccDeltaDelta特征。

  • “整风”- 类型非线性整流的,指定为逗号分隔的一对组成的“整风”“日志”要么“立方根”

该伽马通倒谱系数所使用的计算erbSpectrum

数据类型:逻辑

GTCC的提取物增量,指定为真正要么

增量GTCC是基于提取的GTCC计算的。参数设置GTCC影响gtccDelta

数据类型:逻辑

提取GTCC的delta,指定为真正要么

δ-增量GTCC是基于所提取的GTCC计算。参数设置GTCC影响gtccDeltaDelta

数据类型:逻辑

提取谱质心,指定为真正要么

频谱重心被计算在以下的光谱表示中的一个,由指定的SpectralDescriptorInput属性:

数据类型:逻辑

提取频谱波峰,指定为真正要么

谱波峰是根据下列谱表示之一计算出来的SpectralDescriptorInput属性:

数据类型:逻辑

提取光谱衰减,指定为真正要么

谱衰减是根据下列谱表示之一计算的,如SpectralDescriptorInput属性:

数据类型:逻辑

提取谱熵,指定为真正要么

谱熵是根据下列谱表示之一计算的,由SpectralDescriptorInput属性:

数据类型:逻辑

提取光谱平整度,指定为真正要么

该频谱平坦度的计算在以下的频谱表示中的一个,由指定的SpectralDescriptorInput属性:

数据类型:逻辑

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

光谱通量是根据下列光谱表示法之一计算的SpectralDescriptorInput属性:

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

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

  • “NormType”- 模型用来计算谱通量,指定为逗号分隔的一对组成的“NormType”1要么2。如果未指定的,NormType默认2

数据类型:逻辑

提取光谱峰度,指定为真正要么

频谱的峰度,计算在以下的光谱表示中的一个,由指定的SpectralDescriptorInput属性:

数据类型:逻辑

提取的频谱滚降点,指定为真正要么

谱衰减点是根据下列谱表示之一计算的,由SpectralDescriptorInput属性:

要设置的频谱滚降点的提取,使用参数setExtractorParams:

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

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

数据类型:逻辑

提取光谱偏度,指定为真正要么

谱偏度是根据下列谱表示之一计算的,由SpectralDescriptorInput属性:

数据类型:逻辑

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

谱斜率计算在以下的光谱表示中的一个,由指定的SpectralDescriptorInput属性:

数据类型:逻辑

提取频谱扩展,指定为真正要么

方法指定的下列光谱表示之一计算光谱扩展SpectralDescriptorInput属性:

数据类型:逻辑

提取指定为的节距真正要么

若要设置节距提取的参数,请使用setExtractorParams:

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

  • “方法”- 方法用于计算音调,指定为逗号分隔的一对组成的“方法”“PEF”,“NCF”,“CEP”,“LHS”, 要么“SRH”。如果未指定的,方法默认“NCF”。有关可用的基音提取方法的描述,请参阅沥青

  • “范围”——范围内搜索以Hz为单位的音高,指定为逗号分隔对组成“范围”和一个值递增的二元行向量。如果未指定的,范围默认[50400]

  • “MedianFilterLength”- 平均滤波器长度用于随时间平滑音调估计,指定为逗号分隔的一对组成的“MedianFilterLength”一个正整数。如果未指定的,MedianFilterLength默认1(无中值滤波)。

数据类型:逻辑

提取谐波比,指定为真正要么

数据类型:逻辑

对象的功能

提取 提取音频功能
setExtractorParams 为单个特征提取器设置非默认参数值
信息 输出映射和单个特征提取器参数

例子

全部收缩

读入音频信号。

[AUDIOIN,FS] = audioread(“计数-16-44p1单 -  15secs.wav”);

创建一个audioFeatureExtractor提取音频信号的MFCC、MFCC、delta-delta MFCC、pitch和谱线质心的对象。使用一个有20ms重叠的30ms分析窗口。

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

调用提取从音频信号中提取音频特征。

特点=提取(aFE audioIn);

采用信息以确定所述特征提取矩阵对应于所请求的基音提取的哪一列。

IDX =信息(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))标题(“节”)xlabel('时间(s)')ylabel(的频率(赫兹))

创建一个指向audio Toolbox®中包含的音频样本的音频数据存储。

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

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

keepFile = cellfun(@(X)含有(X,'44p1'),ads.Files);广告=子集(广告,keepFile);

转换数据到阵列。数组仅当您显式地使用收集。MATLAB®自动优化排队计算,减少通过数据的次数。如果您拥有并行计算工具箱™,则可以将计算分散到多台计算机上。音频数据表示为-乘1高单元数组,其中是音频数据存储中的文件数。

adsTall =高(广告)
使用“本地”配置文件启动并行池(parpool)…连接到并行池(worker数量:4). adsTall = Mx1高cell array {539648x1 double} {227497x1 double} {8000x1 double} {685056x1 double} {882688x2 double} {1116283x2 double} {505726x2 double} {3195904x2 double}:::

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

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

定义cellfun函数使音频特征提取自每个单元格的高数组。调用收集来计算高数组。

specsTall = cellfun(@(x)的提取物(AFE,X),adsTall,“UniformOutput”,假);规格=聚集(specsTall);
评估使用并行池“本地”高表达: - 的1遍1:在13秒评价完成在13秒完成

规格从收集返回的变量是一个numFiles-by-1单元数组,其中numFiles是数据存储中的文件数量。单元格数组的每个元素都是numHops-通过-numFeatures-通过-numChannels数组,其中跳数和通道数取决于音频文件的通道长度和数量,而特性的数量是音频数据中请求的特性的数量。

numFiles = numel(规格)
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的deltaaudioFeatureExtractor为:

aFE = audioFeatureExtractor (“SpectralDescriptorInput”,“barkSpectrum”,“spectralCentroid”,真正,“spectralFlux”,真正,“节”,真正,“harmonicRatio”,真正,“mfccDeltaDelta”,真正)
属性窗口:[1024×1双]OverlapLength: 512采样率: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可以不通过相应的单独特征提取与特征输出的默认配置相对应。

介绍了R2019b