{
  "$schema": "https://ambiqai.github.io/helia-ui/schema/reference-model-1.json",
  "generatedFrom": {
    "sourceCommit": "f341fb11f7f5d77a4974ba8273c4cd55d67c21f0",
    "tool": "pyref",
    "version": "1.7.3"
  },
  "language": "python",
  "modules": [
    {
      "description": "FastEnhancer folded-inference model for streaming spectral enhancement.\n\nAdapted from aask1357/fastenhancer (revision e74cab1, models/fastenhancer/\ndefault/model.py), the revision of the onnx-vd-v1.0.0 release. One call processes one STFT frame: ``spec_in`` is\n(n_fft // 2 + 1, 1, 2) real/imag, and each RNNFormer block carries a GRU state\n(freq, channels). Callers zero the states only at independent sequence starts\nand feed each ``state_out_k`` back as ``state_in_k``. The graph matches the\nreleased ONNX inference form, with BatchNorm and weight normalization folded.\nSTFT/iSTFT framing, weight files and weight terms are the caller's concern.",
      "name": "fastenhancer",
      "path": "helia_edge.models.fastenhancer",
      "submodules": [],
      "summary": "FastEnhancer folded-inference model for streaming spectral enhancement.",
      "symbols": [
        {
          "description": "Return fixed triangular (pre, post) frequency projections as [in, out] kernels.\n\nFollows upstream revision e74cab1, which produced the onnx-vd-v1.0.0\nweights; upstream changed this formula in 8d2d419 (2026-02-25).",
          "examples": [],
          "id": "helia_edge.models.fastenhancer.linear_filterbanks",
          "kind": "function",
          "language": "python",
          "members": [],
          "name": "linear_filterbanks",
          "params": [],
          "raises": [],
          "returns": [],
          "signature": "linear_filterbanks(n_freq: int, n_filter: int) -> tuple[np.ndarray, np.ndarray]",
          "source": {
            "line": 22,
            "path": "helia_edge/models/fastenhancer.py",
            "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/fastenhancer.py#L22"
          },
          "summary": "Return fixed triangular (pre, post) frequency projections as [in, out] kernels."
        },
        {
          "description": "Drop the Nyquist bin and compress magnitude: x * max(|x|, 1e-5)^(c - 1).",
          "examples": [],
          "id": "helia_edge.models.fastenhancer.FastEnhancerCompression",
          "kind": "class",
          "language": "python",
          "members": [
            {
              "description": "",
              "examples": [],
              "id": "helia_edge.models.fastenhancer.FastEnhancerCompression.compression",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "compression",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "compression = compression",
              "source": {
                "line": 46,
                "path": "helia_edge/models/fastenhancer.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/fastenhancer.py#L46"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "helia_edge.models.fastenhancer.FastEnhancerCompression.call",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "call",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "call(spec)",
              "source": {
                "line": 48,
                "path": "helia_edge/models/fastenhancer.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/fastenhancer.py#L48"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "helia_edge.models.fastenhancer.FastEnhancerCompression.get_config",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "get_config",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "get_config()",
              "source": {
                "line": 53,
                "path": "helia_edge/models/fastenhancer.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/fastenhancer.py#L53"
              },
              "summary": ""
            }
          ],
          "name": "FastEnhancerCompression",
          "params": [],
          "raises": [],
          "returns": [],
          "signature": "FastEnhancerCompression(compression: float, **kwargs={})",
          "source": {
            "line": 40,
            "path": "helia_edge/models/fastenhancer.py",
            "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/fastenhancer.py#L40"
          },
          "summary": "Drop the Nyquist bin and compress magnitude: x  max(|x|, 1e-5)^(c - 1)."
        },
        {
          "description": "Apply a complex mask, undo compression and restore a zero Nyquist bin.",
          "examples": [],
          "id": "helia_edge.models.fastenhancer.FastEnhancerMaskOutput",
          "kind": "class",
          "language": "python",
          "members": [
            {
              "description": "",
              "examples": [],
              "id": "helia_edge.models.fastenhancer.FastEnhancerMaskOutput.compression",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "compression",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "compression = compression",
              "source": {
                "line": 63,
                "path": "helia_edge/models/fastenhancer.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/fastenhancer.py#L63"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "helia_edge.models.fastenhancer.FastEnhancerMaskOutput.call",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "call",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "call(inputs)",
              "source": {
                "line": 65,
                "path": "helia_edge/models/fastenhancer.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/fastenhancer.py#L65"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "helia_edge.models.fastenhancer.FastEnhancerMaskOutput.get_config",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "get_config",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "get_config()",
              "source": {
                "line": 75,
                "path": "helia_edge/models/fastenhancer.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/fastenhancer.py#L75"
              },
              "summary": ""
            }
          ],
          "name": "FastEnhancerMaskOutput",
          "params": [],
          "raises": [],
          "returns": [],
          "signature": "FastEnhancerMaskOutput(compression: float, **kwargs={})",
          "source": {
            "line": 57,
            "path": "helia_edge/models/fastenhancer.py",
            "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/fastenhancer.py#L57"
          },
          "summary": "Apply a complex mask, undo compression and restore a zero Nyquist bin."
        },
        {
          "description": "Project the frequency axis of (batch, freq, channels) with a [in, out] kernel.",
          "examples": [],
          "id": "helia_edge.models.fastenhancer.FastEnhancerFrequencyProjection",
          "kind": "class",
          "language": "python",
          "members": [
            {
              "description": "",
              "examples": [],
              "id": "helia_edge.models.fastenhancer.FastEnhancerFrequencyProjection.units",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "units",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "units = units",
              "source": {
                "line": 85,
                "path": "helia_edge/models/fastenhancer.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/fastenhancer.py#L85"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "helia_edge.models.fastenhancer.FastEnhancerFrequencyProjection.build",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "build",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "build(input_shape)",
              "source": {
                "line": 87,
                "path": "helia_edge/models/fastenhancer.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/fastenhancer.py#L87"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "helia_edge.models.fastenhancer.FastEnhancerFrequencyProjection.call",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "call",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "call(x)",
              "source": {
                "line": 90,
                "path": "helia_edge/models/fastenhancer.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/fastenhancer.py#L90"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "helia_edge.models.fastenhancer.FastEnhancerFrequencyProjection.get_config",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "get_config",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "get_config()",
              "source": {
                "line": 93,
                "path": "helia_edge/models/fastenhancer.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/fastenhancer.py#L93"
              },
              "summary": ""
            }
          ],
          "name": "FastEnhancerFrequencyProjection",
          "params": [],
          "raises": [],
          "returns": [],
          "signature": "FastEnhancerFrequencyProjection(units: int, **kwargs={})",
          "source": {
            "line": 79,
            "path": "helia_edge/models/fastenhancer.py",
            "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/fastenhancer.py#L79"
          },
          "summary": "Project the frequency axis of (batch, freq, channels) with a [in, out] kernel."
        },
        {
          "description": "One GRU step per frequency band, gates z, r, h and reset after matmul.\n\nMatches ONNX GRU with ``linear_before_reset=1`` and PyTorch ``nn.GRU``:\nh' = z * h + (1 - z) * tanh(Wx + bw + r * (Rh + br)). Returns h'.",
          "examples": [],
          "id": "helia_edge.models.fastenhancer.FastEnhancerGRUStep",
          "kind": "class",
          "language": "python",
          "members": [
            {
              "description": "",
              "examples": [],
              "id": "helia_edge.models.fastenhancer.FastEnhancerGRUStep.units",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "units",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "units = units",
              "source": {
                "line": 107,
                "path": "helia_edge/models/fastenhancer.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/fastenhancer.py#L107"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "helia_edge.models.fastenhancer.FastEnhancerGRUStep.build",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "build",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "build(input_shape)",
              "source": {
                "line": 109,
                "path": "helia_edge/models/fastenhancer.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/fastenhancer.py#L109"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "helia_edge.models.fastenhancer.FastEnhancerGRUStep.call",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "call",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "call(inputs)",
              "source": {
                "line": 118,
                "path": "helia_edge/models/fastenhancer.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/fastenhancer.py#L118"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "helia_edge.models.fastenhancer.FastEnhancerGRUStep.get_config",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "get_config",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "get_config()",
              "source": {
                "line": 128,
                "path": "helia_edge/models/fastenhancer.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/fastenhancer.py#L128"
              },
              "summary": ""
            }
          ],
          "name": "FastEnhancerGRUStep",
          "params": [],
          "raises": [],
          "returns": [],
          "signature": "FastEnhancerGRUStep(units: int, **kwargs={})",
          "source": {
            "line": 97,
            "path": "helia_edge/models/fastenhancer.py",
            "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/fastenhancer.py#L97"
          },
          "summary": "One GRU step per frequency band, gates z, r, h and reset after matmul."
        },
        {
          "description": "Add a learned (freq, channels) embedding.",
          "examples": [],
          "id": "helia_edge.models.fastenhancer.FastEnhancerPositionalEmbedding",
          "kind": "class",
          "language": "python",
          "members": [
            {
              "description": "",
              "examples": [],
              "id": "helia_edge.models.fastenhancer.FastEnhancerPositionalEmbedding.build",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "build",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "build(input_shape)",
              "source": {
                "line": 136,
                "path": "helia_edge/models/fastenhancer.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/fastenhancer.py#L136"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "helia_edge.models.fastenhancer.FastEnhancerPositionalEmbedding.call",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "call",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "call(x)",
              "source": {
                "line": 139,
                "path": "helia_edge/models/fastenhancer.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/fastenhancer.py#L139"
              },
              "summary": ""
            }
          ],
          "name": "FastEnhancerPositionalEmbedding",
          "params": [],
          "raises": [],
          "returns": [],
          "signature": "FastEnhancerPositionalEmbedding()",
          "source": {
            "line": 132,
            "path": "helia_edge/models/fastenhancer.py",
            "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/fastenhancer.py#L132"
          },
          "summary": "Add a learned (freq, channels) embedding."
        },
        {
          "description": "Multi-head self-attention across frequency bands, no output projection.\n\nThe qkv kernel is [channels, 3 * channels] with per-head interleaved\ncolumns: head h uses q = 3dh*h + [0, dh), k = + [dh, 2dh), v = + [2dh, 3dh).",
          "examples": [],
          "id": "helia_edge.models.fastenhancer.FastEnhancerFrequencyAttention",
          "kind": "class",
          "language": "python",
          "members": [
            {
              "description": "",
              "examples": [],
              "id": "helia_edge.models.fastenhancer.FastEnhancerFrequencyAttention.num_heads",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "num_heads",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "num_heads = num_heads",
              "source": {
                "line": 153,
                "path": "helia_edge/models/fastenhancer.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/fastenhancer.py#L153"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "helia_edge.models.fastenhancer.FastEnhancerFrequencyAttention.use_bias",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "use_bias",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "use_bias = use_bias",
              "source": {
                "line": 154,
                "path": "helia_edge/models/fastenhancer.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/fastenhancer.py#L154"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "helia_edge.models.fastenhancer.FastEnhancerFrequencyAttention.build",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "build",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "build(input_shape)",
              "source": {
                "line": 156,
                "path": "helia_edge/models/fastenhancer.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/fastenhancer.py#L156"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "helia_edge.models.fastenhancer.FastEnhancerFrequencyAttention.call",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "call",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "call(x)",
              "source": {
                "line": 161,
                "path": "helia_edge/models/fastenhancer.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/fastenhancer.py#L161"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "helia_edge.models.fastenhancer.FastEnhancerFrequencyAttention.get_config",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "get_config",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "get_config()",
              "source": {
                "line": 175,
                "path": "helia_edge/models/fastenhancer.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/fastenhancer.py#L175"
              },
              "summary": ""
            }
          ],
          "name": "FastEnhancerFrequencyAttention",
          "params": [],
          "raises": [],
          "returns": [],
          "signature": "FastEnhancerFrequencyAttention(num_heads: int, use_bias: bool = False, **kwargs={})",
          "source": {
            "line": 143,
            "path": "helia_edge/models/fastenhancer.py",
            "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/fastenhancer.py#L143"
          },
          "summary": "Multi-head self-attention across frequency bands, no output projection."
        },
        {
          "description": "Construct an untrained one-frame FastEnhancer with named streaming inputs and outputs.\n\nInputs: ``spec_in`` (bins, 1, 2) and ``state_in_k`` (freq, channels) per block. Outputs: ``spec_out``\nand ``state_out_k``. Fixed linear filterbanks are initialized and frozen; other weights are untrained\nuntil imported with a mapping from ``fastenhancer_params`` (``FASTENHANCER_T_ONNX`` or\n``fastenhancer_mapping``).",
          "examples": [],
          "id": "helia_edge.models.fastenhancer.build",
          "kind": "function",
          "language": "python",
          "members": [],
          "name": "build",
          "params": [
            {
              "description": "Model parameters.",
              "name": "params",
              "type": "FastEnhancerParams"
            },
            {
              "default": "None",
              "description": "None, or ``spec_in``'s fixed shape ``(bins, 1, 2)``.",
              "name": "input_shape",
              "type": "tuple[int | None, ...] | None"
            },
            {
              "default": "None",
              "description": "Static batch size; None for a dynamic batch.",
              "name": "batch_size",
              "type": "int | None"
            },
            {
              "default": "None",
              "description": "Model name; the family when None.",
              "name": "name",
              "type": "str | None"
            }
          ],
          "raises": [],
          "returns": [
            {
              "description": "keras.Model: The model, named ``fastenhancer`` unless ``name`` is given.",
              "type": "keras.Model"
            }
          ],
          "signature": "build(\n    params: FastEnhancerParams,\n    input_shape: tuple[int | None, ...] | None = None,\n    *,\n    batch_size: int | None = None,\n    name: str | None = None,\n) -> keras.Model",
          "source": {
            "line": 187,
            "path": "helia_edge/models/fastenhancer.py",
            "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/fastenhancer.py#L187"
          },
          "summary": "Construct an untrained one-frame FastEnhancer with named streaming inputs and outputs."
        }
      ]
    }
  ],
  "name": "helia_edge"
}
