tf.signal.inverse_stft
Вычисляет обратное кратковременное преобразование Фурье для stfts.
tf.signal.inverse_stft(
stfts,
frame_length,
frame_step,
fft_length=None,
window_fn=tf.signal.hann_window,
name=None
)
Для восстановления исходной формы сигнала вместе с inverse_stft следует использовать дополнительную оконную функцию. Такую оконную функцию можно создать с помощью tf.signal.inverse_stft_window_fn. Пример:
frame_length = 400
frame_step = 160
waveform = tf.random.normal(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))
Если с tf.signal.stft используется пользовательская функция window_fn, ее необходимо передать в tf.signal.inverse_stft_window_fn:
frame_length = 400
frame_step = 160
window_fn = tf.signal.hamming_window
waveform = tf.random.normal(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))
Реализовано с использованием операций, совместимых с TPU/GPU; поддерживает вычисление градиентов.
| Аргументы | |
|---|---|
stfts | complex64/complex128 [..., frames, fft_unique_bins] Tensor STFT-бинов, представляющий пакет STFT-преобразований с fft_length точками, где fft_unique_bins — fft_length // 2 + 1 |
frame_length | Целочисленный скаляр Tensor. Длина окна в отсчетах. |
frame_step | Целочисленный скаляр Tensor. Количество отсчетов между шагами. |
fft_length | Целочисленный скаляр Tensor. Размер БПФ, с помощью которого получено stfts. Если не задан, используется наименьшая степень двойки, не меньшая frame_length. |
window_fn | Вызываемый объект, принимающий длину окна и именованный аргумент dtype и возвращающий [window_length] Tensor отсчетов указанного типа данных. Если задано значение None, оконная функция не используется. |
name | Необязательное имя операции. |
| Возвращает | |
|---|---|
[..., samples] Tensor сигналов float32/float64, представляющих обратное STFT-преобразование для каждого входного STFT-преобразования в stfts. |
| Вызывает исключение | |
|---|---|
ValueError | Если ранг stfts меньше 2, frame_length не является скаляром, frame_step не является скаляром или fft_length не является скаляром. |
© 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/inverse_stft