主要内容

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 = true);audioIn barkSpectralCentroid =提取(aFE);
如果你指定一个默认的barkSpectrum使用setExtractorParameters,那么默认的树皮光谱谱描述符的输入。例如,如果您的电话setExtractorParameters (aFE“barkSpectrum NumBands = 40),然后aFE返回的质心40-band树皮频谱。

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

数据类型:字符|字符串

这个属性是只读的。

总数量的输出特性提取当前对象的配置,指定为一个正整数。FeatureVectorLength等于第二维度的输出提取函数。

数据类型:|

特征提取

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

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

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

  • FrequencyRange——在赫兹频率提取的光谱范围,指定为一个双元素向量[0,范围越来越多的SampleRate/ 2)。如果未指定的,FrequencyRange默认为[0,SampleRate/ 2)

  • SpectrumType——光谱类型,指定为“权力”“级”。如果未指定的,SpectrumType默认为“权力”

  • WindowNormalization——应用标准化窗口,指定为真正的。如果未指定的,WindowNormalization默认为真正的

数据类型:逻辑

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

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

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

  • FrequencyRange——在赫兹频率提取的光谱范围,指定为一个双元素向量[0,范围越来越多的SampleRate/ 2)。如果未指定的,FrequencyRange默认为[0,SampleRate/ 2)

  • SpectrumType——光谱类型,指定为“权力”“级”。如果未指定的,SpectrumType默认为“权力”

  • NumBands——梅尔乐队的数量,指定为一个整数。如果未指定的,NumBands默认为32

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

  • WindowNormalization——应用标准化窗口,指定为真正的。如果未指定的,WindowNormalization默认为真正的

  • FilterBankDesignDomain——域的滤波器组设计,指定为“线性”“扭曲”。如果未指定的,FilterBankDesignDomain默认为“线性”

数据类型:逻辑

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

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

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

  • FrequencyRange——在赫兹频率提取的光谱范围,指定为一个双元素向量[0,范围越来越多的SampleRate/ 2)。如果未指定的,FrequencyRange默认为[0,SampleRate/ 2)

  • SpectrumType——光谱类型,指定为“权力”“级”。如果未指定的,SpectrumType默认为“权力”

  • NumBands——树皮乐队的数量,指定为一个整数。如果未指定的,NumBands默认为32

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

  • WindowNormalization——应用标准化窗口,指定为真正的。如果未指定的,WindowNormalization默认为真正的

  • FilterBankDesignDomain——域的滤波器组设计,指定为“线性”“扭曲”。如果未指定的,FilterBankDesignDomain默认为“线性”

数据类型:逻辑

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

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

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

  • FrequencyRange——在赫兹频率提取的光谱范围,指定为一个双元素向量[0,范围越来越多的SampleRate/ 2)。如果未指定的,FrequencyRange默认为[0,SampleRate/ 2)

  • SpectrumType——光谱类型,指定为“权力”“级”。如果未指定的,SpectrumType默认为“权力”

  • NumBands——ERB乐队的数量,指定为一个整数。如果未指定的,NumBands默认为(即:hz2erb(FrequencyRange (2))hz2erb(FrequencyRange (1)))

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

  • WindowNormalization——应用标准化窗口,指定为真正的。如果未指定的,WindowNormalization默认为真正的

数据类型:逻辑

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

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

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

  • NumCoeffs——返回系数的数量为每个窗口中,指定为一个正整数。如果未指定的,NumCoeffs默认为13

  • DeltaWindowLength——三角洲窗口长度指定为奇数大于2。如果未指定的,DeltaWindowLength默认为9。这个参数影响mfccDeltamfccDeltaDelta特性。

  • 整改——指定为类型的非线性整流“日志”“立方根”

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

数据类型:逻辑

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

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

数据类型:逻辑

MFCC提取δ,指定为真正的

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

数据类型:逻辑

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

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

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

  • NumCoeffs——返回系数的数量为每个窗口中,指定为一个正整数。如果未指定的,NumCoeffs默认为13

  • DeltaWindowLength——三角洲窗口长度指定为奇数大于2。如果未指定的,DeltaWindowLength默认为9。这个参数影响gtccDeltagtccDeltaDelta特性。

  • 整改——指定为类型的非线性整流“日志”“立方根”

的gammatone cepstral系数计算使用erbSpectrum

数据类型:逻辑

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

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

数据类型:逻辑

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

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

数据类型:逻辑

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

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

数据类型:逻辑

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

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

数据类型:逻辑

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

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

数据类型:逻辑

提取谱熵,指定为真正的

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

数据类型:逻辑

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

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

数据类型:逻辑

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

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

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

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

  • NormType——规范类型用来计算谱通量,指定为12。如果未指定的,NormType默认为2

数据类型:逻辑

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

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

数据类型:逻辑

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

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

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

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

  • 阈值——滚边点阈值,指定为一个标量范围(0,1)。如果未指定的,阈值默认为0.95

数据类型:逻辑

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

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

数据类型:逻辑

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

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

数据类型:逻辑

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

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

数据类型:逻辑

