tf.signal.mfccs_from_log_mel_spectrograms
| Просмотреть исходный код на GitHub |
Вычисляет MFCC (Мел-частотные коэффициенты) для log_mel_spectrograms.
tf.signal.mfccs_from_log_mel_spectrograms(
log_mel_spectrograms, name=None
)
Реализовано с помощью совместимых с графическими процессорами операций и поддерживает градиенты.
Вычисление Мел-частотных коэффициентов (MFCC) основано на применении DCT-II к логарифмически масштабированному спектру Мел. MFCC в HTK используют определённое масштабирование DCT-II, которое обеспечивает почти ортогональную нормализацию. Мы следуем этой конвенции.
Возвращаются все MFCC и выбор подмножества MFCC для конкретной задачи зависит от пользователя. Например, для распознавания речи обычно используются только первые несколько MFCC, так как это позволяет получить приблизительно инвариантное к тону представление сигнала.
Например:
sample_rate = 16000.0
# A Tensor of [batch_size, num_samples] mono PCM samples in the range [-1, 1].
pcm = tf.compat.v1.placeholder(tf.float32, [None, None])
# 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]
| Аргументы | |
|---|---|
log_mel_spectrograms | Матрица/тензор логарифмически масштабированных спектров Мел. |
name | Необязательное имя операции. |
| Возвращаемые значения | |
|---|---|
| Матрица/тензор MFCC для указанных спектров. |
| Исключения | |
|---|---|
ValueError | Если num_mel_bins не положительно. |
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/signal/mfccs_from_log_mel_spectrograms