Spec-Zone.ru › TensorFlow

tf.signal.linear_to_mel_weight_matrix

Возвращает матрицу для преобразования спектрограмм с линейной шкалой в мел-шкалу.

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

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

Подробнее см. в руководстве по миграции.

tf.compat.v1.signal.linear_to_mel_weight_matrix

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
)

Возвращает матрицу весов, которую можно использовать для перевзвешивания Tensor, содержащего num_spectrogram_bins линейно дискретизированных частотных данных из [0, sample_rate / 2], в num_mel_bins частотных данных из [lower_edge_hertz, upper_edge_hertz] в мел-шкале.

Эта функция следует соглашению Hidden Markov Model Toolkit (HTK), определяя мел-шкалу через частоту в герцах согласно следующей формуле:

$$\textrm{mel}(f) = 2595 * \textrm{log}_{10}(1 + \frac{f}{700})$$

В возвращаемой матрице все треугольники (банки фильтров) имеют пиковое значение 1.0.

Например, возвращаемую матрицу A можно умножить справа на спектрограмму S формы [frames, num_spectrogram_bins] со значениями спектра в линейной шкале (например, амплитудами STFT), чтобы получить «мел-спектрограмму» 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)
Аргументы
num_mel_bins Целое число Python. Количество полос в результирующем мел-спектре.
num_spectrogram_bins Целое число Tensor. Количество отсчётов в данных исходной спектрограммы, которая предполагается fft_size // 2 + 1, то есть спектрограмма содержит только избыточные FFT-отсчёты.
sample_rate Целое число или число с плавающей запятой Tensor. Количество отсчётов входного сигнала в секунду, использованного для создания спектрограммы. Используется для определения частот, соответствующих каждому отсчёту спектрограммы, от чего зависит их отображение в мел-шкалу.
lower_edge_hertz Число с плавающей запятой Python. Нижняя граница частот, включаемых в мел-спектр. Соответствует нижнему краю самой низкой треугольной полосы.
upper_edge_hertz Число с плавающей запятой Python. Желаемая верхняя граница самой высокой частотной полосы.
dtype DType результирующей матрицы. Должен быть типом с плавающей запятой.
name Необязательное имя операции.
Возвращает
Tensor формы [num_spectrogram_bins, num_mel_bins].
Вызывает исключения
ValueError Если num_mel_bins/num_spectrogram_bins/sample_rate не являются положительными, lower_edge_hertz отрицательно, границы частот заданы в неправильном порядке или upper_edge_hertz превышает частоту Найквиста.

© 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/linear_to_mel_weight_matrix

Spec-Zone.ru

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