主要内容gydF4y2Ba

cepstralFeatureExtractorgydF4y2Ba

从音频片段中提取倒谱特征gydF4y2Ba

描述gydF4y2Ba

的gydF4y2BacepstralFeatureExtractorgydF4y2Ba系统对象™从音频片段提取倒谱特征。倒频谱特征通常用于描述语音和音乐信号。gydF4y2Ba

要提取倒谱特征:gydF4y2Ba

  1. 创建gydF4y2BacepstralFeatureExtractorgydF4y2Ba对象,并设置其属性。gydF4y2Ba

  2. 使用参数调用对象,就像调用函数一样。gydF4y2Ba

要了解更多关于System对象如何工作的信息,请参见gydF4y2Ba什么是系统对象?gydF4y2Ba.gydF4y2Ba

创建gydF4y2Ba

描述gydF4y2Ba

例子gydF4y2Ba

cepFeatures = cepstralFeatureExtractorgydF4y2Ba创建一个System对象,gydF4y2BacepFeaturesgydF4y2Ba,它计算每个输入通道独立的倒频谱特征。输入的列被视为单独的通道。gydF4y2Ba

例子gydF4y2Ba

cepFeatures = cepstralFeatureExtractor (gydF4y2Ba名称,值gydF4y2Ba)gydF4y2Ba每个属性集gydF4y2Ba的名字gydF4y2Ba到指定的gydF4y2Ba价值gydF4y2Ba.未指定的属性具有默认值。gydF4y2Ba

例子:gydF4y2BacepFeatures = cepstralFeatureExtractor(“InputDomain”、“频率”、“SampleRate”,fs,“LogEnergy”、“替换”)gydF4y2Ba在频域接收信号,采样点为gydF4y2BafsgydF4y2Ba赫兹。系数向量的第一个元素被对数能量值代替。gydF4y2Ba

属性gydF4y2Ba

全部展开gydF4y2Ba

除非另有说明,属性是gydF4y2BanontunablegydF4y2Ba,这意味着您不能在调用对象之后更改它们的值。对象在调用时锁定,而gydF4y2Ba释放gydF4y2Ba函数打开它们。gydF4y2Ba

如果一个属性是gydF4y2Ba可调gydF4y2Ba,您可以随时更改它的值。gydF4y2Ba

有关更改属性值的更多信息,请参见gydF4y2Ba在MATLAB中使用系统对象进行系统设计gydF4y2Ba.gydF4y2Ba

滤波器组的类型,指定为其中之一gydF4y2Ba“梅尔”gydF4y2Ba或gydF4y2Ba“Gammatone”gydF4y2Ba.当gydF4y2BaFilterBankgydF4y2Ba被设置为gydF4y2Ba梅尔gydF4y2Ba,对象计算mel频率倒谱系数(MFCC)。当gydF4y2BaFilterBankgydF4y2Ba被设置为gydF4y2BaGammatonegydF4y2Ba,该对象计算伽玛通倒谱系数(GTCC)。gydF4y2Ba

数据类型:gydF4y2Ba字符gydF4y2Ba|gydF4y2Ba字符串gydF4y2Ba

输入信号的域,指定为gydF4y2Ba“时间”gydF4y2Ba或gydF4y2Ba“频率”gydF4y2Ba.gydF4y2Ba

数据类型:gydF4y2Ba字符gydF4y2Ba|gydF4y2Ba字符串gydF4y2Ba

