计算 stfts
的逆 Short-time 傅里叶变换。
用法
tf.signal.inverse_stft(
stfts, frame_length, frame_step, fft_length=None,
window_fn=tf.signal.hann_window, name=None
)
参数
-
stfts
Acomplex64
/complex128
[..., frames, fft_unique_bins]
Tensor
的 STFT bins 代表一批fft_length
点 STFT,其中fft_unique_bins
是fft_length // 2 + 1
-
frame_length
整数标量Tensor
。样本中的窗口长度。 -
frame_step
整数标量Tensor
。要步进的样本数。 -
fft_length
整数标量Tensor
。产生stfts
的 FFT 的大小。如果未提供,则使用包含frame_length
的 2 的最小幂。 -
window_fn
一个可调用对象,它采用窗口长度和dtype
关键字参数,并以提供的数据类型返回样本的[window_length]
Tensor
。如果设置为None
,则不使用窗口。 -
name
操作的可选名称。
返回
-
[..., samples]
Tensor
offloat32
/float64
信号表示stfts
中每个输入 STFT 的反向 STFT。
抛出
-
ValueError
如果stfts
不是至少 2 级,frame_length
不是标量,frame_step
不是标量,或者fft_length
不是标量。
要重建原始波形,应将互补窗函数与 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-compatible 操作实现并支持渐变。
相关用法
- Python tf.signal.inverse_mdct用法及代码示例
- Python tf.signal.ifftshift用法及代码示例
- Python tf.signal.overlap_and_add用法及代码示例
- Python tf.signal.frame用法及代码示例
- Python tf.signal.linear_to_mel_weight_matrix用法及代码示例
- Python tf.signal.fftshift用法及代码示例
- Python tf.signal.mfccs_from_log_mel_spectrograms用法及代码示例
- Python tf.size用法及代码示例
- Python tf.summary.scalar用法及代码示例
- Python tf.strings.substr用法及代码示例
- Python tf.strings.reduce_join用法及代码示例
- Python tf.sparse.cross用法及代码示例
- Python tf.sparse.mask用法及代码示例
- Python tf.strings.regex_full_match用法及代码示例
- Python tf.sparse.split用法及代码示例
- Python tf.strings.regex_replace用法及代码示例
- Python tf.strings.length用法及代码示例
- Python tf.strided_slice用法及代码示例
- Python tf.sparse.to_dense用法及代码示例
- Python tf.strings.bytes_split用法及代码示例
注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.signal.inverse_stft。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。