提取音高,指定为真正的

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

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

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

  • 范围——范围内搜索赫兹的音高,指定为一个双元素增加值的行向量。如果未指定的,范围默认为[50400]

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

数据类型:逻辑

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

数据类型:逻辑

提取零点交叉率,指定为真正的

讨论二阶导数过零率的设定参数提取、使用setExtractorParameters:

setExtractorParameters (aFE“zerocrossrate”名称=值)
讨论二阶导数过零率可变的参数提取是:

  • 方法——计算方法讨论二阶导数过零率,指定为“差异”“比较”。如果未指定的,方法,默认为“差异”。有关更多信息,请参见zerocrossrate

  • 水平——信号电平交叉率的计算,指定为一个真正的标量。audioFeatureExtractor减去的水平从信号值,然后发现零交叉。如果未指定的,水平默认为0

  • 阈值——阈值之上和之下水平交叉率计算值,指定为一个真正的标量。audioFeatureExtractor组中的所有的输入值范围(- - - - - -阈值,阈值]0然后发现零交叉。如果未指定的,阈值默认为0

  • TransitionEdge——转换包括计算零交叉时,指定为“下降”,“上升”,或“两个”。如果您指定“下降”,只有负向的转换计算。如果您指定“上升”,只有正向的转换计算。如果未指定的,TransitionEdge默认为“两个”

  • ZeroPositive——符号惯例,指定为一个逻辑标量。如果您指定ZeroPositive作为真正的,然后0被认为是积极的。如果您指定ZeroPositive作为,然后audioFeatureExtractor认为0,1,+ 1有明显的迹象的公约标志函数。如果未指定的,ZeroPositive默认为

数据类型:逻辑

提取短时能量,指定为真正的。短时能量计算使用

sTE =总和(xbw。^ 2, 1),

在哪里xbw缓冲和窗口的信号。

例如:线性调频函数

生成一个啁啾取样1 kHz 3秒钟。瞬时频率为100赫兹 t = 0 和十字架200 Hz t = 1 第二。把信号分成103 -样本段与43个样本之间的重叠相邻段。窗口每一段周期汉明窗。

fs = 1 e3;x =唧唧声(0:1 / fs: 3100、1200);赢得=汉明(103“周期”);也不要= 43;[xb, ~] =缓冲区(x,长度(赢),也不要,“nodelay”);xbw = xb。*赢;

使用定义计算短时能量。

Edef =总和(xbw。^ 2, 1) ';

使用audioFeatureExtractor计算短时能量。

=上涨提取(audioFeatureExtractor (shortTimeEnergy = true,SampleRate = fs,窗口=赢,OverlapLength =也不要),x);

确认两个程序给相同的短时能量。

dff = max (abs (EaFE-Edef))
dff = 0

数据类型:逻辑

对象的功能

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

例子

全部折叠

读入一个音频信号。

[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 = true,mfccDelta = true,mfccDeltaDelta = true,= true,spectralCentroid = true,zerocrossrate = true,shortTimeEnergy = true);

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

特点=提取(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 zerocrossrate: 42 shortTimeEnergy: 43

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

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

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

随着时间的推移图讨论二阶导数过零率。

情节(t)特性(:,idx.zerocrossrate))标题(“零点交叉率”)包含(“时间(s)”)

图包含一个坐标轴对象。坐标轴对象与标题讨论二阶导数过零率包含一个类型的对象。

随着时间的推移图的短时能量。

情节(t)特性(:,idx.shortTimeEnergy))标题(“短时能量”)包含(“时间(s)”)

图包含一个坐标轴对象。坐标轴对象与标题短时能量包含一个类型的对象。

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

文件夹= 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 (e3 SampleRate = 44.1,melSpectrum = true,barkSpectrum = true,erbSpectrum = true,linearSpectrum = true);

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

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

规格变量收集回来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

使用plotFeatures与一个可视化的音频特征提取audioFeatureExtractor对象。

从文件中读入一个音频信号。

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

创建一个audioFeatureExtractor对象,提取gammatone cepstral系数(GTCCs)和GTCCs的三角洲。设置SampleRate房地产对音频信号的采样率,并使用其他属性的默认值。

afe = audioFeatureExtractor (SampleRate = fs, gtcc = true, gtccDelta = true);

音频信号的特征提取。

audioIn plotFeatures (afe)

{“字符串”:“图audioFeatureExtractor包含2轴uipanel类型的对象和另一个对象。坐标轴对象1标题GTCC包含一个类型的对象的形象。坐标轴对象2标题GTCC三角洲包含一个类型的对象的形象。”、“泰克斯”(“GTCC”、“GTCC三角洲”),“乳胶”:[]}

算法

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

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

aFE = audioFeatureExtractor (SpectralDescriptorInput =“barkSpectrum”,spectralCentroid = true,spectralFlux = true,= true,harmonicRatio = true,mfccDeltaDelta = true)
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=真正的,adds mfcc to the list of enabled features.
这个配置对应的突出特征提取管道。

请注意

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

扩展功能

版本历史

介绍了R2019b

全部展开