主要内容

光谱描述符

音频工具箱™提供了一套描述形状的函数,有时称为音色音频。本示例定义了用于确定光谱特征的方程,引用了每个特征的常见用法,并提供了示例,以便您可以直观地了解光谱描述符所描述的内容。

谱描述符广泛应用于机器和深度学习应用,以及感知分析。光谱描述符已应用于一系列应用,包括:

  • 说话人识别及识别[21

  • 声景识别[11] [17

  • 仪器识别[22

  • 音乐类型分类[16] [18

  • 情绪识别[19] [20.

  • 声音活动检测[5] [7] [8] [10] [12] [13

频谱质心

光谱质心(spectralCentroid)为非加权和归一化后的频率加权和[1]:

μ 1 k b 1 b 2 f k 年代 k k b 1 b 2 年代 k

在哪里

  • f k 以Hz为单位的频率是否对应bin k

  • 年代 k 光谱值在bin吗 k .震级谱和功率谱都是常用的。

  • b 1 而且 b 2 是带边,以箱为单位,在其上计算光谱质心。

光谱质心代表光谱的“重心”。它被用来表示亮度2],通常用于音乐分析和类型分类。例如,观察音频文件中与高帽子命中相对应的质心的跳跃。

[音频,fs] = audioread(“FunkyDrums-44p1-stereo-25secs.mp3”);音频= sum(音频,2)/2;centroid = spectralCentroid(音频,fs);Subplot (2,1,1) t = linspace(0,size(audio,1)/fs,size(audio,1));情节(t)、音频)ylabel (“振幅”) subplot(2,1,2) t = linspace(0,size(音频,1)/fs,size(质心,1));情节(t,质心)包含(“时间(s)”) ylabel (“重心(Hz)”

图中包含2个轴对象。Axes对象1包含一个line类型的对象。坐标轴对象2包含一个line类型的对象。

谱形心也常用于将语音分为浊音或清音[3.].例如,在无声语音的区域,质心会跳跃。

[音频,fs] = audioread(“Counting-16-44p1-mono-15secs.wav”);centroid = spectralCentroid(音频,fs);Subplot (2,1,1) t = linspace(0,size(audio,1)/fs,size(audio,1));情节(t)、音频)ylabel (“振幅”) subplot(2,1,2) t = linspace(0,size(音频,1)/fs,size(质心,1));情节(t,质心)包含(“时间(s)”) ylabel (“重心(Hz)”

图中包含2个轴对象。Axes对象1包含一个line类型的对象。坐标轴对象2包含一个line类型的对象。

光谱扩散

光谱扩展(spectralSpread)为围绕谱心的标准差[1]:

μ 2 k b 1 b 2 f k - μ 1 2 年代 k k b 1 b 2 年代 k

在哪里

  • f k 以Hz为单位的频率是否对应bin k

  • 年代 k 光谱值在bin吗 k .震级谱和功率谱都是常用的。

  • b 1 而且 b 2 是带边,以箱为单位,在其上计算光谱扩展。

  • μ 1 是谱质心。

谱展表示光谱的“瞬时带宽”。它被用来表示音调的主导地位。例如,扩散随着音调的发散而增加,随着音调的收敛而减少。

Fs = 16e3;tone = audioooscillator (“SampleRate”fs,“NumTones”2,“SamplesPerFrame”, 512,“频率”(2000、100));持续时间= 5;numLoops = floor(duration*fs/tone.SamplesPerFrame);信号= [];i = 1:numLoops信号=[信号;tone()];如果我< numLoops / 2的基调。频率=音调。频率+ [0,50];其他的基调。频率=音调。频率- [0,50];结束结束spread = spectralSpread(信号,fs);次要情节(2,1,1)谱图(信号,圆(fs * 0.05),圆(fs * 0.04), 2048年,fs,“桠溪”) subplot(2,1,2) t = linspace(0,size(signal,1)/fs,size(spread,1));情节(t,传播)包含(“时间(s)”) ylabel (“传播”

图中包含2个轴对象。坐标轴对象1包含一个image类型的对象。坐标轴对象2包含一个line类型的对象。

光谱偏态

光谱偏度(spectralSkewness)由三阶矩计算[1]:

μ 3. k b 1 b 2 f k - μ 1 3. 年代 k μ 2 3. k b 1 b 2 年代 k

在哪里

  • f k 以Hz为单位的频率是否对应bin k

  • 年代 k 光谱值在bin吗 k .震级谱和功率谱都是常用的。

  • b 1 而且 b 2 是带边,以箱为单位,在其上计算光谱偏度。

  • μ 1 是谱质心。

  • μ 2 是谱展。

光谱偏度测量的是质心周围的对称性。在语音学中,谱偏常被称为光谱倾斜并与其他频谱矩一起使用,以区分发音的位置[4].对于谐波信号,它表示高谐波和低谐波的相对强度。例如,在四音信号中,当低音占主导地位时,存在正偏态,当高音占主导地位时,则存在负偏态。

Fs = 16e3;持续时间= 99;tone = audioooscillator (“SampleRate”fs,“NumTones”4“SamplesPerFrame”fs,“频率”, 500, 2000, 2500, 4000,“振幅”[0, 0.4, 0.6, 1]);信号= [];I = 1:持续时间信号=[信号;音调()];基调。振幅=音调。振幅+ [0.01,0,0,-0.01];结束skewness(信号,fs);T = linspace(0,size(signal,1)/fs,size(skewness,1))/60;次要情节(2,1,1)谱图(信号,圆(fs * 0.05),圆(fs * 0.04),圆(fs * 0.05), fs,“桠溪”“权力”) view([-58 33]) subplot(2,1,2) plot(t,skewness) xlabel(的时间(分钟)) ylabel (“偏斜”

图中包含2个轴对象。坐标轴对象1包含一个曲面类型的对象。坐标轴对象2包含一个line类型的对象。

谱峰态

谱峰度(spectralKurtosis)由四阶矩计算[1]:

μ 4 k b 1 b 2 f k - μ 1 4 年代 k μ 2 4 k b 1 b 2 年代 k

在哪里

  • f k 以Hz为单位的频率是否对应bin k

  • 年代 k 光谱值在bin吗 k .震级谱和功率谱都是常用的。

  • b 1 而且 b 2 是带边,在箱子里,在上面计算光谱峰度。

  • μ 1 是谱质心。

  • μ 2 是谱展。

谱峰度测量围绕质心的谱的平整度,或非高斯性。相反,它被用来表示光谱的峰值。例如,当语音信号上的白噪声增加时,峰度降低,表明频谱的峰值较低。

[audioIn,fs] = audioread(“Counting-16-44p1-mono-15secs.wav”);noiseGenerator = dsp。ColoredNoise (“颜色”“白色”“SamplesPerFrame”大小(audioIn 1));noise = noiseGenerator();噪声=噪声/max(abs(噪声));斜坡= linspace(0,.25,数字(噪音))';噪音=噪音。*斜坡;audioIn = audioIn +噪声;峰度= spectral峰度(audioIn,fs);t = linspace(0,size(audioIn,1)/fs,size(audioIn,1));subplot(2,1,1) plot(t,audioIn)“振幅”) t = linspace(0,size(audioIn,1)/fs,size(峰度,1));Subplot (2,1,2) plot(t,峰度)xlabel(“时间(s)”) ylabel (“峰度”

图中包含2个轴对象。Axes对象1包含一个line类型的对象。坐标轴对象2包含一个line类型的对象。

谱熵

谱熵(spectralEntropy)量度光谱的峰值[6]:

- k b 1 b 2 年代 k 日志 年代 k 日志 b 2 - b 1

在哪里

  • f k 以Hz为单位的频率是否对应bin k

  • 年代 k 光谱值在bin吗 k .震级谱和功率谱都是常用的。

  • b 1 而且 b 2 是带边,以箱为单位,在上面计算谱熵。

频谱熵已成功用于自动语音识别的语音/无声决策[6].因为熵是无序程度的衡量标准,有语音的区域比无语音的区域熵更低。

[audioIn,fs] = audioread(“Counting-16-44p1-mono-15secs.wav”);熵= spectral熵(audioIn,fs);t = linspace(0,size(audioIn,1)/fs,size(audioIn,1));subplot(2,1,1) plot(t,audioIn)“振幅”) t = linspace(0,size(audioIn,1)/fs,size(熵,1));Subplot (2,1,2) plot(t,熵)xlabel(“时间(s)”) ylabel (“熵”

图中包含2个轴对象。Axes对象1包含一个line类型的对象。坐标轴对象2包含一个line类型的对象。

谱熵也被用来区分语音和音乐[7] [8].例如,比较语音、音乐和背景音频文件的熵直方图。

Fs = 8000;[语音,语音]= audioread(“彩虹- 16 - 8 mono - 114 secs.wav”);speech = resample(speech,fs,speechFs);Speech = Speech ./max(Speech);[music,musicFs] = audioread(“rockguitar - 16 - 96立体声- 72 secs.flac”);音乐= sum(音乐,2)/2;music = resample(music,fs,musicFs);音乐= Music ./max(音乐);[background,backgroundFs] = audioread(“Ambiance-16-44p1-mono-12secs.wav”);background = resample(background,fs,backgroundFs);Background = Background ./max(Background);语音熵= spectral熵(语音,fs);musicEntropy = spectralEntropy(音乐,fs);backgroundEntropy = spectralEntropy(背景,fs);图h1 =直方图(语音熵);持有h2 = histogram(musicEntropy);h3 =直方图(backgroundEntropy);h1。归一化=“概率”;h2。归一化=“概率”;h3。归一化=“概率”;h1。BinWidth = 0.01;h2。BinWidth = 0.01;h3。BinWidth = 0.01;标题(“谱熵”)传说(“演讲”“音乐”“背景”“位置”“西北”)包含(“熵”) ylabel (“概率”)举行

图中包含一个轴对象。标题为谱熵的轴对象包含3个类型直方图对象。这些对象代表语音、音乐、背景。

光谱平坦

谱平坦度(spectralFlatness)量度该频谱的几何平均值与该频谱的算术平均值之比[9]:

平面度 k b 1 b 2 年代 k 1 b 2 - b 1 1 b 2 - b 1 k b 1 b 2 年代 k

在哪里

  • 年代 k 光谱值在bin吗 k .震级谱和功率谱都是常用的。

  • b 1 而且 b 2 是带边,以箱为单位,在其上计算光谱平坦度。

光谱平坦度是光谱峰值的指示。谱平坦度越高,表示噪声越高,谱平坦度越低,表示调性越高。

[音频,fs] = audioread(“waveguideloopone - 24 - 96立体声- 10 - secs.aif”);音频= sum(音频,2)/2;噪音=(2 *兰特(元素个数(音频),1)1)。* linspace(0、0.05、元素个数(音频))';音频=音频+噪音;平坦度= spectral平坦度(音频,fs);Subplot (2,1,1) t = linspace(0,size(audio,1)/fs,size(audio,1));情节(t)、音频)ylabel (“振幅”) subplot(2,1,2) t = linspace(0,size(音频,1)/fs,size(平面度,1));情节(t,平面度)ylabel (“平坦”)包含(“时间(s)”

图中包含2个轴对象。Axes对象1包含一个line类型的对象。坐标轴对象2包含一个line类型的对象。

谱平坦度也已成功应用于歌唱语音检测[10]和音频场景识别[11].

光谱波峰

谱峰(spectralCrest)量度频谱的最大值与频谱的算术平均值之比[1]:

佳洁士 马克斯 年代 k ϵ b 1 b 2 1 b 2 - b 1 k b 1 b 2 年代 k

在哪里

  • 年代 k 光谱值在bin吗 k .震级谱和功率谱都是常用的。

  • b 1 而且 b 2 是带边,以箱为单位,在其上计算光谱波峰。

谱峰是光谱峰值的指示。较高的光谱波峰表明更多的调性,而较低的光谱波峰表明更多的噪声。

[音频,fs] = audioread(“waveguideloopone - 24 - 96立体声- 10 - secs.aif”);音频= sum(音频,2)/2;噪音=(2 *兰特(元素个数(音频),1)1)。* linspace(0、0.2、元素个数(音频))';音频=音频+噪音;crest = spectralCrest(音频,fs);Subplot (2,1,1) t = linspace(0,size(audio,1)/fs,size(audio,1));情节(t)、音频)ylabel (“振幅”) subplot(2,1,2) t = linspace(0,size(audio,1)/fs,size(crest,1));情节(t,嵴)ylabel (“佳洁士”)包含(“时间(s)”

图中包含2个轴对象。Axes对象1包含一个line类型的对象。坐标轴对象2包含一个line类型的对象。

谱通量

光谱通量(spectralFlux)是测量光谱随时间变化的方法[12]:

通量 t k b 1 b 2 | 年代 k t - 年代 k t - 1 | p 1 p

在哪里

  • 年代 k 光谱值在bin吗 k .震级谱和功率谱都是常用的。

  • b 1 而且 b 2 是带边,以箱为单位,在其上计算光谱通量。

  • p 是标准类型。

谱通量广泛应用于发病检测[13]和音频分割[14].例如,鼓轨道中的节拍对应于高光谱通量。

[音频,fs] = audioread(“FunkyDrums-48-stereo-25secs.mp3”);音频= sum(音频,2)/2;通量= spectralFlux(音频,fs);Subplot (2,1,1) t = linspace(0,size(audio,1)/fs,size(audio,1));情节(t)、音频)ylabel (“振幅”) subplot(2,1,2) t = linspace(0,size(audio,1)/fs,size(flux,1));情节(t,通量)ylabel (“通量”)包含(“时间(s)”

图中包含2个轴对象。Axes对象1包含一个line类型的对象。坐标轴对象2包含一个line类型的对象。

光谱斜率

谱斜率(spectralSlope)量度光谱的衰减量[15]:

k b 1 b 2 f k - μ f 年代 k - μ 年代 k b 1 b 2 f k - μ f 2

在哪里

  • f k 以Hz为单位的频率是否对应bin k

  • μ f 是平均频率。

  • 年代 k 光谱值在bin吗 k .震级谱是常用的。

  • μ 年代 为平均谱值。

  • b 1 而且 b 2 是带边,以箱为单位,在其上计算光谱斜率。

频谱斜率在语音分析中被广泛应用,特别是在说话者应力建模中[19].坡度与声带的共振特性直接相关,也被应用于说话人的识别[21].光谱斜率是音色的一个重要方面。谱斜率辨别已被证明发生在儿童早期发展中[20.].当低峰能量远大于高峰能量时,谱斜率最为明显。

[female,femaleFs] = audioread(“FemaleSpeech-16-8-mono-3secs.wav”);Female = Female ./max(女性);femaleSlope = spectralSlope(female,femaleFs);t = linspace(0,size(female,1)/femaleFs,size(femaleSlope,1))次要情节(2,1,1)谱图(女,圆(femaleFs * 0.05),圆(femaleFs * 0.04),圆(femaleFs * 0.05), femaleFs,“桠溪”“权力”) subplot(2,1,2) plot(t,femaleSlope)标题(“女性演讲者”) ylabel (“坡”)包含(“时间(s)”

图中包含2个轴对象。坐标轴对象1包含一个image类型的对象。标题为Female Speaker的坐标轴对象2包含一个类型为line的对象。

光谱减少

光谱下降(spectralDecrease)表示频谱的下降量,同时强调较低频率的斜率[1]:

减少 k b 1 + 1 b 2 年代 k - 年代 b 1 k - 1 k b 1 + 1 b 2 年代 k

在哪里

  • 年代 k 光谱值在bin吗 k .震级谱是常用的。

  • b 1 而且 b 2 是带边,以箱为单位,在其上计算光谱衰减。

在语音文献中,频谱衰减的使用频率低于频谱斜率,但在音乐分析中,它与斜率一起被普遍使用。特别是,光谱减少已被证明在仪器识别中表现良好[22].

[吉他,guitarFs] = audioread(“rockguitar - 16 - 44 - p1 -立体声- 72 secs.wav”);吉他= mean(吉他,2);[鼓点,鼓点]= audioread(“RockDrums-44p1-stereo-11secs.mp3”);鼓=平均值(鼓,2);guitarreduce = spectralreduce(吉他,guitarFs);drumsreduce = spectralreduce(鼓,drumsFs);t1 = linspace(0,size(吉他,1)/guitarFs,size(吉他,1));t2 = linspace(0,size(drums,1)/drumsFs,size(drumsreduce,1));subplot(2,1,1) plot(t1, guitarreduce)“吉他”) ylabel (“减少”)轴([0 10 -0.3 0.3])subplot(2,1,2) plot(t2, drumsreduce)“鼓”) ylabel (“减少”)包含(“时间(s)”)轴([0 10 -0.3 0.3])

图中包含2个轴对象。标题为Guitar的Axes对象1包含一个类型为line的对象。带有标题Drums的Axes对象2包含一个line类型的对象。

光谱滚落点

光谱滚落点(spectralRolloffPoint)量度音频讯号的频宽,方法是测定总能量的给定百分比所处的频仓[12]:

滚边 这样的 k b 1 | 年代 k | κ k b 1 b 2 年代 k

在哪里

  • 年代 k 光谱值在bin吗 k .震级谱和功率谱都是常用的。

  • b 1 而且 b 2 是带边,以箱为单位,在其上计算光谱滚落点。

  • κ 是指定的能量阈值,通常为95%或85%。

被转换为Hz,然后由spectralRolloffPoint

频谱滚转点已被用于区分浊音和清音语音,语音/音乐辨别[12]、音乐类型分类[16]、声场景识别[17],以及音乐情绪分类[18].例如,观察语音、摇滚吉他、原声吉他和原声场景的滚动点的不同均值和方差。

Dur = 5;从每个文件中截取5秒。[speech,fs1] = audioread(“SpeechDFT-16-8-mono-5secs.wav”);Speech = Speech (1:min(end,fs1*dur));[电子吉他,fs2] = audioread(“rockguitar - 16 - 44 - p1 -立体声- 72 secs.wav”);电吉他= mean(电吉他,2);%转换为单声道进行比较。电吉他=电吉他(1:fs2*dur);[acousticGuitar,fs3] = audioread(“SoftGuitar-44p1_mono-10mins.ogg”);声学吉他=声学吉他(1:fs3*dur);[soundscene,fs4] = audioread(“MainStreetOne-16-16-mono-12secs.wav”);acousticScene =声学场景(1:fs4*dur);r1 = spectralRolloffPoint(语音,fs1);r2 = spectralRolloffPoint(电吉他,fs2);r3 = spectralRolloffPoint(acousticGuitar,fs3);r4 = spectralRolloffPoint(acousticScene,fs4);T1 = linspace(0,size(speech,1)/fs1,size(r1,1));t2 = linspace(0,size(electricGuitar,1)/fs2,size(r2,1));t3 = linspace(0,size(acousticGuitar,1)/fs3,size(r3,1));t4 = linspace(0,size(acousticScene,1)/fs4,size(r4,1)); figure plot(t1,r1) title(“演讲”) ylabel (“滚落点(Hz)”)包含(“时间(s)”)轴([0 5 0 4000])

图中包含一个轴对象。标题为Speech的axes对象包含一个类型为line的对象。

图(t2,r2)“摇滚吉他”) ylabel (“滚落点(Hz)”)包含(“时间(s)”)轴([0 5 0 4000])

图中包含一个轴对象。标题为Rock Guitar的axes对象包含一个类型为line的对象。

图(t3,r3)木吉他的) ylabel (“滚落点(Hz)”)包含(“时间(s)”)轴([0 5 0 4000])

图中包含一个轴对象。标题为“声学吉他”的axes对象包含一个类型为line的对象。

图图(t4,r4)“声场景”) ylabel (“滚落点(Hz)”)包含(“时间(s)”)轴([0 5 0 4000])

图中包含一个轴对象。标题为Acoustic Scene的axis对象包含一个类型为line的对象。

参考文献

[1]彼得斯,G。CUIDADO项目中用于声音描述(相似性和分类)的大量音频特征集。技术报告;IRCAM:法国巴黎,2004年。

格雷,约翰·M,约翰·w·戈登。“光谱修饰对音乐音色的知觉影响”美国声学学会杂志。第63卷,第5期,1978年,第1493-1500页。

Raimy, Eric和Charles E. Cairns。语音学和音系学部分.霍博肯,新泽西州:John Wiley & Sons Inc., 2015。

[4]琼曼,阿拉德等,“英语摩擦语的声学特征”。美国声学学会杂志。第108卷,2000年第3期,第1252-1263页。

[5]张珊珊,郭玉玉,张q,“基于谱峰度的鲁棒语音活动检测特征设计”。第一届教育技术与计算机科学国际研讨会, 2009, pp. 269-272。

[6]米斯拉,H., S.伊克巴尔,H.波拉德和H.赫曼斯基。基于谱熵的鲁棒ASR特征。2004年IEEE声学、语音和信号处理国际会议

[7] A. Pikrakis, T. Giannakopoulos, S. Theodoridis。“一种计算高效的无线电录音语音/音乐鉴别器。”音乐信息检索及相关活动国际会议, 2006年。

[8] Pikrakis, A.等,“基于动态规划和贝叶斯网络的无线电录音语音/音乐鉴别器”。IEEE多媒体汇刊。第10卷,第5期,2008,第846-857页。

[9] Johnston j.d.,“使用知觉噪声准则的音频信号转换编码”。IEEE通讯选定领域杂志。第6卷,第2期,1988年,第314-323页。

[10] Lehner, Bernhard等人,“关于减少唱歌声音检测中的假阳性。”2014 IEEE声学、语音与信号处理国际会议(ICASSP), 2014年。

[11] Y. Petetin, C. Laroche和A. Mayoue,“音频场景识别的深度神经网络,”2015年第23届欧洲信号处理会议(EUSIPCO)2015.

[12]谢勒,E., M.斯兰尼。鲁棒多特征语音/音乐鉴别器的构建和评估1997年IEEE声学、语音和信号处理国际会议,1997

[13] S. Dixon,“重新审视发病检测。”数字音频效果国际会议。Vol. 120, 2006, pp. 133-137。

[14]扎内塔基斯,G.和P.库克。“浏览和注释的多功能音频分割。”1999年IEEE信号处理在音频和声学中的应用研讨会论文集,1999.

[15]勒奇,亚历山大。音频内容分析在信号处理和音乐信息学中的应用简介.皮斯卡塔韦,新泽西州:IEEE出版社,2012。

[16]李,陶,和小原。“音乐类型分类与分类学”我EEE声学、语音与信号处理国际会议,2005

[17] Eronen, a.j., v.t. Peltonen, j.t. Tuomi, a.p. Klapuri, S. Fagerlund, T. Sorsa, G. Lorho和J. Huopaniemi。“基于音频的上下文识别。”IEEE音频、语音和语言处理汇刊。第14卷,第1期,2006,第321-329页。

[18]任嘉敏,吴明举,张志成罗杰。“基于音色和调制特征的音乐情绪自动分类。”IEEE情感计算汇刊。第6卷,2015年第3期,第236-246页。

[19]汉森,约翰·h·L,桑杰·佩蒂尔。压力下的言语:分析,建模和识别计算机科学课堂讲稿。Vol. 4343, 2007, pp. 108-137。

[20]曾荫权、克里斯汀·D和劳蕾尔·j·特雷纳。《婴儿期的光谱斜率辨别:对社会重要音色的敏感性》婴儿行为与发展。第25卷,2002年第2期,第183-194页。

[21]默蒂,h.a., F.波法斯,l.p.赫克和M.温特劳布。“在电话信道上的健壮的与文本无关的说话人识别。”IEEE语音与音频处理汇刊。第7卷,1999年第5期,第554-568页。

[22]埃西德,S., G.理查德,B.大卫。基于自动分类的复调音乐中的乐器识别IEEE音频、语音和语言处理汇刊。第14卷,第1期,2006,第68-80页。