audioFeatureExtractor

流线型音频特征提取

描述

audioFeatureExtractor封装多种音频特征提取为精简和模块化的实施。

创建

描述

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

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

属性

展开全部

主要性能

分析窗口,指定为实向量。

数据类型:|

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

数据类型:|

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

数据类型:|

输入采样率(Hz),指定为非负标量。

数据类型:|

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

受此属性谱描述符是:

输入到频谱描述符光谱是相同的,从相应的特征的输出:

例如,如果你设置“SpectralDescriptorInput”“barkSpectrum”,“spectralCentroid”真正的, 然后AFE返回默认巴克谱重心。

[audioIn, fs] = audioread ('计数-16-44p1单 -  15secs.wav');AFE = audioFeatureExtractor(“采样率”fs,...“SpectralDescriptorInput”“barkSpectrum”...“spectralCentroid”,真正);barkSpectralCentroid =提取物(AFE,AUDIOIN);
如果指定一个非默认barkSpectrum使用setExtractorParams,则非默认巴克谱是输入到频谱描述符。例如,如果你打电话setExtractorParams (aFE“barkSpectrum”、“NumBands”, 40), 然后AFE返回一个40带巴克谱的质心。

setExtractorParams(AFE,“barkSpectrum”“NumBands”,40)bark40SpectralCentroid =提取物(AFE,AUDIOIN);

数据类型:烧焦|

特征提取

提取单边线性谱,指定为真正的

到的线性频谱提取,使用设定的参数setExtractorParams

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

  • “频率范围”——提取的频谱的频率范围,单位为Hz,表示由“频率范围”和在范围[0越来越多的两元件载体,采样率/ 2]。如果没有指定,频率范围默认为[0,采样率/ 2]

  • “SpectrumType”- 频谱型,指定为逗号分隔的一对组成的“SpectrumType”“功率”“大小”。如果没有指定,SpectrumType默认为“功率”

数据类型:合乎逻辑

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

到的梅尔频谱提取,使用设定的参数setExtractorParams

setExtractorParams(AFE,“melSpectrum”“名称”,值)
对于梅尔频谱提取可设置的参数是:

  • “频率范围”——提取的频谱的频率范围,单位为Hz,表示由“频率范围”和在范围[0越来越多的两元件载体,采样率/ 2]。如果没有指定,频率范围默认为[0,采样率/ 2]

  • “SpectrumType”- 频谱型,指定为逗号分隔的一对组成的“SpectrumType”“功率”“大小”。如果没有指定,SpectrumType默认为“功率”

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

  • “归一化”- 规范化施加到带通滤波器,指定为逗号分隔的一对组成的“归一化”“带宽”“区域”,或“没有”。如果没有指定,归一化默认为“带宽”

数据类型:合乎逻辑

提取片面巴克谱,指定为真正的

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

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

  • “频率范围”——提取的频谱的频率范围,单位为Hz,表示由“频率范围”和在范围[0越来越多的两元件载体,采样率/ 2]。如果没有指定,频率范围默认为[0,采样率/ 2]

  • “SpectrumType”- 频谱型,指定为逗号分隔的一对组成的“SpectrumType”“功率”“大小”。如果没有指定,SpectrumType默认为“功率”

  • “NumBands”- 数巴克频带的,指定为逗号分隔的一对组成的“NumBands”和一个整数。如果没有指定,NumBands默认为32

  • “归一化”- 规范化施加到带通滤波器,指定为逗号分隔的一对组成的“归一化”“带宽”“区域”,或“没有”。如果没有指定,归一化默认为“带宽”

数据类型:合乎逻辑

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

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

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

  • “频率范围”——提取的频谱的频率范围,单位为Hz,表示由“频率范围”和在范围[0越来越多的两元件载体,采样率/ 2]。如果没有指定,频率范围默认为[0,采样率/ 2]

  • “SpectrumType”- 频谱型,指定为逗号分隔的一对组成的“SpectrumType”“功率”“大小”。如果没有指定,SpectrumType默认为“功率”

  • “NumBands”- 数ERB频带,指定为逗号分隔的一对组成的“NumBands”和一个整数。如果没有指定,NumBands默认为小区(hz2erb(FrequencyRange (2))hz2erb(FrequencyRange (1)))

  • “归一化”- 规范化施加到带通滤波器,指定为逗号分隔的一对组成的“归一化”“带宽”“区域”,或“没有”。如果没有指定,归一化默认为“带宽”

