计算 log_mel_spectrograms
的 MFCC。
用法
tf.signal.mfccs_from_log_mel_spectrograms(
log_mel_spectrograms, name=None
)
参数
-
log_mel_spectrograms
[..., num_mel_bins]
float32
/float64
Tensor
of log-magnitude mel-scale 频谱图。 -
name
操作的可选名称。
返回
-
[..., num_mel_bins]
float32
/float64
Tensor
的log_mel_spectrograms
的 MFCC。
抛出
-
ValueError
如果num_mel_bins
不是正数。
使用GPU-compatible ops 实现并支持渐变。
Mel-Frequency 倒谱系数 (MFCC) 计算包括获取 log-magnitude mel-scale 频谱图的 DCT-II。 HTK 的 MFCC 使用 DCT-II 的特定缩放比例,这几乎是正交归一化。我们遵循这个约定。
返回所有num_mel_bins
MFCC,并由调用者根据其应用程序选择 MFCC 的子集。例如,通常只使用前几个进行语音识别,因为这会导致信号的近似 pitch-invariant 表示。
例如:
batch_size, num_samples, sample_rate = 32, 32000, 16000.0
# A Tensor of [batch_size, num_samples] mono PCM samples in the range [-1, 1].
pcm = tf.random.normal([batch_size, num_samples], dtype=tf.float32)
# A 1024-point STFT with frames of 64 ms and 75% overlap.
stfts = tf.signal.stft(pcm, frame_length=1024, frame_step=256,
fft_length=1024)
spectrograms = tf.abs(stfts)
# Warp the linear scale spectrograms into the mel-scale.
num_spectrogram_bins = stfts.shape[-1].value
lower_edge_hertz, upper_edge_hertz, num_mel_bins = 80.0, 7600.0, 80
linear_to_mel_weight_matrix = tf.signal.linear_to_mel_weight_matrix(
num_mel_bins, num_spectrogram_bins, sample_rate, lower_edge_hertz,
upper_edge_hertz)
mel_spectrograms = tf.tensordot(
spectrograms, linear_to_mel_weight_matrix, 1)
mel_spectrograms.set_shape(spectrograms.shape[:-1].concatenate(
linear_to_mel_weight_matrix.shape[-1:]))
# Compute a stabilized log to get log-magnitude mel-scale spectrograms.
log_mel_spectrograms = tf.math.log(mel_spectrograms + 1e-6)
# Compute MFCCs from log_mel_spectrograms and take the first 13.
mfccs = tf.signal.mfccs_from_log_mel_spectrograms(
log_mel_spectrograms)[...,:13]
相关用法
- Python tf.signal.overlap_and_add用法及代码示例
- Python tf.signal.frame用法及代码示例
- Python tf.signal.linear_to_mel_weight_matrix用法及代码示例
- Python tf.signal.fftshift用法及代码示例
- Python tf.signal.inverse_mdct用法及代码示例
- 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.mfccs_from_log_mel_spectrograms。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。