主要内容

光谱图

梅尔谱图

描述

实例

s=光谱图(音频素,财政司司长)以采样率返回音频输入的mel频谱图财政司司长。该函数将输入列视为单个通道。

实例

s=光谱图(音频素,财政司司长,名称、值)指定使用一个或多个选项的选项名称、值对参数。

实例

[s,F,T]=光谱图(___)以Hz为单位返回频带的中心频率,以秒为单位返回每个数据窗口的位置。该位置对应于每个窗口的中心。您可以将此输出语法与以前的任何输入语法一起使用。

实例

光谱图(___)在当前图形的曲面上绘制mel光谱图。

例子

全部崩溃

使用默认设置计算整个音频文件的mel频谱图。打印滤波器组中带通滤波器的数量和mel频谱图中的帧数。

[audioIn,fs]=音频读取(“计数-16-44p1-mono-15秒波形”);S = melSpectrogram (audioIn fs);[numBands, numFrames] = (S)大小;fprintf(“滤波器组中的带通滤波器数量:%d\n”numBands)
滤波器组中的带通滤波器数量:32
fprintf(“光谱图中的帧数:%d\n”,numFrames)
频谱图中的帧数:1551

绘制mel谱图。

melSpectrogram (audioIn fs)

Figure包含axes对象。axes对象包含image类型的对象。

计算具有1024点重叠的2048点周期Hann窗的mel谱。转换到频率域使用4096点FFT。将频域表示法通过64个跨越62.5 Hz至8khz的半重叠三角形带通滤波器。

[audioIn,fs]=音频读取(“FunkyDrums-44p1-stereo-25secs.mp3”);S=频谱图(音频输入,fs,...“窗口”,hann(2048,“周期性”),...“重叠长度”,1024,...“FFTLength”,4096,...“NumBands”,64,...“FrequencyRange”,[62.5,8e3]);

呼叫光谱图同样,这一次没有输出参数,因此您可以可视化mel频谱图。输入音频是多通道信号。如果您调用光谱图使用多通道输入且无输出参数时,仅打印第一个通道。

melSpectrogram (audioIn fs,...“窗口”,hann(2048,“周期性”),...“重叠长度”,1024,...“FFTLength”,4096,...“NumBands”,64,...“FrequencyRange”,[62.5,8e3])

Figure包含axes对象。axes对象包含image类型的对象。

光谱图将频域滤波器组应用于在时间上加窗的音频信号。您可以获得过滤器的中心频率和与分析窗口相对应的时间瞬间作为第二个和第三个输出参数光谱图.

获取多声道音频信号的mel频谱图、滤波器组中心频率和分析窗口时间瞬间。使用中心频率和时间瞬间绘制每个声道的mel频谱图。

