{
  "$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": "Silero VAD v6 (16 kHz) as a streaming Keras model with explicit LSTM state.\n\nFollows snakers4/silero-vad v6.2.2 (commit 60b7ffa), ``silero_vad_16k_op15.onnx``. One call takes\n576 samples, the last 64 samples of the previous call followed by 512 new ones (32 ms at 16 kHz), and\nreturns the speech probability. The LSTM state is carried as ``state_in_0``/``state_in_1`` (h, c),\nfed from the previous call's ``state_out_0``/``state_out_1``; zeros (and zero context) start an\nindependent stream. Weights come from ``helia_edge.importers`` with ``SILERO_VAD_V6_ONNX``\n(``silero_vad_params``).\n\nThe default options compute the reference model exactly: an STFT magnitude with a square root. The\nother options (``SileroVadParams``) compute the same model in other ways: ``max_projection`` needs no\nsquare root, so the model exports to int16 activations; ``conv_blocks`` and ``live_taps`` are exact\nrewrites. They derive what they need (block kernels, the folded padding, tap slices) from the same\nweights inside the graph, so an exporter folds them into constants.",
      "name": "silero_vad",
      "path": "helia_edge.models.silero_vad",
      "submodules": [],
      "summary": "Silero VAD v6 (16 kHz) as a streaming Keras model with explicit LSTM state.",
      "symbols": [
        {
          "description": "Samples per call: 64 of context and 512 new ones.",
          "examples": [],
          "id": "helia_edge.models.silero_vad.SAMPLES",
          "kind": "constant",
          "language": "python",
          "members": [],
          "name": "SAMPLES",
          "params": [],
          "raises": [],
          "returns": [],
          "signature": "SAMPLES = 576",
          "source": {
            "line": 27,
            "path": "helia_edge/models/silero_vad.py",
            "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/silero_vad.py#L27"
          },
          "summary": "Samples per call: 64 of context and 512 new ones."
        },
        {
          "description": "",
          "examples": [],
          "id": "helia_edge.models.silero_vad.UNITS",
          "kind": "constant",
          "language": "python",
          "members": [],
          "name": "UNITS",
          "params": [],
          "raises": [],
          "returns": [],
          "signature": "UNITS = 128",
          "source": {
            "line": 29,
            "path": "helia_edge/models/silero_vad.py",
            "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/silero_vad.py#L29"
          },
          "summary": ""
        },
        {
          "description": "STFT magnitude of one call (576 samples) from convolutions over 64-sample blocks.\n\nThe same transform as ``StftMagnitude(256, 128, 129, padding=(0, 64))`` with the same stored basis\n(256, 1, 258): frames 0 to 2 are a convolution over blocks with stride 2, and the last frame's right\nreflect padding is folded into its kernel, so no reflect pad or strided frames over samples remain.\nThe kernels are derived from the basis in the graph and an exporter folds them into constants. The\noutput is (batch, 4, 1, 129), the frames as rows of an image, which the encoder convolves without\nreshapes.",
          "examples": [],
          "id": "helia_edge.models.silero_vad.SileroBlockStft",
          "kind": "class",
          "language": "python",
          "members": [
            {
              "description": "",
              "examples": [],
              "id": "helia_edge.models.silero_vad.SileroBlockStft.magnitude",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "magnitude",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "magnitude = magnitude",
              "source": {
                "line": 52,
                "path": "helia_edge/models/silero_vad.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/silero_vad.py#L52"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "helia_edge.models.silero_vad.SileroBlockStft.build",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "build",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "build(input_shape)",
              "source": {
                "line": 54,
                "path": "helia_edge/models/silero_vad.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/silero_vad.py#L54"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "helia_edge.models.silero_vad.SileroBlockStft.call",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "call",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "call(audio)",
              "source": {
                "line": 59,
                "path": "helia_edge/models/silero_vad.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/silero_vad.py#L59"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "helia_edge.models.silero_vad.SileroBlockStft.compute_output_shape",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "compute_output_shape",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "compute_output_shape(input_shape)",
              "source": {
                "line": 81,
                "path": "helia_edge/models/silero_vad.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/silero_vad.py#L81"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "helia_edge.models.silero_vad.SileroBlockStft.get_config",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "get_config",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "get_config()",
              "source": {
                "line": 84,
                "path": "helia_edge/models/silero_vad.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/silero_vad.py#L84"
              },
              "summary": ""
            }
          ],
          "name": "SileroBlockStft",
          "params": [
            {
              "default": "'sqrt'",
              "description": "``sqrt`` (exact) or ``max_projection`` (no square root, within 0.25%).",
              "name": "magnitude",
              "type": "str"
            }
          ],
          "raises": [],
          "returns": [],
          "signature": "SileroBlockStft(magnitude: str = 'sqrt', **kwargs={})",
          "source": {
            "line": 33,
            "path": "helia_edge/models/silero_vad.py",
            "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/silero_vad.py#L33"
          },
          "summary": "STFT magnitude of one call (576 samples) from convolutions over 64-sample blocks."
        },
        {
          "description": "An encoder ``Conv1D`` with ReLU over frames held as rows of a (frames, 1, channels) image.\n\nThe kernel keeps the ``Conv1D`` shape (3, channels, filters); input padding is a separate layer.",
          "examples": [],
          "id": "helia_edge.models.silero_vad.SileroFrameConv",
          "kind": "class",
          "language": "python",
          "members": [
            {
              "description": "",
              "examples": [],
              "id": "helia_edge.models.silero_vad.SileroFrameConv.filters",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "filters",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "filters = filters",
              "source": {
                "line": 99,
                "path": "helia_edge/models/silero_vad.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/silero_vad.py#L99"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "helia_edge.models.silero_vad.SileroFrameConv.strides",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "strides",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "strides = strides",
              "source": {
                "line": 100,
                "path": "helia_edge/models/silero_vad.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/silero_vad.py#L100"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "helia_edge.models.silero_vad.SileroFrameConv.build",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "build",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "build(input_shape)",
              "source": {
                "line": 102,
                "path": "helia_edge/models/silero_vad.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/silero_vad.py#L102"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "helia_edge.models.silero_vad.SileroFrameConv.call",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "call",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "call(x)",
              "source": {
                "line": 108,
                "path": "helia_edge/models/silero_vad.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/silero_vad.py#L108"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "helia_edge.models.silero_vad.SileroFrameConv.compute_output_shape",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "compute_output_shape",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "compute_output_shape(input_shape)",
              "source": {
                "line": 112,
                "path": "helia_edge/models/silero_vad.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/silero_vad.py#L112"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "helia_edge.models.silero_vad.SileroFrameConv.get_config",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "get_config",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "get_config()",
              "source": {
                "line": 116,
                "path": "helia_edge/models/silero_vad.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/silero_vad.py#L116"
              },
              "summary": ""
            }
          ],
          "name": "SileroFrameConv",
          "params": [],
          "raises": [],
          "returns": [],
          "signature": "SileroFrameConv(filters: int, strides: int = 1, **kwargs={})",
          "source": {
            "line": 88,
            "path": "helia_edge/models/silero_vad.py",
            "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/silero_vad.py#L88"
          },
          "summary": "An encoder Conv1D with ReLU over frames held as rows of a (frames, 1, channels) image."
        },
        {
          "description": "A zero-padded encoder convolution as a dense layer over the kernel taps that see real frames.\n\nThe kernel keeps the convolution's shape (3, channels, filters). ``taps`` lists the taps that see\nthe input's frames, in order; the input is those frames' channels, flattened.",
          "examples": [],
          "id": "helia_edge.models.silero_vad.SileroLiveTaps",
          "kind": "class",
          "language": "python",
          "members": [
            {
              "description": "",
              "examples": [],
              "id": "helia_edge.models.silero_vad.SileroLiveTaps.filters",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "filters",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "filters = filters",
              "source": {
                "line": 132,
                "path": "helia_edge/models/silero_vad.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/silero_vad.py#L132"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "helia_edge.models.silero_vad.SileroLiveTaps.taps",
              "kind": "attribute",
              "language": "python",
              "members": [],
              "name": "taps",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "taps = tuple(taps)",
              "source": {
                "line": 133,
                "path": "helia_edge/models/silero_vad.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/silero_vad.py#L133"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "helia_edge.models.silero_vad.SileroLiveTaps.build",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "build",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "build(input_shape)",
              "source": {
                "line": 135,
                "path": "helia_edge/models/silero_vad.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/silero_vad.py#L135"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "helia_edge.models.silero_vad.SileroLiveTaps.call",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "call",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "call(x)",
              "source": {
                "line": 142,
                "path": "helia_edge/models/silero_vad.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/silero_vad.py#L142"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "helia_edge.models.silero_vad.SileroLiveTaps.compute_output_shape",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "compute_output_shape",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "compute_output_shape(input_shape)",
              "source": {
                "line": 146,
                "path": "helia_edge/models/silero_vad.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/silero_vad.py#L146"
              },
              "summary": ""
            },
            {
              "description": "",
              "examples": [],
              "id": "helia_edge.models.silero_vad.SileroLiveTaps.get_config",
              "kind": "method",
              "language": "python",
              "members": [],
              "name": "get_config",
              "params": [],
              "raises": [],
              "returns": [],
              "signature": "get_config()",
              "source": {
                "line": 149,
                "path": "helia_edge/models/silero_vad.py",
                "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/silero_vad.py#L149"
              },
              "summary": ""
            }
          ],
          "name": "SileroLiveTaps",
          "params": [],
          "raises": [],
          "returns": [],
          "signature": "SileroLiveTaps(filters: int, taps: tuple[int, ...], **kwargs={})",
          "source": {
            "line": 120,
            "path": "helia_edge/models/silero_vad.py",
            "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/silero_vad.py#L120"
          },
          "summary": "A zero-padded encoder convolution as a dense layer over the kernel taps that see real frames."
        },
        {
          "description": "Build the Silero VAD v6 16 kHz streaming model, untrained.\n\nInputs are ``audio`` (576,) float32 in [-1, 1] and the state ``state_in_0`` and ``state_in_1``\n(128,). Outputs are ``prob`` (1,) and ``state_out_0`` and ``state_out_1``. Streaming and export use\n``batch_size=1``.",
          "examples": [],
          "id": "helia_edge.models.silero_vad.build",
          "kind": "function",
          "language": "python",
          "members": [],
          "name": "build",
          "params": [
            {
              "description": "Model parameters: the geometry fixed by the v6.2.2 weights, and the options.",
              "name": "params",
              "type": "SileroVadParams"
            },
            {
              "default": "None",
              "description": "None, or the audio shape ``(576,)``.",
              "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 ``silero_vad`` unless ``name`` is given.",
              "type": "keras.Model"
            }
          ],
          "signature": "build(\n    params: SileroVadParams,\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": 153,
            "path": "helia_edge/models/silero_vad.py",
            "url": "https://github.com/AmbiqAI/helia-edge/blob/f341fb11f7f5d77a4974ba8273c4cd55d67c21f0/helia_edge/models/silero_vad.py#L153"
          },
          "summary": "Build the Silero VAD v6 16 kHz streaming model, untrained."
        }
      ]
    }
  ],
  "name": "helia_edge"
}
