主要内容

melSpectrogram

梅尔·光谱图

自从R2019a

描述

例子

年代= melSpectrogram (audioIn,fs)返回梅尔声谱图的采样率的音频输入fs。函数对输入的列作为单独的通道。

例子

年代= melSpectrogram (audioIn,fs,名称,值)使用一个或多个指定选项名称,值对参数。

例子

(年代,F,T)= melSpectrogram (___)返回的中心频率乐队在赫兹和每个窗口的位置在几秒钟内的数据。对应于每个窗口的中心位置。您可以使用该输出与任何以前的语法输入语法。

例子

melSpectrogram (___)情节表面上的梅尔谱图在当前图。

例子

全部折叠

使用默认设置来计算梅尔声谱图整个音频文件。打印的带通滤波器滤波器组和梅尔·声谱图的帧数。

[audioIn, fs] = audioread (“Counting-16-44p1-mono-15secs.wav”);S = melSpectrogram (audioIn fs);[numBands, numFrames] = (S)大小;流(“filterbank的带通滤波器数量:% d \ n”numBands)
filterbank的带通滤波器数量:32
流(“声谱图的帧数:% d \ n”numFrames)
谱图的帧数量:1551

绘制梅尔声谱图。

melSpectrogram (audioIn fs)

图包含一个坐标轴对象。坐标轴对象包含时间(s), ylabel频率(赫兹)包含一个类型的对象的形象。

梅尔·光谱的计算周期损害windows 2048点与1024点重叠。转换为使用4096点FFT频域。通过频域表示到64年half-overlapped三角形带通滤波器,跨度62.5赫兹到8 kHz范围。

[audioIn, fs] = audioread (“FunkyDrums-44p1-stereo-25secs.mp3”);S = melSpectrogram (audioIn fs,“窗口”损害(2048,“周期”),“OverlapLength”,1024,“FFTLength”,4096,“NumBands”,64,“FrequencyRange”,62.5,8 e3);

调用melSpectrogram再一次,这一次没有输出参数,以便您可以可视化梅尔·声谱图。输入音频是一个多路信号。如果你叫melSpectrogram一个多通道的输入和输出参数,只绘制第一通道。

melSpectrogram (audioIn fs,“窗口”损害(2048,“周期”),“OverlapLength”,1024,“FFTLength”,4096,“NumBands”,64,“FrequencyRange”,62.5,8 e3)

图包含一个坐标轴对象。坐标轴对象包含时间(s), ylabel频率(赫兹)包含一个类型的对象的形象。

melSpectrogram应用频域滤波器银行窗口的音频信号。你可以得到滤波器的中心频率和相对应的时间瞬间分析windows作为第二个和第三个输出参数melSpectrogram

梅尔·声谱图,过滤器银行中心频率,分析窗口时间多路音频信号的瞬间。使用中心频率和时间瞬间情节梅尔为每个通道光谱图。

[audioIn, fs] = audioread (“AudioArray-16-16-4channels-20secs.wav”);(年代,cF, t) = melSpectrogram (audioIn fs);S = 10 * log10 (S + eps);%转换为策划dBi = 1:尺寸(3),图(我)冲浪(t, cF, S(:,:我),“EdgeColor”,“没有”);包含(“时间(s)”)ylabel (的频率(赫兹),90年)视图([0])标题(sprintf (“频道% d ',我)轴([t (1) t(结束)cF (1) cF(结束)])结束

图包含一个坐标轴对象。坐标轴对象与标题频道1,包含时间(s), ylabel频率(赫兹)包含一个对象类型的表面。

图包含一个坐标轴对象。坐标轴对象与标题通道2,包含时间(s), ylabel频率(赫兹)包含一个对象类型的表面。

图包含一个坐标轴对象。坐标轴对象标题频道3,包含时间(s), ylabel频率(赫兹)包含一个对象类型的表面。

图包含一个坐标轴对象。坐标轴对象标题4频道,包含时间(s), ylabel频率(赫兹)包含一个对象类型的表面。

输入参数

全部折叠

音频输入,指定为一个列向量或矩阵。如果指定为一个矩阵,该函数将列视为独立的音频通道。

数据类型:|

输入采样率在赫兹,指定为一个积极的标量。

数据类型:|

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

例子:“WindowLength”, 1024年

应用于时域窗口,指定为逗号分隔组成的“窗口”和一个真正的向量。向量中的元素的数量必须在[1,大小(audioIn,1)]。向量中的元素的数量也必须大于OverlapLength

数据类型:|

在样本,分析窗口重叠长度指定为逗号分隔组成的“OverlapLength”和一个整数范围[0,(WindowLength- 1))

数据类型:|

点数用来计算DFT,指定为逗号分隔组成的“FFTLength”和一个正整数大于或等于WindowLength。如果未指定的,FFTLength默认为WindowLength

数据类型:|

梅尔带通滤波器,指定为逗号分隔组成的“NumBands”和一个正整数。

数据类型:|

频率范围的计算梅尔·赫兹声谱图,指定为逗号分隔组成的“FrequencyRange”双元素行向量和一个单调递增的值的范围[0,fs/ 2)

数据类型:|

梅尔·谱图类型,指定为逗号分隔组成的“SpectrumType”“权力”“级”

数据类型:字符|字符串

应用窗口规范化,指定为逗号分隔组成的“WindowNormalization”真正的。当WindowNormalization被设置为真正的,梅尔谱图(或大小)是规范化去除时域的权力(或程度)窗口

数据类型:字符|字符串

类型的过滤器银行规范化,指定为逗号分隔组成的“FilterBankNormalization”“带宽”,“区域”,或“没有”

数据类型:字符|字符串

输出参数

全部折叠

梅尔·声谱图,返回为一个列向量,矩阵,或三维数组。的尺寸年代l——- - - - - -——- - - - - -N,地点:

  • l是频率垃圾箱的数量在每个梅尔频谱。NumBandsfs确定l

  • 是音频信号的帧数划分。大小(audioIn,1),WindowLength,OverlapLength确定

  • N通道的数量,这样吗N=大小(audioIn,2)

拖单维度从输出中删除年代

数据类型:|

在赫兹梅尔带通滤波器的中心频率,返回一个行向量的长度大小(年代,1)

数据类型:|

每个分析窗口的位置的音频在几秒钟内,返回一个行向量的长度大小(年代,2)。对应于每个窗口的中心位置。

数据类型:|

算法

全部折叠

melSpectrogram函数遵循通用的算法来计算一个梅尔光谱图中描述[1]

在该算法中,首先缓冲音频输入的帧元素个数(窗口)样品的数量。帧是重叠的OverlapLength样品的数量。指定的窗口应用于每一帧,然后帧转换为频域表示FFTLength点的数量。频域表示可以是大小或权力,规定SpectrumType。如果WindowNormalization被设置为真正的靠窗的,光谱归一化。每一帧的频域表示经过梅尔过滤器银行。梅尔滤波器组的输出光谱值求和,然后通道连接,以便每一帧转换为NumBands元列向量。

滤波器组的设计

梅尔·过滤器银行设计half-overlapped三角过滤器等距的mel刻度。NumBands控制梅尔带通滤波器的数量。FrequencyRange控制带边缘的第一个和最后一个过滤器梅尔·滤波器组。FilterBankNormalization指定类型的标准化应用于个人的乐队。

引用

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

扩展功能

GPU的代码生成
生成NVIDIA的CUDA®代码®GPU使用GPU编码器™。

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

版本历史

介绍了R2019a

全部展开