梅尔权重矩阵

MelWeightMatrix - 17

版本

  • 名称: MelWeightMatrix (GitHub)

  • 域名: main

  • since_version: 17

  • 函数: False

  • support_level: SupportType.COMMON

  • 形状推断: True

此版本的运算符自版本17起可用。

摘要

生成一个MelWeightMatrix,可用于将包含线性采样频率谱(来自DFT或STFT)的张量重新加权为基于[low_edge_hertz, upper_edge_hertz]范围的mel尺度上的num_mel_bins频率信息。 此函数根据以下公式以赫兹为单位定义mel尺度:

mel(f) = 2595 * log10(1 + f/700)

在返回的矩阵中,所有的三角形(滤波器组)都有一个峰值为1.0。

返回的MelWeightMatrix可以用于右乘一个形状为[frames, num_spectrogram_bins]的线性频谱值(例如STFT幅度)的频谱图S,以生成形状为[frames, num_mel_bins]的“梅尔频谱图”M。

属性

  • output_datatype - INT (默认值为 '1'):

    输出张量的数据类型。严格来说,必须是TensorProto中DataType枚举的值之一,这些值对应于T3。默认值为1 = FLOAT。

输入

  • num_mel_bins (异构) - T1:

    梅尔频谱中的频带数量。

  • dft_length (异构) - T1:

    原始DFT的大小。原始DFT的大小用于推断单侧DFT的大小,单侧DFT的大小被理解为floor(dft_length/2) + 1,即频谱图仅包含非冗余的DFT频段。

  • sample_rate (异构) - T1:

    用于创建频谱图的输入信号的每秒样本数。用于确定每个频谱图箱对应的频率,这决定了它们如何映射到梅尔刻度。

  • lower_edge_hertz (异构) - T2:

    要包含在梅尔频谱中的频率下限。这对应于最低三角带的下边缘。

  • upper_edge_hertz (异构) - T2:

    所需最高频段的顶部边缘。

输出

  • 输出 (异构) - T3:

    梅尔权重矩阵。输出的形状为:[floor(dft_length/2) + 1][num_mel_bins]。

类型约束

  • T1 在 ( tensor(int32), tensor(int64) ) 中:

    限制为整数张量。

  • T2 在 ( tensor(bfloat16), tensor(double), tensor(float), tensor(float16) ) 中:

    限制为浮点张量

  • T3 在 ( tensor(bfloat16), tensor(double), tensor(float), tensor(float16), tensor(int16), tensor(int32), tensor(int64), tensor(int8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(uint8) ):

    约束为任何数值类型。