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))
Если используется настраиваемая window_fn с tf.signal.stft, она должна быть передана в 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, представляющих пакет fft_length-точечных преобразований STFT, где fft_unique_bins равно fft_length // 2 + 1 |
frame_length | Скалярное целое число Tensor. Длина окна в выборках. |
frame_step | Скалярное целое число Tensor. Количество шагов выборки. |
fft_length | Скалярное целое число Tensor. Размер FFT, сгенерировавшего 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