Spec-Zone.ru › TensorFlow

tf.signal.mfccs_from_log_mel_spectrograms

Вычисляет MFCC для log_mel_spectrograms.

Просмотреть псевдонимы

Псевдонимы для совместимости при миграции

Дополнительные сведения см. в руководстве по миграции.

tf.compat.v1.signal.mfccs_from_log_mel_spectrograms

tf.signal.mfccs_from_log_mel_spectrograms(
    log_mel_spectrograms, name=None
)

Реализована с помощью операций, совместимых с GPU, и поддерживает вычисление градиентов.

Вычисление мел-частотных кепстральных коэффициентов (MFCC) заключается в применении DCT-II к спектрограмме мел-шкалы логарифмической амплитуды. В MFCC из HTK используется особый масштабный коэффициент DCT-II, обеспечивающий почти ортогональную нормализацию. Мы следуем этому соглашению.

Возвращаются все коэффициенты MFCC num_mel_bins, и вызывающий код сам выбирает подмножество коэффициентов MFCC в зависимости от конкретной задачи. Например, при распознавании речи обычно используют только первые несколько коэффициентов, поскольку это позволяет получить представление сигнала, приблизительно инвариантное к высоте тона.

Например:

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]
Аргументы
log_mel_spectrograms [..., num_mel_bins] float32/float64 Tensor логарифмических спектрограмм мел-шкалы.
name Необязательное имя операции.
Возвращает
[..., num_mel_bins] float32/float64 Tensor MFCC для log_mel_spectrograms.
Вызывает исключение
ValueError Если num_mel_bins не является положительным числом.

© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/signal/mfccs_from_log_mel_spectrograms

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API