function stft_(signal, frameLength, frameStep, fftLength, windowFn = (0, _hannWindow.hannWindow)) {
    if (fftLength == null) fftLength = (0, _signalOpsUtil.enclosingPowerOfTwo)(frameLength);
    const framedSignal = (0, _frame.frame)(signal, frameLength, frameStep);
    const windowedSignal = (0, _mul.mul)(framedSignal, windowFn(frameLength));
    return (0, _rfft.rfft)(windowedSignal, fftLength);
}
Computes the Short-time Fourier Transform of signals
See: https://en.wikipedia.org/wiki/Short-time_Fourier_transform

```js
const input = tf.tensor1d([1, 1, 1, 1, 1])
tf.signal.stft(input, 3, 1).print();
```
@param signal 1-dimensional real value tensor.
@param frameLength The window length of samples.
@param frameStep The number of samples to step.
@param fftLength The size of the FFT to apply.
@param windowFn A callable that takes a window length and returns 1-d tensor.

@doc {heading: 'Operations', subheading: 'Signal', namespace: 'signal'}