{
  "format": "stegobabble-browser-v1",
  "source_metadata": {
    "checkpoint": {
      "path": "output/sequence_gan_10frames_10epochs/checkpoints/step_00009764.pt",
      "epoch": 2,
      "step": 9764,
      "bce": 0.06796031491830945,
      "ber": 0.03343048095703125,
      "bit_recovery": 0.9665695190429687,
      "whole_block_accuracy": 0.0,
      "rms": 0.03145887755366935,
      "saturation_fraction": 0.0,
      "heldout_feature_moments": 0.004405549261718988,
      "heldout_real_score": -0.1296469122171402,
      "heldout_fake_score": -0.12977346777915955
    },
    "checkpoint_sha256": "6b6445c06cdfbf010c673db9a498c74d2f0fc9264c092e123759215ee4bcc520",
    "exports": {
      "generator.ts": "852a65502a88660aa66305a7ce2e10714a79df0b9aff2993b167c5a679d46bdb",
      "analyzer_logits.ts": "8a3ea75c9863a43cc2206d601ceb3d199d0bcc4631c60b031a979f8fda367b34"
    },
    "generator_input": [
      null,
      10,
      64
    ],
    "generator_output": [
      null,
      1600
    ],
    "analyzer_input": [
      null,
      1600
    ],
    "analyzer_output_logits": [
      null,
      10,
      64
    ],
    "sample_rate": 16000,
    "signed_waveform": true,
    "export_torch": "2.11.0+cu130",
    "source_checkpoint_unchanged": true
  },
  "models": {
    "generator": {
      "asset": "models/generator.js",
      "bytes": 3676973,
      "sha256": "0193a8b5e41ab5067c1ce41197fccefb7ed3314d0ceea780d67bf522ac30126c"
    },
    "analyzer": {
      "asset": "models/analyzer.js",
      "bytes": 3676793,
      "sha256": "239099eb56ad1e9db8724b71df589722d5d0d911b1cb6f472e5265e92cb4f42d"
    }
  },
  "architecture": {
    "generator": {
      "parameters": 917249,
      "layers": [
        {
          "name": "net.0",
          "operation": "Conv1d",
          "input": [
            2,
            64,
            10
          ],
          "output": [
            2,
            128,
            10
          ],
          "parameters": 8320
        },
        {
          "name": "net.1",
          "operation": "LeakyReLU",
          "input": [
            2,
            128,
            10
          ],
          "output": [
            2,
            128,
            10
          ],
          "parameters": 0
        },
        {
          "name": "net.2.first",
          "operation": "Conv1d",
          "input": [
            2,
            128,
            10
          ],
          "output": [
            2,
            128,
            10
          ],
          "parameters": 49280
        },
        {
          "name": "net.2.second",
          "operation": "Conv1d",
          "input": [
            2,
            128,
            10
          ],
          "output": [
            2,
            128,
            10
          ],
          "parameters": 16512
        },
        {
          "name": "net.3.first",
          "operation": "Conv1d",
          "input": [
            2,
            128,
            10
          ],
          "output": [
            2,
            128,
            10
          ],
          "parameters": 49280
        },
        {
          "name": "net.3.second",
          "operation": "Conv1d",
          "input": [
            2,
            128,
            10
          ],
          "output": [
            2,
            128,
            10
          ],
          "parameters": 16512
        },
        {
          "name": "net.4.first",
          "operation": "Conv1d",
          "input": [
            2,
            128,
            10
          ],
          "output": [
            2,
            128,
            10
          ],
          "parameters": 49280
        },
        {
          "name": "net.4.second",
          "operation": "Conv1d",
          "input": [
            2,
            128,
            10
          ],
          "output": [
            2,
            128,
            10
          ],
          "parameters": 16512
        },
        {
          "name": "net.5",
          "operation": "ConvTranspose1d",
          "input": [
            2,
            128,
            10
          ],
          "output": [
            2,
            128,
            100
          ],
          "parameters": 327808
        },
        {
          "name": "net.6",
          "operation": "LeakyReLU",
          "input": [
            2,
            128,
            100
          ],
          "output": [
            2,
            128,
            100
          ],
          "parameters": 0
        },
        {
          "name": "net.7.first",
          "operation": "Conv1d",
          "input": [
            2,
            128,
            100
          ],
          "output": [
            2,
            128,
            100
          ],
          "parameters": 114816
        },
        {
          "name": "net.7.second",
          "operation": "Conv1d",
          "input": [
            2,
            128,
            100
          ],
          "output": [
            2,
            128,
            100
          ],
          "parameters": 114816
        },
        {
          "name": "net.8",
          "operation": "ConvTranspose1d",
          "input": [
            2,
            128,
            100
          ],
          "output": [
            2,
            64,
            400
          ],
          "parameters": 65600
        },
        {
          "name": "net.9",
          "operation": "LeakyReLU",
          "input": [
            2,
            64,
            400
          ],
          "output": [
            2,
            64,
            400
          ],
          "parameters": 0
        },
        {
          "name": "net.10.first",
          "operation": "Conv1d",
          "input": [
            2,
            64,
            400
          ],
          "output": [
            2,
            64,
            400
          ],
          "parameters": 28736
        },
        {
          "name": "net.10.second",
          "operation": "Conv1d",
          "input": [
            2,
            64,
            400
          ],
          "output": [
            2,
            64,
            400
          ],
          "parameters": 28736
        },
        {
          "name": "net.11",
          "operation": "ConvTranspose1d",
          "input": [
            2,
            64,
            400
          ],
          "output": [
            2,
            32,
            1600
          ],
          "parameters": 16416
        },
        {
          "name": "net.12",
          "operation": "LeakyReLU",
          "input": [
            2,
            32,
            1600
          ],
          "output": [
            2,
            32,
            1600
          ],
          "parameters": 0
        },
        {
          "name": "net.13.first",
          "operation": "Conv1d",
          "input": [
            2,
            32,
            1600
          ],
          "output": [
            2,
            32,
            1600
          ],
          "parameters": 7200
        },
        {
          "name": "net.13.second",
          "operation": "Conv1d",
          "input": [
            2,
            32,
            1600
          ],
          "output": [
            2,
            32,
            1600
          ],
          "parameters": 7200
        },
        {
          "name": "net.14",
          "operation": "Conv1d",
          "input": [
            2,
            32,
            1600
          ],
          "output": [
            2,
            1,
            1600
          ],
          "parameters": 225
        },
        {
          "name": "net.15",
          "operation": "Tanh",
          "input": [
            2,
            1,
            1600
          ],
          "output": [
            2,
            1,
            1600
          ],
          "parameters": 0
        }
      ]
    },
    "analyzer": {
      "parameters": 917312,
      "layers": [
        {
          "name": "net.0",
          "operation": "Conv1d",
          "input": [
            2,
            1,
            1600
          ],
          "output": [
            2,
            32,
            1600
          ],
          "parameters": 256
        },
        {
          "name": "net.1",
          "operation": "LeakyReLU",
          "input": [
            2,
            32,
            1600
          ],
          "output": [
            2,
            32,
            1600
          ],
          "parameters": 0
        },
        {
          "name": "net.2.first",
          "operation": "Conv1d",
          "input": [
            2,
            32,
            1600
          ],
          "output": [
            2,
            32,
            1600
          ],
          "parameters": 7200
        },
        {
          "name": "net.2.second",
          "operation": "Conv1d",
          "input": [
            2,
            32,
            1600
          ],
          "output": [
            2,
            32,
            1600
          ],
          "parameters": 7200
        },
        {
          "name": "net.3",
          "operation": "Conv1d",
          "input": [
            2,
            32,
            1600
          ],
          "output": [
            2,
            64,
            400
          ],
          "parameters": 16448
        },
        {
          "name": "net.4",
          "operation": "LeakyReLU",
          "input": [
            2,
            64,
            400
          ],
          "output": [
            2,
            64,
            400
          ],
          "parameters": 0
        },
        {
          "name": "net.5.first",
          "operation": "Conv1d",
          "input": [
            2,
            64,
            400
          ],
          "output": [
            2,
            64,
            400
          ],
          "parameters": 28736
        },
        {
          "name": "net.5.second",
          "operation": "Conv1d",
          "input": [
            2,
            64,
            400
          ],
          "output": [
            2,
            64,
            400
          ],
          "parameters": 28736
        },
        {
          "name": "net.6",
          "operation": "Conv1d",
          "input": [
            2,
            64,
            400
          ],
          "output": [
            2,
            128,
            100
          ],
          "parameters": 65664
        },
        {
          "name": "net.7",
          "operation": "LeakyReLU",
          "input": [
            2,
            128,
            100
          ],
          "output": [
            2,
            128,
            100
          ],
          "parameters": 0
        },
        {
          "name": "net.8.first",
          "operation": "Conv1d",
          "input": [
            2,
            128,
            100
          ],
          "output": [
            2,
            128,
            100
          ],
          "parameters": 114816
        },
        {
          "name": "net.8.second",
          "operation": "Conv1d",
          "input": [
            2,
            128,
            100
          ],
          "output": [
            2,
            128,
            100
          ],
          "parameters": 114816
        },
        {
          "name": "net.9",
          "operation": "Conv1d",
          "input": [
            2,
            128,
            100
          ],
          "output": [
            2,
            128,
            10
          ],
          "parameters": 327808
        },
        {
          "name": "net.10",
          "operation": "LeakyReLU",
          "input": [
            2,
            128,
            10
          ],
          "output": [
            2,
            128,
            10
          ],
          "parameters": 0
        },
        {
          "name": "net.11.first",
          "operation": "Conv1d",
          "input": [
            2,
            128,
            10
          ],
          "output": [
            2,
            128,
            10
          ],
          "parameters": 49280
        },
        {
          "name": "net.11.second",
          "operation": "Conv1d",
          "input": [
            2,
            128,
            10
          ],
          "output": [
            2,
            128,
            10
          ],
          "parameters": 16512
        },
        {
          "name": "net.12.first",
          "operation": "Conv1d",
          "input": [
            2,
            128,
            10
          ],
          "output": [
            2,
            128,
            10
          ],
          "parameters": 49280
        },
        {
          "name": "net.12.second",
          "operation": "Conv1d",
          "input": [
            2,
            128,
            10
          ],
          "output": [
            2,
            128,
            10
          ],
          "parameters": 16512
        },
        {
          "name": "net.13.first",
          "operation": "Conv1d",
          "input": [
            2,
            128,
            10
          ],
          "output": [
            2,
            128,
            10
          ],
          "parameters": 49280
        },
        {
          "name": "net.13.second",
          "operation": "Conv1d",
          "input": [
            2,
            128,
            10
          ],
          "output": [
            2,
            128,
            10
          ],
          "parameters": 16512
        },
        {
          "name": "net.14",
          "operation": "Conv1d",
          "input": [
            2,
            128,
            10
          ],
          "output": [
            2,
            64,
            10
          ],
          "parameters": 8256
        }
      ]
    }
  },
  "numerical_validation": {
    "generator": {
      "max_absolute_error": 2.682209014892578e-07,
      "sign_changes": 0
    },
    "analyzer": {
      "max_absolute_error": 0.00011920928955078125,
      "sign_changes": 0
    }
  },
  "versions": {
    "torch": "2.11.0+cu130",
    "onnxruntime_web": "1.17.3",
    "codec2": "1.2.0",
    "emscripten": "4.0.19"
  },
  "example": {
    "id": "e3b5b1d287ae4ed686e238cbe6d58692",
    "kind": "decoded",
    "created_unix": 1792314276.4514983,
    "carrier_id": "e837402900b44032a3d31d5bc9e16249",
    "source_id": "19156d1d0d1145399813362037f49582",
    "seconds": 10,
    "duration": 10.0,
    "statistics": {
      "coded": {
        "total": 64000,
        "correct": 61856,
        "flipped": 2144,
        "error_percent": 3.35,
        "mean_correct_per_second": 6185.6,
        "mean_flipped_per_second": 214.4
      },
      "payload": {
        "total": 32000,
        "correct": 32000,
        "flipped": 0,
        "error_percent": 0.0,
        "mean_correct_per_second": 3200.0,
        "mean_flipped_per_second": 0.0
      },
      "codec2": {
        "total": 32000,
        "correct": 32000,
        "flipped": 0,
        "error_percent": 0.0,
        "mean_correct_per_second": 3200.0,
        "mean_flipped_per_second": 0.0
      },
      "codec2_bytes_identical": true,
      "decoded_pcm_identical_to_reference": true,
      "failed_payload_blocks": 0
    },
    "blocks": [
      {
        "second": 1,
        "raw_correct": 6201,
        "raw_flipped": 199,
        "payload_correct": 3200,
        "payload_flipped": 0,
        "codec2_flipped": 0,
        "iterations": 4
      },
      {
        "second": 2,
        "raw_correct": 6203,
        "raw_flipped": 197,
        "payload_correct": 3200,
        "payload_flipped": 0,
        "codec2_flipped": 0,
        "iterations": 4
      },
      {
        "second": 3,
        "raw_correct": 6214,
        "raw_flipped": 186,
        "payload_correct": 3200,
        "payload_flipped": 0,
        "codec2_flipped": 0,
        "iterations": 4
      },
      {
        "second": 4,
        "raw_correct": 6158,
        "raw_flipped": 242,
        "payload_correct": 3200,
        "payload_flipped": 0,
        "codec2_flipped": 0,
        "iterations": 4
      },
      {
        "second": 5,
        "raw_correct": 6181,
        "raw_flipped": 219,
        "payload_correct": 3200,
        "payload_flipped": 0,
        "codec2_flipped": 0,
        "iterations": 4
      },
      {
        "second": 6,
        "raw_correct": 6153,
        "raw_flipped": 247,
        "payload_correct": 3200,
        "payload_flipped": 0,
        "codec2_flipped": 0,
        "iterations": 4
      },
      {
        "second": 7,
        "raw_correct": 6177,
        "raw_flipped": 223,
        "payload_correct": 3200,
        "payload_flipped": 0,
        "codec2_flipped": 0,
        "iterations": 4
      },
      {
        "second": 8,
        "raw_correct": 6171,
        "raw_flipped": 229,
        "payload_correct": 3200,
        "payload_flipped": 0,
        "codec2_flipped": 0,
        "iterations": 4
      },
      {
        "second": 9,
        "raw_correct": 6196,
        "raw_flipped": 204,
        "payload_correct": 3200,
        "payload_flipped": 0,
        "codec2_flipped": 0,
        "iterations": 4
      },
      {
        "second": 10,
        "raw_correct": 6202,
        "raw_flipped": 198,
        "payload_correct": 3200,
        "payload_flipped": 0,
        "codec2_flipped": 0,
        "iterations": 4
      }
    ],
    "decoder_diagnostics": [
      {
        "second": 1,
        "iterations": 4,
        "stable": true
      },
      {
        "second": 2,
        "iterations": 4,
        "stable": true
      },
      {
        "second": 3,
        "iterations": 4,
        "stable": true
      },
      {
        "second": 4,
        "iterations": 4,
        "stable": true
      },
      {
        "second": 5,
        "iterations": 4,
        "stable": true
      },
      {
        "second": 6,
        "iterations": 4,
        "stable": true
      },
      {
        "second": 7,
        "iterations": 4,
        "stable": true
      },
      {
        "second": 8,
        "iterations": 4,
        "stable": true
      },
      {
        "second": 9,
        "iterations": 4,
        "stable": true
      },
      {
        "second": 10,
        "iterations": 4,
        "stable": true
      }
    ],
    "configuration": {
      "codec2_bps": 3200,
      "payload_bps": 3200,
      "channel_bps": 6400,
      "code_rate": 0.5,
      "iterations": 12,
      "algorithm": "logmap",
      "turbo_profile": "CCSDS-derived custom k=3200; tail symbols omitted",
      "public_randomizer": "CCSDS degree17; reset each second",
      "physical_permutation": "(173*j+29) mod 6400",
      "model_checkpoint": 9764,
      "generator_sha256": "852a65502a88660aa66305a7ce2e10714a79df0b9aff2993b167c5a679d46bdb",
      "analyzer_sha256": "8a3ea75c9863a43cc2206d601ceb3d199d0bcc4631c60b031a979f8fda367b34",
      "channel": "Saved aligned PCM16 WAV; no added noise or acoustic transmission"
    },
    "files": {
      "decoded.wav": "/runs/e3b5b1d287ae4ed686e238cbe6d58692/decoded.wav",
      "recovered_codec2.bit": "/runs/e3b5b1d287ae4ed686e238cbe6d58692/recovered_codec2.bit",
      "recovered_payload.bin": "/runs/e3b5b1d287ae4ed686e238cbe6d58692/recovered_payload.bin",
      "received_arrays.npz": "/runs/e3b5b1d287ae4ed686e238cbe6d58692/received_arrays.npz",
      "results.json": "/runs/e3b5b1d287ae4ed686e238cbe6d58692/results.json",
      "block_statistics.csv": "/runs/e3b5b1d287ae4ed686e238cbe6d58692/block_statistics.csv"
    },
    "source_audio": "Kokoro af_heart, first 10 seconds",
    "training_checkpoint_sha256": "6b6445c06cdfbf010c673db9a498c74d2f0fc9264c092e123759215ee4bcc520"
  },
  "source_hashes": {
    "server.py": "abeb82e7d91cd7f60f0368a19780e7ac8372c432894f2bc6621fc613f0d684eb",
    "codec2_worker.py": "98fe667800c064d8cbbacd37e5d5a3f771223db7e6bcbb4be70ab037dc67d409",
    "pipeline.py": "3e6d08fbc6a1926257881cd0be78a4af1cf90b9197cb5f5f7181ffd58e78d2ef",
    "bundle_runtime.py": "844e3eade617a6a5b0b0c612d19e550fd33e1d5dd7f4da1c0e8bdbe84e3d671f",
    "ccsds_turbo.py": "bfbfe298e598ec465ba29932752936e4df6541c574fa73204b70e8bac51418ae",
    "sequence_channel.py": "76b21f3d69c7963a9e374f84292ea767ff8002cb975f77c9d3cb6c5c319d4a32",
    "README.md": "8dd4631cc0628153289be52ed40fa4f70d0821d4915aa35ea04e4e17533d4781",
    "SPACE_TURBO_SPEC.md": "d29139961e0c1ab2cb7b462fb0ba4420a428d306a47d482689e5c9891fb3b421",
    "sequence_gan.py": "12aed470afb8bba095482d5e74b5d741d799686e043e3cd51654b02cc046627f",
    "train_sequence_gan.py": "bb727b655198755dcf052938db2f2e70dcf3ba51e1c57dc193b389d502f340ee",
    "sequence_data.py": "7f17220c9e966000b0beb98b806919f08b5219ac16355a62f342df57ae24b6ea",
    "export_sequence_channel.py": "f976115359581b2d911820a873c590408508755a86920731ff7e456b5fe52b14"
  }
}
