code: def stft(
      x,
      sequence_length,
      sequence_stride,
      fft_length,
      window="hann",
      center=True,
  ):
      if standardize_dtype(x.dtype) not in {"float32", "float64"}:
          raise TypeError(
              "Invalid input type. Expected `float32` or `float64`. "
              f"Received: input type={x.dtype}"
          )
      if fft_length < sequence_length:
          raise ValueError(
              "`fft_length` must equal or larger than `sequence_length`. "
              f"Received: sequence_length={sequence_length}, "
              f"fft_length={fft_length}"
          )
      if isinstance(window, str):
          if window not in {"hann", "hamming"}:
              raise ValueError(
                  "If a string is passed to `window`, it must be one of "
                  f'`"hann"`, `"hamming"`. Received: window={window}'
              )
      x = convert_to_tensor(x)
      ori_dtype = x.dtype
  
      if center:
          pad_width = [(0, 0) for _ in range(len(x.shape))]
          pad_width[-1] = (fft_length // 2, fft_length // 2)
          x = np.pad(x, pad_width, mode="reflect")
  
      l_pad = (fft_length - sequence_length) // 2
      r_pad = fft_length - sequence_length - l_pad
  
      if window is not None:
          if isinstance(window, str):
              win = convert_to_tensor(
                  scipy.signal.get_window(window, sequence_length),
                  dtype=x.dtype,
              )
          else:
              win = convert_to_tensor(window, dtype=x.dtype)
          if len(win.shape) != 1 or win.shape[-1] != sequence_length:
              raise ValueError(
                  "The shape of `window` must be equal to [sequence_length]."
                  f"Received: window shape={win.shape}"
              )
          win = np.pad(win, [[l_pad, r_pad]])
      else:
          win = np.ones(
              (sequence_length + l_pad + r_pad), dtype=x.dtype
          )
  
      x = scipy.signal.stft(
          x,
          fs=1.0,
          window=win,
          nperseg=(sequence_length + l_pad + r_pad),
          noverlap=(sequence_length + l_pad + r_pad - sequence_stride),
          nfft=fft_length,
          boundary=None,
          padded=False,
      )[-1]
  
      # scale and swap to (..., num_sequences, fft_bins)
      x = x / np.sqrt(1.0 / win.sum() ** 2)
      x = np.swapaxes(x, -2, -1)
      return np.real(x).astype(ori_dtype), np.imag(x).astype(ori_dtype)
  
imports: import numpy
  from keras.backend import standardize_dtype
  from keras.backend.jax.math import fft
  from keras.backend.jax.math import fft2
  from keras.backend.numpy.core import convert_to_tensor
  from keras.utils.module_utils import scipy
label_desc: Use image node_id 13 for calling a global function with example usage: stft(x, sequence_length, sequence_stride, fft_length, window, center) and returns: np,  np