主要内容

audioDelta

计算三角洲特征

自从R2020b

描述

例子

δ= audioDelta (x)返回音频特征的三角洲x

例子

δ= audioDelta (x,deltaWindowLength)指定了三角洲窗口长度。

例子

δ= audioDelta (x,deltaWindowLength,initialCondition)指定过滤器的初始条件。

例子

(δ,finalCondition)= audioDelta (x,___)还返回过滤器的最终条件。

例子

全部折叠

读入一个音频文件。

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

创建一个audioFeatureExtractor对象从音频中提取一些光谱特性随时间变化。调用提取提取音频特性。

afe = audioFeatureExtractor (“SampleRate”fs,“spectralCentroid”,真的,“spectralSlope”,真正的);audioIn audioFeatures =提取(afe);

调用audioDelta近似的一阶导数光谱特性。

deltaAudioFeatures = audioDelta (audioFeatures);

情节的光谱特性和光谱特性的三角洲。

地图= info (afe);tiledlayout (2, 1) nexttile情节(audioFeatures (:, map.spectralCentroid)) ylabel (“频谱质心”)nexttile情节(deltaAudioFeatures (:, map.spectralCentroid)) ylabel (δ频谱质心的)包含(“帧”)

图包含2轴对象。坐标轴对象1 ylabel频谱质心包含一个类型的对象。轴和包含对象2帧,ylabelδ频谱质心包含一个类型的对象。

tiledlayout (2, 1) nexttile情节(audioFeatures (:, map.spectralSlope)) ylabel (“光谱斜率”)nexttile情节(deltaAudioFeatures (:, map.spectralSlope)) ylabel (“三角洲光谱斜率”)包含(“帧”)

图包含2轴对象。坐标轴对象1 ylabel光谱斜率包含一个类型的对象。轴和包含对象2帧,ylabelδ光谱斜率包含一个类型的对象。

梅尔频率的三角洲和δcepstral系数(MFCC)经常使用MFCC的机器学习和深度学习应用。

读入一个音频文件。

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

使用designAuditoryFilterBank函数来设计一个片面的频域梅尔·滤波器组。

analysisWindowLength =圆(fs * 0.03);fb = designAuditoryFilterBank (fs,“FFTLength”,analysisWindowLength);

使用stft函数将音频信号转换为一个复杂的、片面的频域表示。把STFT大小和应用频域滤波。

(S ~ t) = stft (audioIn fs,“窗口”损害(analysisWindowLength“周期”),“FrequencyRange”,“单向的”);auditorySTFT = fb * abs(年代);

调用cepstralCoefficients函数来提取MFCC。

melcc = cepstralCoefficients (auditorySTFT);

调用audioDelta函数计算δMFCC。调用audioDelta再次计算δMFCC。策划的结果。

deltaWindowLength =21;melccDelta = audioDelta (melcc deltaWindowLength);melccDeltaDelta = audioDelta (melccDelta deltaWindowLength);coefficientToDisplay =4;tiledlayout (3,1) nexttile情节(t, melcc (:, coefficientToDisplay + 1) ylabel (“系数”+字符串(coefficientToDisplay)) nexttile情节(t, melccDelta (:, coefficientToDisplay + 1) ylabel (“δ”)nexttile情节(t, melccDeltaDelta (:, coefficientToDisplay + 1))包含(“时间(s)”)ylabel (“δ”)

图包含3轴对象。坐标轴对象1 ylabel系数4包含一个类型的对象。坐标轴对象与ylabelδ2包含了一个类型的对象。坐标轴对象3包含时间(s), ylabelδ包含一个类型的对象。

你可以计算流的三角洲信号通过的状态audioDelta函数。

创建一个dsp.AudioFileReader对象读取一帧音频文件。创建一个audioDeviceWriter对象编写音频扬声器。创建一个timescope对象可视化谐波比率随时间的变化。

fileReader = dsp.AudioFileReader (“FemaleSpeech-16-8-mono-3secs.wav”,“SamplesPerFrame”32岁的“PlayCount”3);deviceWriter = audioDeviceWriter (“SampleRate”,fileReader.SampleRate);范围= timescope (“SampleRate”fileReader.SampleRate / fileReader.SamplesPerFrame“TimeSpanSource”,“财产”,“时间间隔”3,“YLimits”[1],“标题”,“δ(谐波比率”);

而音频文件有未读的数据帧:

  1. 从音频文件读取一帧

  2. 计算谐波比率的框架

  3. 计算谐波比率的三角洲

  4. 音频帧写入你的演讲者

  5. 写谐波系数的变化范围

在每次调用audioDelta覆盖之前的状态。使用一个空数组初始化状态。

z = [];~结束(fileReader) audioIn = fileReader ();hr = harmonicRatio (audioIn fileReader.SampleRate,“窗口”损害(fileReader.SamplesPerFrame“周期”),“OverlapLength”,0);[deltaHR z] = audioDelta(人力资源5 z);deviceWriter (audioIn);范围(deltaHR)结束(范围)

输入参数

全部折叠

音频特性,指定为一个向量,矩阵,或多维数组。沿着第一个维度δ计算操作。所有其他的维度被视为独立的渠道。

数据类型:|

窗口的长度来计算三角洲,指定为奇数大于2。

数据类型:|

过滤器用于计算三角洲的初始条件,指定为一个向量,矩阵,或多维数组。的第一个维度initialCondition必须等于deltaWindowLength1。剩下的尺寸initialCondition必须匹配输入的剩余的尺寸吗x。默认的初始条件,[],相当于初始化状态0。

数据类型:|

输出参数

全部折叠

三角洲的音频功能,返回为一个向量,矩阵,或多维数组作为输入相同的维度x

数据类型:|

最后的过滤条件,返回为一个向量,矩阵,或多维数组。最后的条件返回相同的大小initialCondition

数据类型:|

算法

音频特征的三角洲x是当地的最小二乘近似的斜率为中心的地区样本吗x(k),其中包括在当前样本和样本当前的样品后样品。

d e l t 一个 = k = k x ( k ) k = k 2

三角洲地区的窗口长度定义长度- - - - - -

有关更多信息,请参见[1]

引用

[1]拉宾,劳伦斯·R。,罗纳德·w·谢弗。数字语音处理的理论及应用。上台北:皮尔森,2010年。

扩展功能

C / c++代码生成
生成C和c++代码使用MATLAB®编码器™。

GPU数组
加速代码运行在一个图形处理单元(GPU)使用并行计算工具箱™。

版本历史

介绍了R2020b