[audioIn,fs]=音频读取(“AudioArray-16-16-4声道-20sec.wav”);[S,cF,t]=melSpectrogram(audioIn,fs);S=10*log10(S+eps);%转换为dB进行绘图对于i=1:尺寸(S,3)图(i)表面(t,cF,S(:,:,i),“EdgeColor”,“没有”);xlabel(‘时间’)伊拉贝尔(‘频率(Hz)’)视图([0,90])标题(sprintf('频道%d'轴([t(1)t(end)cF(1)cF(end)])终止

图中包含axes对象。标题为Channel 1的axes对象包含surface类型的对象。

图中包含一个轴对象。标题为通道2的轴对象包含类型为surface的对象。

图中包含一个Axis对象。标题为Channel 3的Axis对象包含一个surface类型的对象。

图中包含一个axes对象。标题为Channel 4的axes对象包含一个surface类型的对象。

输入参数

全部崩溃

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

数据类型:仅有一个的|双重的

以Hz为单位的输入采样率,指定为正标量。

数据类型:仅有一个的|双重的

名称值参数

指定可选的逗号分隔的字符对名称、值参数。名称是参数名和价值是对应的值。名称必须出现在引号内。您可以按任意顺序指定多个名称和值对参数,如下所示:Name1, Value1,…,的家.

例子:“窗口长度”,1024

在时域应用的窗口,指定为逗号分隔的对,由“窗口”和一个实向量。向量中的元素数必须在[1,大小(音频素, 1)]。向量中的元素数也必须大于OverlapLength.

数据类型:仅有一个的|双重的

样本中的分析窗口重叠长度,指定为逗号分隔对,由“重叠长度”和范围内的整数[0, (窗长- 1)].

数据类型:仅有一个的|双重的

用于计算DFT的点数,指定为逗号分隔对,由“FFTLength”和大于或等于的正整数窗长如果unspecified,FFT长度默认为窗长.

数据类型:仅有一个的|双重的

mel带通滤波器的数量,指定为逗号分隔对,由“NumBands”一个正整数。

数据类型:仅有一个的|双重的

以Hz计算mel谱图的频率范围,指定为逗号分隔对,由“FrequencyRange”以及在该范围内单调递增值的两元素行向量[0,财政司司长/2].

数据类型:仅有一个的|双重的

mel谱图的类型,指定为逗号分隔对,包括“光谱类型”“权力”“震级”.

数据类型:字符|一串

应用窗口规范化,指定为逗号分隔对,由“窗口规范化”符合事实的错误的什么时候窗口规范化被设置为符合事实的,对mel谱图中的功率(或幅度)进行归一化,以去除时域的功率(或幅度).

数据类型:字符|一串

筛选器组规范化的类型,指定为逗号分隔对,由“过滤器组规范化”“带宽”,“区域”“没有”.

数据类型:字符|一串

输出参数

全部崩溃

Mel谱图,以列向量、矩阵或三维数组的形式返回sL——- - - - - -M——- - - - - -N,其中:

  • L是每个mel频谱中的频率箱数。麻木财政司司长决定L.

  • M是音频信号被分割成的帧数。大小(音频素, 1),窗长OverlapLength决定M.

  • N频道的数量是否为N=大小(音频素, 2).

将从输出中删除尾随的单例维度s.

数据类型:仅有一个的|双重的

mel带通滤波器的中心频率,以Hz为单位,以长度作为行向量返回大小(s, 1).

数据类型:仅有一个的|双重的

以秒为单位的每个音频分析窗口的位置,作为行向量长度返回大小(s, 2)。该位置对应于每个窗口的中心。

数据类型:仅有一个的|双重的

算法

全部崩溃

这个光谱图函数遵循通用算法计算mel谱图,如中所述[1].

在该算法中,音频输入首先被缓冲到音频帧中努梅尔()样本数。帧由OverlapLength样本数。指定的应用于每个帧,然后使用FFT长度点数。频域表示可以是幅值或功率,由谱型如果窗口规范化被设置为符合事实的,通过窗口对光谱进行归一化。频域表示的每一帧都通过mel滤波器组。对mel滤波器组输出的光谱值进行求和,然后将通道连接起来,以便将每个帧转换为麻木-元素列向量。

滤波器组设计

mel滤波器组设计为在mel尺度上等距分布的半重叠三角形滤波器。麻木控制mel带通滤波器的数量。FrequencyRange控制MEL滤波器组中第一个和最后一个滤波器的带边。滤波器组归一化指定应用于单个波段的规范化类型。

兼容性考虑

全部展开

未来版本中的行为改变

参考文献

[1] 拉比纳、劳伦斯R.和罗纳德W.谢弗。数字语音处理的理论与应用. 新泽西州上鞍河:皮尔森,2010年。

扩展能力

C/C++代码生成
使用Matlab®编码器生成C和C++代码™.

GPU代码生成
使用GPU编码器为NVIDIA®GPU生成CUDA®代码™.

GPU阵列
通过使用并行计算工具箱在图形处理单元(GPU)上运行来加速代码™.

在R2019a中引入