tf.signal.обратное_стф
| Просмотреть исходный код на GitHub |
Вычисляет обратное преобразование Шорта-Тиммера Фурье от 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 | A 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 | Необязательное имя операции. |
| Возвращаемые значения | |
|---|---|
A [..., 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/versions/r2.9/api_docs/python/tf/signal/inverse_stft