数据类型:合乎逻辑

提取梅尔频率倒谱系数(MFCC),指定为真正的

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

setExtractorParams(AFE,“MFCC”“名称”,值)
对于MFCC提取可设置参数如下:

  • “NumCoeffs”- 数对每个窗口返回的系数,指定为逗号分隔的一对组成的“NumCoeffs”和一个正整数。如果没有指定,NumCoeffs默认为13

  • “DeltaWindowLength”- 德尔塔窗口长度,指定为逗号分隔的一对组成的“DeltaWindowLength”2或者是一个奇数。如果没有指定,DeltaWindowLength默认为2。此参数影响mfccDeltamfccDeltaDelta特性。

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

计算了mel-频率倒谱系数melSpectrum

数据类型:合乎逻辑

MFCC的提取物增量,指定为真正的

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

数据类型:合乎逻辑

MFCC的提取物的Δ-增量,指定为真正的

δ-增量MFCC是基于所提取的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的提取物的Δ-增量,指定为真正的

δ-增量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 个人特征提取设置非默认的参数值
信息 输出映射和个体特征提取参数

例子

全部折叠

在读取的音频信号。

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

创建audioFeatureExtractor对象提取MFCC,δ-MFCC,δ-增量MFCC,俯仰和频谱音频信号的质心。具有20毫秒重叠使用30ms的分析窗口。

AFE = audioFeatureExtractor(...“采样率”fs,...“窗口”,汉明(圆(0.03 * FS)“周期性”),...“OverlapLength”,圆(0.02 * FS),...“MFCC”,真的,...“mfccDelta”,真的,...“mfccDeltaDelta”,真的,...“沥青”,真的,...“spectralCentroid”,真正);

呼叫提取从音频信号中提取音频特征。

特征提取物=(AFE,AUDIOIN);

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

idx = info (aFE)
IDX =结构体字段:mfcc: [1 23 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 34 35 36 36 37 38 39]频谱质心:40音高:41

绘制随时间变化的检测间距。

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

创建一个音频数据存储,它指向音频样本包含音频Toolbox®。

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

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

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

将数据转换为数组中。当你明确要求使用这些阵列只计算收集。MATLAB®通过数据最小化传递的数量自动优化排队计算。如果您有并行计算工具箱™,您可以在多台计算机传播计算。音频数据被表示为一个中号×1高细胞阵列,其中中号在音频数据存储的文件数量。

adsTall =高(广告)
开始使用“本地”轮廓平行池(parpool)......连接到并行池(工号:4)。adsTall =的Mx1高大单元阵列{539648x1双} {227497x1双} {8000x1双} {685056x1双} {882688x2双} {1116283x2双} {505726x2双} {3195904x2双}::::

创建audioFeatureExtractor目的从每个音频文件中提取mel谱、树皮谱、ERB谱和线谱。使用默认的分析窗口和重叠长度进行频谱提取。

AFE = audioFeatureExtractor('采样率',44.1e3,...'melSpectrum',真的,...“barkSpectrum”,真的,...'erbSpectrum',真的,...'linearSpectrum',真正);

定义一个cellfun功能,使得音频特征被从高大的阵列的每个细胞中提取。呼叫收集评价高阵列。

specsTall = cellfun (@ (x)提取(aFE x), adsTall,“UniformOutput”、假);规格=收集(specsTall);
使用并行池“local”对tall表达式求值:-通过1 / 1:在13秒内完成求值,在13秒内完成

眼镜从聚集返回的变量是numFiles×1单元阵列,其中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 =真,增加了对MFCC启用功能列表。
这种配置对应于突出特征提取管道:

注意

因为audioFeatureExtractor重用中介表示,该功能从输出audioFeatureExtractor可能不符合由相应的单个特征提取器输出的特征的默认配置。

介绍了在R2019b