open-standards/.github/wai-conformance/verifiers/audio-mark.sh
Transaction Science 63e856b226
Some checks failed
joule-moq-web browser client / joule-moq-web · does this change touch it (push) Successful in 8m12s
WAI operation catalogue / does this change touch it (push) Successful in 8m3s
wai-app and Create / wai-app · does this change touch it (push) Successful in 8m7s
joule-moq-room room service / joule-moq-room · does this change touch it (push) Successful in 8m21s
joule-moq-remote host agent / joule-moq-remote · does this change touch it (push) Successful in 8m24s
wai-audit collector and player integration / does this change touch it (push) Successful in 8m6s
wai-key-proxy / does this change touch it (push) Successful in 7m59s
wai-fleet service / does this change touch it (push) Successful in 8m2s
wai-quantum studio and desktop / does this change touch it (push) Successful in 1m40s
wai-ledger service / does this change touch it (push) Successful in 1m42s
wai-quantum for JavaScript / does this change touch it (push) Successful in 1m43s
wai-sink-android native sink library / does this change touch it (push) Successful in 1m41s
WAI Studio / does this change touch it (push) Successful in 1m40s
wai-sink-swift native sink package / does this change touch it (push) Successful in 1m41s
joule-moq-remote host agent / joule-moq-remote, every target (macos) (push) Successful in 46s
wai-audit collector and player integration / collector, player integration and the browser end to end · macos (push) Successful in 1m40s
wai-fleet service / service · macos (push) Successful in 47s
wai-app and Create / wai-app · Create, browser end-to-end (macos) (push) Successful in 5m44s
wai-ledger service / service · macos (push) Successful in 50s
wai-quantum studio and desktop / desktop app · macos (push) Successful in 4m37s
repository checks / lockfiles, advisories, tests in CI, workflow hygiene, spec and section references, public text (push) Has been cancelled
wai-app and Create / wai-app · tests, clippy, the line language's verifier (linux) (push) Has been cancelled
wai-fleet service / service · linux (push) Has been cancelled
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (push) Has been cancelled
wai-ledger service / service · linux (push) Has been cancelled
WAI Studio / the catalogue's actions, the unit tests and the core · linux (push) Has been cancelled
WAI Studio / Studio in WebKit · linux (push) Has been cancelled
WAI Studio / Studio in Chromium and Firefox · macos (push) Has been cancelled
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (push) Successful in 7m9s
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (push) Successful in 10m50s
wai-quantum studio and desktop / desktop app · windows (push) Successful in 10m5s
WAI breaking changes and the conformance runner / WAI breaking · does this change touch WAI (push) Successful in 8s
wai-quantum energy-landscape jobs / does this change touch it (push) Successful in 8s
wai-audit collector and player integration / collector · linux (push) Successful in 1m50s
wai-key-proxy / proxy · linux (push) Successful in 1m37s
wai-quantum energy-landscape jobs / the same bits · macos (push) Successful in 3m28s
WAI operation catalogue / the catalogue and every door · linux (push) Successful in 9m6s
wai-quantum studio and desktop / studio · browser (push) Successful in 7m10s
wai-quantum for JavaScript / javascript · linux (push) Successful in 6m42s
wai-quantum studio and desktop / desktop app · linux (push) Successful in 9m10s
WAI breaking changes and the conformance runner / WAI breaking · wire, record and API against main · linux (push) Successful in 2m38s
wai-quantum energy-landscape jobs / the module under wasm32-wasip2 (wasmtime) (push) Successful in 2m38s
wai-quantum energy-landscape jobs / native against WebAssembly, over many seeds (push) Successful in 5m0s
WAI breaking changes and the conformance runner / WAI breaking and conform · their tests, and the independent verifiers through wai conform · linux (push) Successful in 7m33s
wai-quantum energy-landscape jobs / reader, kernels, answers and the stated result · linux, release (push) Successful in 17m45s
joule-moq-remote host agent / joule-moq-remote, every target (linux-arm64) (push) Successful in 1m42s
joule-moq-room room service / joule-moq-room, every target (push) Successful in 4m49s
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (push) Successful in 4m25s
wai-quantum energy-landscape jobs / the same bits · linux-arm64 (push) Successful in 7m38s
wai: register wai-mark:band64, a watermark for sound, peer of tent64
synthesis §7.10 registers the second marking layer for speech and other audio: the same
8-byte payload and BCH code as tent64, the same marking and detection records and failure
codes (audio states rate, channels and length), embedded by a pinned integer derivation in
the band energies of the mono mix and read key-free after trims, rate and level changes and
the codecs §7.10.7 measures. robustness-evidence registers audio corpora, ten pinned
transforms of sound and the lossy codecs as measured transforms, whose records are stated.

Reference in wai-rs (synthesis::mark::audio, audio_mark, robustness::audio,
wai_audio_mark_vectors), second implementation in _wai_audio_mark.py with
audio_mark_verify.py, corpus in live-conformance/audio-mark/ with records measured on
generated voices and music and on recorded speech named by digest.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-08 16:20:24 -05:00

31 lines
2.2 KiB
Shell

# step: audio watermark · wai-rs and audio_mark_verify.py
# order: 305
# features: robustness
# release-features: robustness
# paths: wai/extensions/synthesis.md wai/extensions/robustness-evidence.md
# independent: audio-mark live python3 -I live-conformance/audio_mark_verify.py live-conformance/audio-mark
#
# The registered audio scheme wai-mark:band64 (extensions/synthesis.md §7.10): the
# reference's unit tests (the cosine tables have the digest the definition pins, the integer
# logarithm, the layout and its mask, an embedding read back, after a trim found again, silence
# carrying none), then tests/audio_mark.rs in release, since regenerating the corpus embeds and
# attacks every signal of the measurement sets (every generated file of
# live-conformance/audio-mark/ regenerates byte for byte and no other file but the measured
# records is there; every embedding, detection, case and robustness record gets what it states;
# §7.10.1's definition, §7.10.3's shuffle and §7.10.6's bound are the reference's; §7.10.7's
# tables are the measurements' and it claims only attacks every measurement shows survived);
# and, in the step of every independent verifier above, the second implementation,
# audio_mark_verify.py with _wai_audio_mark.py, written from the extensions' text and sharing no
# code with wai-rs, which embeds, detects and decodes itself, applies the pinned transforms of
# sound, verifies every case with synthesis_verify.py and every record with
# robustness_verify.py, the conformance record's harness rerun end to end, mutates copies of the
# corpus and weakens its own verifier in turn; standard library only, run isolated (-I).
#
# The paths this step brings to the workflow's trigger, and why:
# wai/extensions/synthesis.md: tests/audio_mark.rs and audio_mark_verify.py read the scheme's
# definition, shuffle, bound, tables and claims (§7.10).
# wai/extensions/robustness-evidence.md: robustness_verify.py, which audio_mark_verify.py runs on the
# scheme's records, reads its transforms (§4.1, §4.2).
set -euo pipefail
(cd wai-rs && cargo test --no-default-features --features "$WAI_FEATURES" --lib -- synthesis::mark::audio)
(cd wai-rs && cargo test --release --no-default-features --features "$WAI_RELEASE_FEATURES" --test audio_mark)