返回一个矩阵以将线性比例谱图扭曲到 mel 比例。
用法
tf.signal.linear_to_mel_weight_matrix(
num_mel_bins=20, num_spectrogram_bins=129, sample_rate=8000,
lower_edge_hertz=125.0, upper_edge_hertz=3800.0, dtype=tf.dtypes.float32,
name=None
)
参数
-
num_mel_bins
Python int. 生成的梅尔频谱中有多少条带。 -
num_spectrogram_bins
一个整数Tensor
。源频谱图数据中有多少个 bin,可以理解为fft_size // 2 + 1
,即频谱图只包含非冗余 FFT bin。 -
sample_rate
整数或浮点数Tensor
。用于创建频谱图的输入信号的每秒样本数。用于计算与每个频谱图箱对应的频率,这决定了它们如何映射到梅尔标度中。 -
lower_edge_hertz
Python浮点数。要包含在 mel 频谱中的频率的下限。这对应于最低三角带的下边。 -
upper_edge_hertz
Python浮点数。最高频带的所需顶部边。 -
dtype
结果矩阵的DType
。必须是浮点类型。 -
name
操作的可选名称。
返回
-
形状为
[num_spectrogram_bins, num_mel_bins]
的Tensor
。
抛出
-
ValueError
如果num_mel_bins
/num_spectrogram_bins
/sample_rate
不是正数,lower_edge_hertz
是负数,频率边排序不正确,upper_edge_hertz
大于奈奎斯特频率。
返回一个权重矩阵,该矩阵可用于重新加权 Tensor
,其中包含 num_spectrogram_bins
从 [0, sample_rate / 2]
线性采样的频率信息到来自 [lower_edge_hertz, upper_edge_hertz]
的 num_mel_bins
频率信息。
此函数遵循隐马尔可夫模型工具包 (HTK) 约定,根据以下公式以频率为单位定义梅尔标度:
$$\textrm{mel}(f) = 2595 * \textrm{log}_{10}(1 + \frac{f}{700})$$
在返回的矩阵中,所有三角形(滤波器组)的峰值均为 1.0。
例如,返回的矩阵 A
可用于 right-multiply 一个谱图 S
的形状为 [frames, num_spectrogram_bins]
的线性标度谱值(例如 STFT 幅度),以生成一个 "mel spectrogram" M
的形状 [frames, num_mel_bins]
.
# `S` has shape [frames, num_spectrogram_bins]
# `M` has shape [frames, num_mel_bins]
M = tf.matmul(S, A)
该矩阵可与tf.tensordot
一起使用,将线性尺度频谱箱的任意秩Tensor
转换为梅尔尺度。
# S has shape [..., num_spectrogram_bins].
# M has shape [..., num_mel_bins].
M = tf.tensordot(S, A, 1)
相关用法
- Python tf.signal.overlap_and_add用法及代码示例
- Python tf.signal.frame用法及代码示例
- Python tf.signal.fftshift用法及代码示例
- Python tf.signal.inverse_mdct用法及代码示例
- Python tf.signal.mfccs_from_log_mel_spectrograms用法及代码示例
- Python tf.signal.ifftshift用法及代码示例
- Python tf.signal.inverse_stft用法及代码示例
- Python tf.size用法及代码示例
- Python tf.summary.scalar用法及代码示例
- Python tf.strings.substr用法及代码示例
- Python tf.strings.reduce_join用法及代码示例
- Python tf.sparse.cross用法及代码示例
- Python tf.sparse.mask用法及代码示例
- Python tf.strings.regex_full_match用法及代码示例
- Python tf.sparse.split用法及代码示例
- Python tf.strings.regex_replace用法及代码示例
- Python tf.strings.length用法及代码示例
- Python tf.strided_slice用法及代码示例
- Python tf.sparse.to_dense用法及代码示例
- Python tf.strings.bytes_split用法及代码示例
注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.signal.linear_to_mel_weight_matrix。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。