tf.signal.inverse_stft
| View source on GitHub |
Вычисляет обратное преобразование свёртки коротких временных интервалов (%Short-time Fourier Transform) от stfts.
tf.signal.inverse_stft(
stfts, frame_length, frame_step, fft_length=None,
window_fn=tf.signal.hann_window, name=None
)
Для восстановления исходного волнового сигнала в обратном преобразовании свёртки коротких временных интервалов необходимо использовать дополнительную функцию окна. Такую функцию окна можно создать с помощью tf.signal.inverse_stft_window_fn.
Пример:
frame_length = 400
frame_step = 160
waveform = tf.compat.v1.placeholder(dtype=tf.float32, shape=[1000])
stft = tf.signal.stft(waveform, frame_length, frame_step)
inverse_stft = tf.signal.inverse_stft(
stft, frame_length, frame_step,
window_fn=tf.signal.inverse_stft_window_fn(frame_step))
Если в stft используется пользовательская функция окна window_fn, она должна быть передана в inverse_stft_window_fn:
frame_length = 400
frame_step = 160
window_fn = functools.partial(window_ops.hamming_window, periodic=True),
waveform = tf.compat.v1.placeholder(dtype=tf.float32, shape=[1000])
stft = tf.signal.stft(
waveform, frame_length, frame_step, window_fn=window_fn)
inverse_stft = tf.signal.inverse_stft(
stft, frame_length, frame_step,
window_fn=tf.signal.inverse_stft_window_fn(
frame_step, forward_window_fn=window_fn))
Реализовано с поддержкой операций для GPU и градиентов.
| Аргументы | |
|---|---|
stfts |
Матрица STFT-данных, представляющая собой пакет STFT-данных длиной fft_length точек, где fft_unique_bins равно fft_length // 2 + 1. |
frame_length |
Скалярное целое число. Длина окна в выборках. |
frame_step |
Скалярное целое число. Количество выборок для шага. |
fft_length |
Скалярное целое число. Размер FFT, который породил stfts. Если не указано, используется ближайшая степень двойки, большая или равная frame_length. |
window_fn |
Функция, которая принимает длину окна и ключевое слово dtype и возвращает [window_length] массив выборок в указанном типе данных. Если установлено в None, то никаких оконных функций не используется. |
name |
Необязательное имя операции. |
| Возвращает | |
|---|---|
Массив сигналов, представляющих обратное преобразование свёртки коротких временных интервалов для каждого входного STFT в stfts. |
| Возможные исключения | |
|---|---|
ValueError |
Если stfts не имеет хотя бы ранг 2, frame_length не скаляр, frame_step не скаляр, или fft_length не скаляр. |
© 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/inverse_stft