{
  "schemaVersion": 5,
  "recordType": "voluntary_nonstandard_ai_transparency_record",
  "updatedAt": "2026-08-24",
  "publisher": {
    "name": "Stormtape",
    "url": "https://stormtape.com",
    "contact": "https://stormtape.com/kontakt"
  },
  "scope": {
    "syntheticContent": [
      "synthetic voice announcements",
      "continuous synthetic narrator voice in automated recap videos (VOD uploads); narration text is generated by deterministic rules, not by a generative language model"
    ],
    "notDescribedAsAiGenerated": [
      "weather observations",
      "official-source warning records",
      "modified OPERA precipitation radar data",
      "music"
    ]
  },
  "releasePolicy": {
    "syntheticVoiceRequiresRightsDisclosureAndTechnicalGates": true,
    "missingRequiredGateAction": "keep synthetic voice disabled"
  },
  "humanDisclosure": {
    "inFrameDisclosure": "synthetic AI voice / KI-Stimme",
    "nativePlatformDisclosureUsedWhenAvailable": true,
    "publicExplanation": "https://stormtape.com/ki-transparenz"
  },
  "machineReadableMarking": {
    "method": {
      "algorithm": "AudioSeal",
      "implementationVersion": "0.2.0",
      "policyId": "stormtape-audioseal-v1",
      "payloadAscii": "ST",
      "payloadHex": "5354",
      "payloadBits": 16,
      "markingDomainHz": 16000,
      "markedContent": "announcement windows in the final local programme audio; each window is padded by 2 s at both edges, so a short stretch of the music bed inside the padding carries the mark. In recap videos, the narration windows of the final mix are marked in the same way",
      "unmarkedContent": [
        "music bed outside the padded announcement/narration windows"
      ]
    },
    "detection": {
      "detectorThreshold": 0.99,
      "detectorModelSha256": "8A78E8A83584113523E161FC599FCAB10FD0E94C04D2EB9D2FA1E9EC91AB69D9",
      "recommendedWindowSeconds": 5,
      "phaseSearchRequired": true,
      "phaseRasterSamplesAt48kHz": 960,
      "announcementPaddingSeconds": 2.0,
      "payloadWindowYield": "the 16-bit payload decodes only in a subset of marked windows (measured ~42% at the 2 s padding used in production); a single-window probe is inconclusive",
      "confirmationRule": "a mark counts as confirmed once any scanned window reaches the detector threshold with the exact payload; use the published verifier",
      "notes": "AudioSeal marking is not shift-invariant; detection requires a sliding-window scan with sample-level phase search."
    },
    "publicVerifier": "https://stormtape.com/downloads/stormtape-audioseal-verifier.py",
    "verifierLicense": "https://stormtape.com/downloads/AUDIOSEAL_LICENSE.txt",
    "runtimeStatusAssertedByThisStaticRecord": false,
    "platformTranscodeStatus": "not asserted globally; verify the specific media copy",
    "recordIsMediaEmbeddedMark": false,
    "blanketArticle50ComplianceClaim": false
  },
  "notice": "Voluntary, non-standard public technical information. This record does not replace an embedded mark, per-output evidence or a legal assessment."
}
