流线型音频特征提取
audioFeatureExtractor
封装多种音频特征提取为精简和模块化的实施。
创建一个带有默认属性值的音频特征提取器。AFE
= audioFeatureExtractor()
用于指定非默认的属性AFE
= audioFeatureExtractor(名称,值
)AFE
使用一个或多个名称 - 值对的参数。
窗口
-分析窗口汉明(1024, “周期性”)
(默认)|真正的向量分析窗口,指定为实向量。
数据类型:单
|双
OverlapLength
-相邻的分析窗口的重叠长度512
(默认)|整数范围在[0,元素个数(窗口
)
)相邻的分析窗口的重叠长度,指定为在范围[0的整数,元素个数(窗口)
)。
数据类型:单
|双
FFTLength
-FFT长度[]
(默认)|正整数FFT长度,指定为整数。默认的,[]
,表示FFT长度等于窗口长度,(元素个数(窗口)
)。
数据类型:单
|双
采样率
-输入采样率(Hz)44100
(默认)|负的标量输入采样率(Hz),指定为非负标量。
数据类型:单
|双
SpectralDescriptorInput
-输入光谱描述符“linearSpectrum”
(默认)|“melSpectrum”
|“barkSpectrum”
|“erbSpectrum”
输入到频谱描述符,指定为“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);
数据类型:烧焦
|串
linearSpectrum
-提取线性光谱假
(默认)|真正的
提取单边线性谱,指定为真正的
或假
。
到的线性频谱提取,使用设定的参数setExtractorParams
:
setExtractorParams(AFE,“linearSpectrum”,“名称”,值)
“频率范围”
——提取的频谱的频率范围,单位为Hz,表示由“频率范围”
和在范围[0越来越多的两元件载体,采样率/ 2]。如果没有指定,频率范围
默认为[0,
。采样率
/ 2]
“SpectrumType”
- 频谱型,指定为逗号分隔的一对组成的“SpectrumType”
和“功率”
或“大小”
。如果没有指定,SpectrumType
默认为“功率”
。
数据类型:合乎逻辑
melSpectrum
-提取梅尔谱假
(默认)|真正的
提取片面梅尔频谱,指定为真正的
或假
。
到的梅尔频谱提取,使用设定的参数setExtractorParams
:
setExtractorParams(AFE,“melSpectrum”,“名称”,值)
“频率范围”
——提取的频谱的频率范围,单位为Hz,表示由“频率范围”
和在范围[0越来越多的两元件载体,采样率/ 2]。如果没有指定,频率范围
默认为[0,
。采样率
/ 2]
“SpectrumType”
- 频谱型,指定为逗号分隔的一对组成的“SpectrumType”
和“功率”
或“大小”
。如果没有指定,SpectrumType
默认为“功率”
。
“NumBands”
- 数梅尔带,指定为逗号分隔的一对组成的“NumBands”
和一个整数。如果没有指定,NumBands
默认为32
。
“归一化”
- 规范化施加到带通滤波器,指定为逗号分隔的一对组成的“归一化”
和“带宽”
,“区域”
,或“没有”
。如果没有指定,归一化
默认为“带宽”
。
数据类型:合乎逻辑
barkSpectrum
-提取巴克谱假
(默认)|真正的
提取片面巴克谱,指定为真正的
或假
。
要设置的巴克谱提取,使用参数setExtractorParams
:
setExtractorParams(AFE,“barkSpectrum”,“名称”,值)
“频率范围”
——提取的频谱的频率范围,单位为Hz,表示由“频率范围”
和在范围[0越来越多的两元件载体,采样率/ 2]。如果没有指定,频率范围
默认为[0,
。采样率
/ 2]
“SpectrumType”
- 频谱型,指定为逗号分隔的一对组成的“SpectrumType”
和“功率”
或“大小”
。如果没有指定,SpectrumType
默认为“功率”
。
“NumBands”
- 数巴克频带的,指定为逗号分隔的一对组成的“NumBands”
和一个整数。如果没有指定,NumBands
默认为32
。
“归一化”
- 规范化施加到带通滤波器,指定为逗号分隔的一对组成的“归一化”
和“带宽”
,“区域”
,或“没有”
。如果没有指定,归一化
默认为“带宽”
。
数据类型:合乎逻辑
erbSpectrum
-提取ERB频谱假
(默认)|真正的
提取片面ERB光谱,指定为真正的
或假
。
要设置ERB光谱提取的参数,请使用setExtractorParams
:
setExtractorParams(AFE,“erbSpectrum”,“名称”,值)
“频率范围”
——提取的频谱的频率范围,单位为Hz,表示由“频率范围”
和在范围[0越来越多的两元件载体,采样率/ 2]。如果没有指定,频率范围
默认为[0,
。采样率
/ 2]
“SpectrumType”
- 频谱型,指定为逗号分隔的一对组成的“SpectrumType”
和“功率”
或“大小”
。如果没有指定,SpectrumType
默认为“功率”
。
“NumBands”
- 数ERB频带,指定为逗号分隔的一对组成的“NumBands”
和一个整数。如果没有指定,NumBands
默认为小区(
。hz2erb
(FrequencyRange (2))hz2erb
(FrequencyRange (1)))
“归一化”
- 规范化施加到带通滤波器,指定为逗号分隔的一对组成的“归一化”
和“带宽”
,“区域”
,或“没有”
。如果没有指定,归一化
默认为“带宽”
。
数据类型:合乎逻辑
MFCC
-提取mel-频率倒谱系数(MFCC)假
(默认)|真正的
提取梅尔频率倒谱系数(MFCC),指定为真正的
或假
。
要的MFCC提取,使用设定的参数setExtractorParams
:
setExtractorParams(AFE,“MFCC”,“名称”,值)
“NumCoeffs”
- 数对每个窗口返回的系数,指定为逗号分隔的一对组成的“NumCoeffs”
和一个正整数。如果没有指定,NumCoeffs
默认为13
。
“DeltaWindowLength”
- 德尔塔窗口长度,指定为逗号分隔的一对组成的“DeltaWindowLength”
和2
或者是一个奇数。如果没有指定,DeltaWindowLength
默认为2
。此参数影响mfccDelta
和mfccDeltaDelta
特性。
“整改”
——非线性整流的类型,指定为逗号分隔对组成“整改”
和“日志”
或“立方根”
。
计算了mel-频率倒谱系数melSpectrum。
数据类型:合乎逻辑
mfccDelta
-MFCC提取物三角洲假
(默认)|真正的
MFCC的提取物增量,指定为真正的
或假
。
增量MFCC是基于所提取的MFCC计算。参数设置MFCC
影响mfccDelta
。
数据类型:合乎逻辑
mfccDeltaDelta
-提取MFCC的delta-delta假
(默认)|真正的
MFCC的提取物的Δ-增量,指定为真正的
或假
。
δ-增量MFCC是基于所提取的MFCC计算。参数设置MFCC
影响mfccDeltaDelta
。
数据类型:合乎逻辑
gtcc
-伽马通提取倒谱系数(GTCC)假
(默认)|真正的
提取伽马通倒谱系数(GTCC),指定为真正的
或假
。
要设置GTCC提取的参数,请使用setExtractorParams
:
setExtractorParams(AFE,“GTCC”,“名称”,值)
“NumCoeffs”
- 数对每个窗口返回的系数,指定为逗号分隔的一对组成的“NumCoeffs”
和一个正整数。如果没有指定,NumCoeffs
默认为13
。
“DeltaWindowLength”
- 德尔塔窗口长度,指定为逗号分隔的一对组成的“DeltaWindowLength”
和2
或者是一个奇数。如果没有指定,DeltaWindowLength
默认为2
。此参数影响gtccDelta
和gtccDeltaDelta
特性。
“整改”
——非线性整流的类型,指定为逗号分隔对组成“整改”
和“日志”
或“立方根”
。
的伽玛酮倒谱系数计算erbSpectrum。
数据类型:合乎逻辑
gtccDelta
-GTCC提取物三角洲假
(默认)|真正的
提取GTCC的增量,指定为真正的
或假
。
增量GTCC是基于所提取的GTCC计算。参数设置gtcc
影响gtccDelta
。
数据类型:合乎逻辑
gtccDeltaDelta
-GTCC提取物三角洲三角洲假
(默认)|真正的
GTCC的提取物的Δ-增量,指定为真正的
或假
。
δ-增量GTCC是基于所提取的GTCC计算。参数设置gtcc
影响gtccDeltaDelta
。
数据类型:合乎逻辑
spectralCentroid
-提取频谱质心假
(默认)|真正的
spectralCrest
-提取光谱波峰假
(默认)|真正的
spectralDecrease
-提取光谱下降假
(默认)|真正的
spectralEntropy
-提取谱熵假
(默认)|真正的
spectralFlatness
-提取频谱平坦度假
(默认)|真正的
spectralFlux
-提取的谱通量假
(默认)|真正的
提取光谱通量,指定为真正的
或假
。
的谱通量的计算在以下的频谱表示中的一个,由指定的SpectralDescriptorInput属性:
到的谱通量的提取,使用设定的参数setExtractorParams
:
setExtractorParams(AFE,“spectralFlux”,“名称”,值)
“NormType”
- 模型用来计算谱通量,指定为逗号分隔的一对组成的“NormType”
和一个1
或2
。如果没有指定,NormType
默认为2
。
数据类型:合乎逻辑
spectralKurtosis
-提取光谱峰度假
(默认)|真正的
spectralRolloffPoint
-提取光谱衰减点假
(默认)|真正的
提取的频谱滚降点,指定为真正的
或假
。
频谱滚降点的计算在以下的频谱表示中的一个,由指定的SpectralDescriptorInput属性:
若要设置参数,请使用光谱衰减点提取setExtractorParams
:
setExtractorParams(AFE,“spectralRolloffPoint”,“名称”,值)
“阈”
- 阀值滚降点的,指定为逗号分隔的一对组成的“阈”
和(0,1)范围内的标量。阈
默认为0.95
。
数据类型:合乎逻辑
spectralSkewness
-提取谱偏假
(默认)|真正的
spectralSlope
-提取频谱斜率假
(默认)|真正的
spectralSpread
-提取频谱扩展假
(默认)|真正的
球场
-提取沥青假
(默认)|真正的
提取沥青,指定为真正的
或假
。
要的基音提取,使用设定的参数setExtractorParams
:
setExtractorParams(AFE,“沥青”,“名称”,值)
“方法”
——用于计算音高的方法,指定为逗号分隔的对“方法”
和“PEF”
,“NCF”
,“CEP”
,“韩”
,或“SRH”
。如果没有指定,方法
默认为“NCF”
。有关可用的音高提取方法的说明,请参阅球场
。
“范围”
- 范围内搜索在赫兹的节距,指定为逗号分隔的一对组成的“范围”
和增加的值的两元件行向量。如果没有指定,范围
默认为[50400]
。
“MedianFilterLength”
——中值滤波长度用于平滑基音估计,指定为逗号分隔对组成“MedianFilterLength”
和一个正整数。如果没有指定,MedianFilterLength
默认为1
(无中值滤波)。
数据类型:合乎逻辑
harmonicRatio
-提取谐波比假
(默认)|真正的
提取谐波比,指定为真正的
或假
。
数据类型:合乎逻辑
提取 |
提取音频功能 |
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
可能不符合由相应的单个特征提取器输出的特征的默认配置。
您单击对应于该MATLAB命令的链接:
在MATLAB命令窗口中输入它运行的命令。Web浏览器不支持MATLAB的命令。金宝app
你也可以从以下列表中选择一个网站:
选择最佳的网站性能的中国网站(在中国或英文)。其他MathWorks的国家网站都没有从您的位置访问进行了优化。