返回的系数数,指定为范围[2,gydF4y2BavgydF4y2Ba),gydF4y2BavgydF4y2Ba是有效的密码带数。有效通频带的数量取决于滤波器组的类型:gydF4y2Ba

  • 梅尔gydF4y2Ba——有效密码带数定义为gydF4y2Basum (gydF4y2BaBandEdgesgydF4y2Ba< = (gydF4y2BaSampleRategydF4y2Ba/ 2) 2gydF4y2Ba.gydF4y2Ba

  • GammatonegydF4y2Ba——有效密码带数定义为gydF4y2Ba(即:gydF4y2Bahz2erbgydF4y2Ba(gydF4y2BaFrequencyRangegydF4y2Ba(2))gydF4y2Bahz2erbgydF4y2Ba(gydF4y2BaFrequencyRangegydF4y2Ba(1)))gydF4y2Ba.gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba

非线性整流类型,规定为gydF4y2Ba“日志”gydF4y2Ba或gydF4y2Ba“立方根”gydF4y2Ba.gydF4y2Ba

数据类型:gydF4y2Ba字符gydF4y2Ba|gydF4y2Ba字符串gydF4y2Ba

FFT长度,指定为正整数。默认的,gydF4y2Ba[]gydF4y2Ba,表示FFT长度等于输入信号的行数。gydF4y2Ba

依赖关系gydF4y2Ba

若要启用此属性,请设置gydF4y2BaInputDomaingydF4y2Ba来gydF4y2Ba“时间”gydF4y2Ba.gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba|gydF4y2Baint8gydF4y2Ba|gydF4y2Baint16gydF4y2Ba|gydF4y2Baint32gydF4y2Ba|gydF4y2Baint64gydF4y2Ba|gydF4y2Bauint8gydF4y2Ba|gydF4y2Bauint16gydF4y2Ba|gydF4y2Bauint32gydF4y2Ba|gydF4y2Bauint64gydF4y2Ba

指定如何在系数矢量输出中显示log能量,指定为:gydF4y2Ba

  • “添加”gydF4y2Ba——该对象将log能量附加到系数向量上。系数向量的长度是1 +gydF4y2BaNumCoeffsgydF4y2Ba.gydF4y2Ba

  • “替换”gydF4y2Ba——物体用信号的对数能量替换第一个系数。系数向量的长度是gydF4y2BaNumCoeffsgydF4y2Ba.gydF4y2Ba

  • “忽略”gydF4y2Ba——该对象不计算或返回日志能量。gydF4y2Ba

数据类型:gydF4y2Ba字符gydF4y2Ba|gydF4y2Ba字符串gydF4y2Ba

输入采样率Hz,指定为实正标量。gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba

高级属性gydF4y2Ba

滤波器组的带边以Hz表示,指定为在[0,∞]范围内的非负单调递增行向量。最大频带频率可以是任意有限的数。条带数必须在[4,80]范围内。gydF4y2Ba

默认的带边在前10点是线性间隔的,之后是对数间隔的。默认的带边设置为推荐的gydF4y2Ba[1]gydF4y2Ba.gydF4y2Ba

依赖关系gydF4y2Ba

若要启用此属性,请设置gydF4y2BaFilterBankgydF4y2Ba来gydF4y2Ba梅尔gydF4y2Ba.gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba

滤波器组以Hz为单位的频率范围,指定为一个正的、单调递增的二元素行向量。最大频率可以是任意有限的数。滤波器组的中心频率之间是等间距的gydF4y2Bahz2erbgydF4y2Ba(gydF4y2BaFrequencyRangegydF4y2Ba(1))gydF4y2Ba和gydF4y2Bahz2erbgydF4y2Ba(gydF4y2BaFrequencyRangegydF4y2Ba(2))gydF4y2Ba在雇员再培训局表上。gydF4y2Ba

依赖关系gydF4y2Ba

若要启用此属性,请设置gydF4y2BaFilterBankgydF4y2Ba来gydF4y2BaGammatonegydF4y2Ba.gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba

滤波器组设计的域,指定为其中之一gydF4y2Ba“赫兹”gydF4y2Ba或gydF4y2Ba“本”gydF4y2Ba.滤波器组被设计成带有指定的带边的重叠三角形gydF4y2BaBandEdgesgydF4y2Ba财产。gydF4y2Ba

的gydF4y2BaBandEdgesgydF4y2Ba属性以Hz指定。当您将设计域设置为:gydF4y2Ba

  • “赫兹”gydF4y2Ba——滤波器组三角形以Hz绘制,并映射到箱子上。gydF4y2Ba

    下面是一个在容器中绘制过滤器组的示例gydF4y2BaFilterBankDesignDomaingydF4y2Ba被设置为gydF4y2Ba“赫兹”gydF4y2Ba:gydF4y2Ba

    [audioFile, fs] = audioread(gydF4y2Ba“NoisySpeech-16-22p5-mono-5secs.wav”gydF4y2Ba);时间=圆(0.02 * fs);gydF4y2Ba% 20毫秒音频片段gydF4y2BaaudioSegment = audioFile (5500:5500 + duration-1);cepFeatures = cepstralFeatureExtractor (gydF4y2Ba“SampleRate”gydF4y2Bafs)gydF4y2Ba
    cepFeatures = cepstralFeatureExtractor with properties: properties InputDomain: 'Time' NumCoeffs: 13 FFTLength: [] LogEnergy: 'Append' SampleRate: 22500 Advanced properties BandEdges: [1×42 double] FilterBankDesignDomain: 'Hz' FilterBankNormalization: 'Bandwidth'gydF4y2Ba
    将音频片段作为倒谱特征提取算法的输入来锁定目标。gydF4y2Ba
    [多项式系数δ,deltaDelta] = cepFeatures (audioSegment);gydF4y2Ba
    使用gydF4y2BagetFiltersgydF4y2Ba函数获取滤波器组。绘制滤波器组。gydF4y2Ba
    [filterbank, freq] = getFilters(cepFeatures);情节(频率(1:15),filterbank (1:15,:))gydF4y2Ba

    有关详细信息,请参见gydF4y2Ba[1]gydF4y2Ba.gydF4y2Ba

  • “本”gydF4y2Ba——频带频率gydF4y2Ba“赫兹”gydF4y2Ba被转换为bin。滤波器组三角形对称地画在箱子里。gydF4y2Ba

    改变gydF4y2BaFilterBankDesignDomaingydF4y2Ba财产gydF4y2Ba“本”gydF4y2Ba:gydF4y2Ba

    释放(cepFeatures);cepFeatures。FilterBankDesignDomain =“本”gydF4y2Ba;[多项式系数δ,deltaDelta] = cepFeatures (audioSegment);[filterbank, freq] = getFilters(cepFeatures);情节(频率(1:15),filterbank (1:15,:))gydF4y2Ba

    有关详细信息,请参见gydF4y2Ba[2]gydF4y2Ba.gydF4y2Ba

依赖关系gydF4y2Ba

若要启用此属性,请设置gydF4y2BaFilterBankgydF4y2Ba来gydF4y2Ba梅尔gydF4y2Ba.gydF4y2Ba

数据类型:gydF4y2Ba字符gydF4y2Ba|gydF4y2Ba字符串gydF4y2Ba

对滤波器组权重采用归一化技术,具体为:gydF4y2Ba

  • “带宽”gydF4y2Ba——每个带通滤波器的权值由相应的滤波器带宽归一化。gydF4y2Ba

  • “区域”gydF4y2Ba——每个带通滤波器的权重由相应的带通滤波器面积归一化。gydF4y2Ba

  • “没有”gydF4y2Ba——过滤器的权重没有标准化。gydF4y2Ba

数据类型:gydF4y2Ba字符gydF4y2Ba|gydF4y2Ba字符串gydF4y2Ba

使用gydF4y2Ba

描述gydF4y2Ba

例子gydF4y2Ba

[gydF4y2Ba多项式系数gydF4y2Ba,gydF4y2BaδgydF4y2Ba,gydF4y2BadeltaDeltagydF4y2Ba) = cepFeatures (gydF4y2BaaudioIngydF4y2Ba)gydF4y2Ba返回倒频谱系数、能量对数、delta和delta-delta。gydF4y2Ba

根据您是否设置,log能量值将附加在系数向量之前或替换系数向量的第一个元素gydF4y2BaLogEnergygydF4y2Ba财产gydF4y2Ba“添加”gydF4y2Ba或gydF4y2Ba“替换”gydF4y2Ba.有关详细信息,请参见gydF4y2Ba多项式系数gydF4y2Ba.gydF4y2Ba

输入参数gydF4y2Ba

全部展开gydF4y2Ba

输入信号,指定为列向量或矩阵。如果gydF4y2BaInputDomaingydF4y2Ba被设置为gydF4y2Ba“时间”gydF4y2Ba,指定gydF4y2BaaudioIngydF4y2Ba作为音频数据的实值帧。如果gydF4y2BaInputDomaingydF4y2Ba被设置为gydF4y2Ba“频率”gydF4y2Ba,指定gydF4y2BaaudioIngydF4y2Ba作为实值或复值离散傅里叶变换。如果指定为一个矩阵,列将被视为独立的音频通道。gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba
复数的支持:金宝appgydF4y2Ba是的gydF4y2Ba

输出参数gydF4y2Ba

全部展开gydF4y2Ba

倒谱系数,作为列向量或矩阵返回。如果系数矩阵是gydF4y2BaNgydF4y2Ba——- - - - - -gydF4y2Ba米gydF4y2Ba矩阵,gydF4y2BaNgydF4y2Ba是由您在gydF4y2BaNumCoeffsgydF4y2Ba和gydF4y2BaLogEnergygydF4y2Ba属性。gydF4y2Ba米gydF4y2Ba等于输入音频通道的数量。gydF4y2Ba

当gydF4y2BaLogEnergygydF4y2Ba属性设置为:gydF4y2Ba

  • “添加”gydF4y2Ba——该对象将对数能量值附加到系数向量上。系数向量的长度是1 +gydF4y2BaNumCoeffsgydF4y2Ba.的默认设置gydF4y2BaLogEnergygydF4y2Ba财产。gydF4y2Ba

  • “替换”gydF4y2Ba——物体用信号的对数能量替换第一个系数。系数向量的长度是gydF4y2BaNumCoeffsgydF4y2Ba.gydF4y2Ba

  • “忽略”gydF4y2Ba——该对象不计算或返回日志能量。gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba

对算法连续调用时系数的变化,以向量或矩阵的形式返回。的gydF4y2BaδgydF4y2Ba数组的大小和数据类型与gydF4y2Ba多项式系数gydF4y2Ba数组中。gydF4y2Ba

在这个例子中,gydF4y2BacepFeaturesgydF4y2Ba是倒谱特征提取器,它接受以12 kHz采样的音频输入信号。流在三段音频信号上连续三次调用的对象算法。返回滤波器组的倒相系数和相应的gydF4y2BaδgydF4y2Ba值。gydF4y2Ba

cepFeatures = cepstralFeatureExtractor (gydF4y2Ba“SampleRate”gydF4y2Ba, 12000);[coeff1, delta1] = cepFeatures (audioIn);[coeff2, delta2] = cepFeatures (audioIn);[coeff3, delta3] = cepFeatures (audioIn);gydF4y2Ba

delta2gydF4y2Ba是计算gydF4y2Bacoeff2-coeff1gydF4y2Ba,而gydF4y2Badelta3gydF4y2Ba是计算gydF4y2Bacoeff3-coeff2gydF4y2Ba.最初的数组,gydF4y2Badelta1gydF4y2Ba,是一个零数组。gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba

的变化gydF4y2BaδgydF4y2Ba值,以向量或矩阵的形式返回。的gydF4y2BadeltaDeltagydF4y2Ba数组的大小和数据类型与gydF4y2Ba多项式系数gydF4y2Ba和gydF4y2BaδgydF4y2Ba数组。gydF4y2Ba

在本例中,连续调用倒谱特征提取算法返回gydF4y2BadeltaDeltagydF4y2Ba除了系数和gydF4y2BaδgydF4y2Ba值。gydF4y2Ba

cepFeatures = cepstralFeatureExtractor (gydF4y2Ba“SampleRate”gydF4y2Ba, 12000);[coeff1, delta1 deltaDelta1] = cepFeatures (audioIn);[coeff2, delta2 deltaDelta2] = cepFeatures (audioIn);[coeff3, delta3 deltaDelta3] = cepFeatures (audioIn);gydF4y2Ba

deltaDelta2gydF4y2Ba是计算gydF4y2Badelta2-delta1gydF4y2Ba,而gydF4y2BadeltaDelta3gydF4y2Ba是计算gydF4y2Badelta3-delta2gydF4y2Ba.最初的数组,gydF4y2BadeltaDelta1gydF4y2Ba,是一个零数组。gydF4y2Ba

数据类型:gydF4y2Ba单gydF4y2Ba|gydF4y2Ba双gydF4y2Ba

对象的功能gydF4y2Ba

要使用对象函数,请指定System对象作为第一个输入参数。例如,释放名为system的对象的系统资源gydF4y2BaobjgydF4y2Ba,使用下面的语法:gydF4y2Ba

发行版(obj)gydF4y2Ba

全部展开gydF4y2Ba

getFiltersgydF4y2Ba 得到听觉滤波器组gydF4y2Ba
克隆gydF4y2Ba 创建重复的gydF4y2Ba系统对象gydF4y2Ba
isLockedgydF4y2Ba 确定gydF4y2Ba系统对象gydF4y2Ba在使用gydF4y2Ba
释放gydF4y2Ba 释放资源并允许更改gydF4y2Ba系统对象gydF4y2Ba属性值和输入特征gydF4y2Ba
重置gydF4y2Ba 使内部状态复位gydF4y2Ba系统对象gydF4y2Ba
一步gydF4y2Ba 运行gydF4y2Ba系统对象gydF4y2Ba算法gydF4y2Ba

例子gydF4y2Ba

全部折叠gydF4y2Ba

提取语音文件中各片段的mel频率倒谱系数和对数能量值。返回gydF4y2BaδgydF4y2Ba,当前与以前倒频谱系数的差异,以及gydF4y2BadeltaDeltagydF4y2Ba,即当前与以前的区别gydF4y2BaδgydF4y2Ba值。该对象计算的对数能量值可以放在系数向量的前面或替换系数向量的第一个元素。这是根据您是否设置gydF4y2BaLogEnergygydF4y2Ba财产的gydF4y2BacepstralFeatureExtractorgydF4y2Ba对象gydF4y2Ba“替换”gydF4y2Ba或gydF4y2Ba“添加”gydF4y2Ba.gydF4y2Ba

读取音频信号gydF4y2Ba“Counting-16-44p1-mono-15secs.wav”gydF4y2Ba文件。从音频数据中提取一个40毫秒的片段。创建一个gydF4y2BacepstralFeatureExtractorgydF4y2Ba对象。由默认对象计算的倒频谱系数是mel频率系数。此外,该对象计算音频段的log能量、delta和delta-delta值。gydF4y2Ba

[audioFile, fs] = audioread(gydF4y2Ba“Counting-16-44p1-mono-15secs.wav”gydF4y2Ba);时间=圆(0.04 * fs);gydF4y2Ba% 40毫秒gydF4y2BaaudioSegment = audioFile (40000:40000 + duration-1);cepFeatures = cepstralFeatureExtractor (gydF4y2Ba“SampleRate”gydF4y2Bafs)gydF4y2Ba
cepFeatures = cepstralFeatureExtractor with properties: properties FilterBank: 'Mel' InputDomain: 'Time' NumCoeffs: 13整流:'Log' FFTLength: [] LogEnergy: 'Append' SampleRate: 44100显示所有属性gydF4y2Ba

的gydF4y2BaLogEnergygydF4y2Ba属性设置为gydF4y2Ba“添加”gydF4y2Ba.系数向量中的第一个元素是对数能量值,其余元素是该对象计算的13个倒谱系数。属性中指定的值决定倒频谱系数的数目gydF4y2BaNumCoeffsgydF4y2Ba财产。gydF4y2Ba

[多项式系数δ,deltaDelta] = cepFeatures (audioSegment)gydF4y2Ba
多项式系数=gydF4y2Ba14×1gydF4y2Ba5.2999 -4.9406 3.6130 0.4397 -0.2280 -1.1068 0.6679 0.6367 -0.3869 0.6127⋮gydF4y2Ba
δ=gydF4y2Ba14×1gydF4y2Ba0 0 0 0 0 0 0⋮gydF4y2Ba
deltaDelta =gydF4y2Ba14×1gydF4y2Ba0 0 0 0 0 0 0⋮gydF4y2Ba

的初始值gydF4y2BaδgydF4y2Ba和gydF4y2BadeltaDeltagydF4y2Ba数组始终为零。考虑文件中另一个40毫秒的音频片段,并从这个片段中提取倒谱特征。gydF4y2Ba

audioSegmentTwo = audioFile (5820:5820 + duration-1);[coeffsTwo, deltaTwo deltaDeltaTwo] = cepFeatures (audioSegmentTwo)gydF4y2Ba
coeffsTwo =gydF4y2Ba14×1gydF4y2Ba0.1582 -15.9507 2.4295 0.2835 0.4345 0.4382 0.6040 0.4168 0.1846 0.2636⋮gydF4y2Ba
deltaTwo =gydF4y2Ba14×1gydF4y2Ba-5.4581 -11.0101 -1.1836 -0.1561 0.6625 1.5449 -0.0639 -0.2199 0.5715 -0.3491⋮gydF4y2Ba
deltaDeltaTwo =gydF4y2Ba14×1gydF4y2Ba-5.4581 -11.0101 -1.1836 -0.1561 0.6625 1.5449 -0.0639 -0.2199 0.5715 -0.3491⋮gydF4y2Ba

验证两者的区别gydF4y2BacoeffsTwogydF4y2Ba和gydF4y2Ba多项式系数gydF4y2Ba向量等于gydF4y2BadeltaTwogydF4y2Ba.gydF4y2Ba

isequal (coeffsTwo-coeffs deltaTwo)gydF4y2Ba
ans =gydF4y2Ba逻辑gydF4y2Ba1gydF4y2Ba

验证两者的区别gydF4y2BadeltaTwogydF4y2Ba和gydF4y2BaδgydF4y2Ba向量等于gydF4y2BadeltaDeltaTwogydF4y2Ba.gydF4y2Ba

isequal (deltaTwo-delta deltaDeltaTwo)gydF4y2Ba
ans =gydF4y2Ba逻辑gydF4y2Ba1gydF4y2Ba

许多特征提取技术都是在频域上进行的。将音频信号转换到频域仅一次是有效的。在本例中,您将流式音频信号转换为频率域,并将该信号输入语音活动检测器。当有语音存在时,利用该方法从频域信号中提取梅尔-频率倒谱系数(MFCC)特征gydF4y2BacepstralFeatureExtractor系统对象™gydF4y2Ba.gydF4y2Ba

创建一个gydF4y2Badsp。AudioFileReadergydF4y2Ba要从音频文件中读取的系统对象。gydF4y2Ba

fileReader = dsp。AudioFileReader (gydF4y2Ba“Counting-16-44p1-mono-15secs.wav”gydF4y2Ba);fs = fileReader.SampleRate;gydF4y2Ba

处理音频在30毫秒帧与10毫秒跳。创建一个默认的gydF4y2Badsp。AsyncBuffergydF4y2Ba对象来管理音频帧之间的重叠。gydF4y2Ba

samplesPerFrame =装天花板(0.03 * fs);samplesPerHop =装天花板(0.01 * fs);samplesPerOverlap = samplesPerFrame - samplesPerHop;fileReader。SamplesPerFrame = samplesPerHop;缓冲= dsp.AsyncBuffer;gydF4y2Ba

创建一个gydF4y2BavoiceActivityDetectorgydF4y2Ba系统对象和gydF4y2BacepstralFeatureExtractorgydF4y2Ba系统对象。指定它们在频域内工作。创建一个gydF4y2Badsp。SignalSinkgydF4y2Ba记录提取的倒谱特征。gydF4y2Ba

VAD = voiceActivityDetector (gydF4y2Ba“InputDomain”gydF4y2Ba,gydF4y2Ba“频率”gydF4y2Ba);cepFeatures = cepstralFeatureExtractor (gydF4y2Ba“InputDomain”gydF4y2Ba,gydF4y2Ba“频率”gydF4y2Ba,gydF4y2Ba“SampleRate”gydF4y2Bafs,gydF4y2Ba“LogEnergy”gydF4y2Ba,gydF4y2Ba“替换”gydF4y2Ba);水槽= dsp.SignalSink;gydF4y2Ba

在音频流循环中:gydF4y2Ba

  1. 从音频文件中读取一跳的样本并将样本保存到缓冲区中。gydF4y2Ba

  2. 读一帧从gydF4y2Ba缓冲gydF4y2Ba与前一帧的指定重叠。gydF4y2Ba

  3. 调用语音活动检测器来获取被分析帧的语音概率。gydF4y2Ba

  4. 如果被分析的帧有大于0.75的语音概率,提取倒谱特征并使用信号接收器记录特征。如果被分析帧的语音概率小于0.75,则向sink写入一个nan向量。gydF4y2Ba

阈值= 0.75;nanVector =南(13);gydF4y2Ba而gydF4y2Ba~isDone(fileReader) audioIn = fileReader();写(缓冲区,audioIn);overlappedAudio =阅读(缓冲区,samplesPerFrame samplesPerOverlap);X = fft (overlappedAudio, 2048);probabilityOfSpeech = VAD (X);gydF4y2Ba如果gydF4y2BaprobabilityOfSpeech > threshold xFeatures = cepFeatures(X);水槽(xFeatures”)gydF4y2Ba其他的gydF4y2Ba水槽(nanVector)gydF4y2Ba结束gydF4y2Ba结束gydF4y2Ba

可视化随时间变化的倒频谱系数。gydF4y2Ba

timeVector = linspace(0 15大小(sink.Buffer, 1));情节(timeVector sink.Buffer)包含(gydF4y2Ba“时间(s)”gydF4y2Ba) ylabel (gydF4y2Ba“MFCC振幅”gydF4y2Ba)传说(gydF4y2Ba“Log-Energy”gydF4y2Ba,gydF4y2Ba“c1”gydF4y2Ba,gydF4y2Bac2的gydF4y2Ba,gydF4y2Ba“c3”gydF4y2Ba,gydF4y2Ba“c4”gydF4y2Ba,gydF4y2Ba“c5”gydF4y2Ba,gydF4y2Ba“c6”gydF4y2Ba,gydF4y2Ba“c7”gydF4y2Ba,gydF4y2Ba“c8”gydF4y2Ba,gydF4y2Ba“制备”gydF4y2Ba,gydF4y2Ba“10大”gydF4y2Ba,gydF4y2Ba“c11”gydF4y2Ba,gydF4y2Ba“c12”gydF4y2Ba)gydF4y2Ba

图中包含一个坐标轴。轴包含13个线型对象。这些对象代表Log-Energy, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12。gydF4y2Ba

创建一个gydF4y2Badsp。AudioFileReadergydF4y2Ba对象以逐帧读取音频数据。创建一个gydF4y2BaaudioDeviceWritergydF4y2Ba将音频写入您的声卡。创建一个gydF4y2Badsp。ArrayPlotgydF4y2Ba使GTCC随着时间的推移形象化。gydF4y2Ba

fileReader = dsp。AudioFileReader (gydF4y2Ba“randomoscthree - 24 - 96立体声- 13 - secs.aif”gydF4y2Ba);deviceWriter = audioDeviceWriter (fileReader.SampleRate);范围= dsp.ArrayPlot;gydF4y2Ba

创建一个gydF4y2BacepstralFeatureExtractorgydF4y2Ba提取GTCC。gydF4y2Ba

cepFeatures = cepstralFeatureExtractor (gydF4y2Ba“FilterBank”gydF4y2Ba,gydF4y2Ba“Gammatone”gydF4y2Ba,gydF4y2Ba...gydF4y2Ba“SampleRate”gydF4y2Ba, fileReader.SampleRate);gydF4y2Ba

在音频流循环中:gydF4y2Ba

  1. 读入一帧音频数据。gydF4y2Ba

  2. 从音频帧中提取GTCC。gydF4y2Ba

  3. 可视化GTCC。gydF4y2Ba

  4. 将音频帧写入设备。gydF4y2Ba

而gydF4y2Ba~isDone(fileReader) audioIn = fileReader();多项式系数= cepFeatures (audioIn);范围(多项式系数)deviceWriter (audioIn);gydF4y2Ba结束gydF4y2Ba发行版(cepFeatures)发布(范围)发布(fileReader)gydF4y2Ba

算法gydF4y2Ba

全部展开gydF4y2Ba

兼容性的考虑gydF4y2Ba

全部展开gydF4y2Ba

不建议从R2020b开始gydF4y2Ba

扩展功能gydF4y2Ba

介绍了R2018agydF4y2Ba