audioFeatureExtractor
简化音频特征提取
描述
audioFeatureExtractor
多个音频特征提取器封装到一个精简和模块化的实现。
创建
描述
创建一个音频特征提取器默认属性值。aFE
= audioFeatureExtractor ()
指定默认的属性aFE
= audioFeatureExtractor (名称=值
)aFE
使用一个或多个名称参数。
属性
主要特性
窗口
- - - - - -分析窗口
汉明(1024年,“周期性”)
(默认)|真正的向量
分析窗口中,指定为一个真正的向量。
数据类型:单
|双
OverlapLength
- - - - - -重叠相邻分析窗口的长度
512年
(默认)|整数范围在[0,元素个数(窗口
)
)
窗口
)重叠相邻的长度分析窗口,指定为一个整数范围在[0,元素个数(窗口)
)。
数据类型:单
|双
FFTLength
- - - - - -FFT长度
[]
(默认)|正整数
FFT长度指定为一个整数。的默认值[]
意味着FFT长度等于窗口长度元素个数(窗口)
。
数据类型:单
|双
SampleRate
- - - - - -输入采样率(赫兹)
44100年
(默认)|积极的标量
输入采样率在赫兹,指定为一个积极的标量。
数据类型:单
|双
SpectralDescriptorInput
- - - - - -输入谱描述符
“linearSpectrum”
(默认)|“melSpectrum”
|“barkSpectrum”
|“erbSpectrum”
输入谱描述符指定为“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
- - - - - -特征提取的输出
正整数
特征提取
linearSpectrum
- - - - - -提取线性光谱
假
(默认)|真正的
提取的线性范围,指定为真正的
或假
。
设置参数的线性光谱提取、使用setExtractorParameters
:
setExtractorParameters (aFE“linearSpectrum”名称=值)
FrequencyRange
——在赫兹频率提取的光谱范围,指定为一个双元素向量[0,范围越来越多的SampleRate/ 2)。如果未指定的,FrequencyRange
默认为[0,
。SampleRate
/ 2)SpectrumType
——光谱类型,指定为“权力”
或“级”
。如果未指定的,SpectrumType
默认为“权力”
。WindowNormalization
——应用标准化窗口,指定为真正的
或假
。如果未指定的,WindowNormalization
默认为真正的
。
数据类型:逻辑
melSpectrum
- - - - - -提取梅尔频谱
假
(默认)|真正的
提取片面梅尔频谱,指定为真正的
或假
。
梅尔的设置参数谱提取、使用setExtractorParameters
:
setExtractorParameters (aFE“melSpectrum”名称=值)
FrequencyRange
——在赫兹频率提取的光谱范围,指定为一个双元素向量[0,范围越来越多的SampleRate/ 2)。如果未指定的,FrequencyRange
默认为[0,
。SampleRate
/ 2)SpectrumType
——光谱类型,指定为“权力”
或“级”
。如果未指定的,SpectrumType
默认为“权力”
。NumBands
——梅尔乐队的数量,指定为一个整数。如果未指定的,NumBands
默认为32
。FilterBankNormalization
——指定为标准化应用于带通滤波器“带宽”
,“区域”
,或“没有”
。如果未指定的,FilterBankNormalization
默认为“带宽”
。WindowNormalization
——应用标准化窗口,指定为真正的
或假
。如果未指定的,WindowNormalization
默认为真正的
。FilterBankDesignDomain
——域的滤波器组设计,指定为“线性”
或“扭曲”
。如果未指定的,FilterBankDesignDomain
默认为“线性”
。
数据类型:逻辑
barkSpectrum
- - - - - -树皮中提取光谱
假
(默认)|真正的
树皮中提取的光谱,指定为真正的
或假
。
树皮的设置参数谱提取、使用setExtractorParameters
:
setExtractorParameters (aFE“barkSpectrum”名称=值)
FrequencyRange
——在赫兹频率提取的光谱范围,指定为一个双元素向量[0,范围越来越多的SampleRate/ 2)。如果未指定的,FrequencyRange
默认为[0,
。SampleRate
/ 2)SpectrumType
——光谱类型,指定为“权力”
或“级”
。如果未指定的,SpectrumType
默认为“权力”
。NumBands
——树皮乐队的数量,指定为一个整数。如果未指定的,NumBands
默认为32
。FilterBankNormalization
——指定为标准化应用于带通滤波器“带宽”
,“区域”
,或“没有”
。如果未指定的,FilterBankNormalization
默认为“带宽”
。WindowNormalization
——应用标准化窗口,指定为真正的
或假
。如果未指定的,WindowNormalization
默认为真正的
。FilterBankDesignDomain
——域的滤波器组设计,指定为“线性”
或“扭曲”
。如果未指定的,FilterBankDesignDomain
默认为“线性”
。
数据类型:逻辑
erbSpectrum
- - - - - -提取ERB频谱
假
(默认)|真正的
提取片面ERB频谱,指定为真正的
或假
。
设置参数ERB光谱提取、使用setExtractorParameters
:
setExtractorParameters (aFE“erbSpectrum”名称=值)
FrequencyRange
——在赫兹频率提取的光谱范围,指定为一个双元素向量[0,范围越来越多的SampleRate/ 2)。如果未指定的,FrequencyRange
默认为[0,
。SampleRate
/ 2)SpectrumType
——光谱类型,指定为“权力”
或“级”
。如果未指定的,SpectrumType
默认为“权力”
。NumBands
——ERB乐队的数量,指定为一个整数。如果未指定的,NumBands
默认为(即:
。hz2erb
(FrequencyRange (2))hz2erb
(FrequencyRange (1)))FilterBankNormalization
——指定为标准化应用于带通滤波器“带宽”
,“区域”
,或“没有”
。如果未指定的,FilterBankNormalization
默认为“带宽”
。WindowNormalization
——应用标准化窗口,指定为真正的
或假
。如果未指定的,WindowNormalization
默认为真正的
。
数据类型:逻辑
mfcc
- - - - - -提取mel-frequency cepstral系数(MFCC)
假
(默认)|真正的
提取mel-frequency cepstral系数(MFCC),指定为真正的
或假
。
设置MFCC参数提取、使用setExtractorParameters
:
setExtractorParameters (aFE“mfcc”名称=值)
NumCoeffs
——返回系数的数量为每个窗口中,指定为一个正整数。如果未指定的,NumCoeffs
默认为13
。DeltaWindowLength
——三角洲窗口长度指定为奇数大于2。如果未指定的,DeltaWindowLength
默认为9
。这个参数影响mfccDelta
和mfccDeltaDelta
特性。整改
——指定为类型的非线性整流“日志”
或“立方根”
。
的mel-frequency cepstral系数计算使用melSpectrum。
数据类型:逻辑
mfccDelta
- - - - - -提取δ(MFCC
假
(默认)|真正的
δ(MFCC提取,指定为真正的
或假
。
三角洲MFCC计算基于提取的MFCC。参数设置mfcc
影响mfccDelta
。
数据类型:逻辑
mfccDeltaDelta
- - - - - -的MFCC提取δ
假
(默认)|真正的
MFCC提取δ,指定为真正的
或假
。
δ的MFCC计算基于提取的MFCC。参数设置mfcc
影响mfccDeltaDelta
。
数据类型:逻辑
gtcc
- - - - - -提取gammatone cepstral系数(GTCC)
假
(默认)|真正的
提取gammatone cepstral系数(GTCC),指定为真正的
或假
。
GTCC的设置参数提取、使用setExtractorParameters
:
setExtractorParameters (aFE“gtcc”名称=值)
NumCoeffs
——返回系数的数量为每个窗口中,指定为一个正整数。如果未指定的,NumCoeffs
默认为13
。DeltaWindowLength
——三角洲窗口长度指定为奇数大于2。如果未指定的,DeltaWindowLength
默认为9
。这个参数影响gtccDelta
和gtccDeltaDelta
特性。
整改
——指定为类型的非线性整流“日志”
或“立方根”
。
的gammatone cepstral系数计算使用erbSpectrum。
数据类型:逻辑
gtccDelta
- - - - - -提取GTCC的δ
假
(默认)|真正的
提取GTCC的三角洲,指定为真正的
或假
。
三角洲GTCC基于提取的GTCC的计算。参数设置gtcc
影响gtccDelta
。
数据类型:逻辑
gtccDeltaDelta
- - - - - -提取GTCC的δ
假
(默认)|真正的
提取GTCC的δ,指定为真正的
或假
。
的δGTCC基于提取的GTCC的计算。参数设置gtcc
影响gtccDeltaDelta
。
数据类型:逻辑
spectralCentroid
- - - - - -提取频谱质心
假
(默认)|真正的
spectralCrest
- - - - - -提取光谱波峰
假
(默认)|真正的
spectralDecrease
- - - - - -提取光谱减少
假
(默认)|真正的
spectralEntropy
- - - - - -提取谱熵
假
(默认)|真正的
spectralFlatness
- - - - - -提取光谱平坦
假
(默认)|真正的
spectralFlux
- - - - - -提取谱通量
假
(默认)|真正的
提取谱通量,指定为真正的
或假
。
谱通量计算的光谱表征后,指定的SpectralDescriptorInput属性:
谱通量的设置参数提取、使用setExtractorParameters
:
setExtractorParameters (aFE“spectralFlux”名称=值)
NormType
——规范类型用来计算谱通量,指定为1
或2
。如果未指定的,NormType
默认为2
。
数据类型:逻辑
spectralKurtosis
- - - - - -提取光谱峰态
假
(默认)|真正的
spectralRolloffPoint
- - - - - -提取光谱滚边点
假
(默认)|真正的
提取光谱滚边点,指定为真正的
或假
。
光谱滚边点计算的光谱表征后,指定的SpectralDescriptorInput属性:
设置参数的光谱滚边点提取、使用setExtractorParameters
:
setExtractorParameters (aFE“spectralRolloffPoint”名称=值)
阈值
——滚边点阈值,指定为一个标量范围(0,1)。如果未指定的,阈值
默认为0.95
。
数据类型:逻辑
spectralSkewness
- - - - - -提取光谱偏态
假
(默认)|真正的
spectralSlope
- - - - - -提取光谱斜率
假
(默认)|真正的
spectralSpread
- - - - - -提取光谱扩散
假
(默认)|真正的
球场
- - - - - -提取音高
假
(默认)|真正的
提取音高,指定为真正的
或假
。
设置参数的提取,使用setExtractorParameters
:
setExtractorParameters (aFE“节”名称=值)
方法
——方法用于计算,指定为“PEF”
,“NCF”
,“CEP”
,“韩”
,或“SRH”
。如果未指定的,方法
默认为“NCF”
。可用沥青萃取方法的描述,请参阅球场
。范围
——范围内搜索赫兹的音高,指定为一个双元素增加值的行向量。如果未指定的,范围
默认为[50400]
。MedianFilterLength
——中值滤波器长度用来光滑音高估计随着时间的推移,指定为一个正整数。如果未指定的,MedianFilterLength
默认为1
(无中值滤波)。
数据类型:逻辑
harmonicRatio
- - - - - -提取谐波比率
假
(默认)|真正的
提取谐波比率,指定为真正的
或假
。
数据类型:逻辑
zerocrossrate
- - - - - -提取讨论二阶导数过零率
假
(默认)|真正的
提取零点交叉率,指定为真正的
或假
。
讨论二阶导数过零率的设定参数提取、使用setExtractorParameters
:
setExtractorParameters (aFE“zerocrossrate”名称=值)
方法
——计算方法讨论二阶导数过零率,指定为“差异”
或“比较”
。如果未指定的,方法
,默认为“差异”
。有关更多信息,请参见zerocrossrate
。水平
——信号电平交叉率的计算,指定为一个真正的标量。audioFeatureExtractor
减去的水平
从信号值,然后发现零交叉。如果未指定的,水平
默认为0
。阈值
——阈值之上和之下水平
交叉率计算值,指定为一个真正的标量。audioFeatureExtractor
组中的所有的输入值范围(- - - - - -
来阈值
,阈值
]0
然后发现零交叉。如果未指定的,阈值
默认为0
。TransitionEdge
——转换包括计算零交叉时,指定为“下降”
,“上升”
,或“两个”
。如果您指定“下降”
,只有负向的转换计算。如果您指定“上升”
,只有正向的转换计算。如果未指定的,TransitionEdge
默认为“两个”
。ZeroPositive
——符号惯例,指定为一个逻辑标量。如果您指定ZeroPositive
作为真正的
,然后0
被认为是积极的。如果您指定ZeroPositive
作为假
,然后audioFeatureExtractor
认为0
,1
,+ 1
有明显的迹象的公约标志
函数。如果未指定的,ZeroPositive
默认为假
。
数据类型:逻辑
shortTimeEnergy
- - - - - -提取短时能量
假
(默认)|真正的
提取短时能量,指定为真正的
或假
。短时能量计算使用
sTE =总和(xbw。^ 2, 1)
,
在哪里xbw
缓冲和窗口的信号。
例如:线性调频函数
生成一个啁啾取样1 kHz 3秒钟。瞬时频率为100赫兹 和十字架200 Hz 第二。把信号分成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
创建一个特征提取管道根据你选择的功能。为了减少计算,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
可能不符合缺省配置相应的个人特征提取器的输出特性。
扩展功能
C / c++代码生成
生成C和c++代码使用MATLAB®编码器™。
使用笔记和限制:
你不能直接生成代码
audioFeatureExtractor
。您可以生成C / c++代码从函数返回generateMATLABFunction
。zerocrossrate
代码生成不支持输入多路时禁用动态内存分配。金宝app
GPU数组
加速代码运行在一个图形处理单元(GPU)使用并行计算工具箱™。
这个函数完全支持GPU数组。金宝app有关更多信息,请参见运行在GPU MATLAB函数(并行计算工具箱)。
版本历史
介绍了R2019bR2022b:可视化特征提取
使用plotFeatures
目标函数提取音频可视化功能。
R2020b:计算的增量和delta-deltas
的audioDelta
函数是用于计算mfccDelta
,mfccDeltaDelta
,gtccDelta
,gtccDeltaDelta
。的audioDelta
算法有不同的创业行为比之前的算法。所使用的默认窗口长度计算增量已经改变了2
来9
。δ窗口的长度2
不再支持。金宝app
Abrir比如
这种版本modificada德埃斯特比如。害怕Desea abrir埃斯特比如con sus modificaciones吗?
第一de MATLAB
Ha事实clic en联合国围绕此时一个埃斯特第一de MATLAB:
Ejecute el第一introduciendolo en la ventana de第一de MATLAB。洛杉矶navegadores网络没有admiten第一de MATLAB。
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。