code: def pcen(
      S: np.ndarray,
      *,
      sr: float = ...,
      hop_length: int = ...,
      gain: float = ...,
      bias: float = ...,
      power: float = ...,
      time_constant: float = ...,
      eps: float = ...,
      b: Optional[float] = ...,
      max_size: int = ...,
      ref: Optional[np.ndarray] = ...,
      axis: int = ...,
      max_axis: Optional[int] = ...,
      zi: Optional[np.ndarray] = ...,
      return_zf: bool = ...,
  ) -> Union[np.ndarray, Tuple[np.ndarray, np.ndarray]]:
      ...
  
imports: from __future__ import annotations
  import warnings
  import numpy
  import scipy
  import scipy.ndimage
  import scipy.signal
  import scipy.interpolate
  from numba import jit
  from .None import convert
  from .fft import get_fftlib
  from .audio import resample
  from .._cache import cache
  from ..None import util
  from ..util.exceptions import ParameterError
  from ..filters import get_window, semitone_filterbank
  from ..filters import window_sumsquare
  from numpy.typing import DTypeLike
  from typing import Any, Callable, Optional, Tuple, List, Union, overload
  from typing_extensions import Literal
  from .._typing import _WindowSpec, _PadMode, _PadModeSTFT, _SequenceLike, _ScalarOrSequence, _ComplexLike_co, _FloatLike_co
label_desc: Use image node_id 30 for calling a global function with example usage: pcen(S) without return types