tf.signal.linear_to_mel_weight_matrix
| Посмотреть исходный код на GitHub |
Возвращает матрицу для преобразования линейного спектрограммы в шкалу мел.
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), определяя шкалу мел в терминах частоты в герцах по следующей формуле:
Во всех треугольниках (фильтровых банках) в возвращаемой матрице значение пика равно 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 |
Тип данных результата матрицы. Должен быть типом с плавающей запятой. |
name |
Необязательное имя операции. |
| Возвращает | |
|---|---|
Матрица Tensor формы [num_spectrogram_bins, num_mel_bins]. |
| Возбуждает | |
|---|---|
ValueError |
Если num_mel_bins/num_spectrogram_bins/sample_rate не положительные, lower_edge_hertz отрицательное, края частоты упорядочены неправильно, upper_edge_hertz больше частоты Найквиста. |
© 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/r2.4/api_docs/python/tf/signal/linear_to_mel_weight_matrix