wai: the int_codec audio trained on a generated signal, and every corpus states its provenance #184
Loading…
Reference in a new issue
No description provided.
Delete branch "wai/audio-provenance"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The learned integer audio codec's model and vectors are now trained on, and code, a generated signal. Earlier revisions used a third-party recording. Every corpus now states the provenance of its content.
tools/wai_int_audio_export.pygenerates its own signal from a seed: tones, chirps, noise bursts and formant sweeps. It is integer-only and takes no audio input.tools/wai_audio_provenance_check.pycorrelates every committed audio vector against a reference set of recordings the CI host has, and fails above a stated threshold.tests/vectors/README.mdlists each vector directory's source.tests/corpus_provenance.rsfails when either is missing.Checked locally on macOS arm64:
The forge CI runs on this pull request.
🤖 Generated with Claude Code
The wai.audio.int_codec vector (wai-rs/tests/vectors/int_audio/) is now an export of tools/wai_int_audio_export.py on its own generated signal: python tools/wai_int_audio_export.py <out> --seed 1 --channels 16 \ --samples 8192 --steps 2500 Two runs with seed 1 gave byte-identical audio_model.bin, audio_bitstream.json, audio.json and decoded PCM. Every file that depends on the vector was regenerated through its own generator, from it: - int_audio/sha256.json — WAI_WRITE_SHA256_SIDECARS=1 cargo test --test int_kernels_vectors int_audio_clip (the Rust decode equals the Python integer reference's PCM first); - int_audio/audio_bitstream.wia1, int-payload-conformance/vectors.json and the thirteen wia1_* refusal fixtures — wai_int_payload_vectors gen; - staged-conformance/cases/audio_int_codec_1l/ (base.wai, L1.wai, stage0.bin, case.json) and index.json — wai_staged_vectors gen; - staged-measure-conformance/fixtures/audio/ (source, layers, references, expect.json, title.json), goldens.json and sim/results.json — wai_stage_measure gen-fixtures, then generate-goldens. quality.json is regenerated unchanged (it holds no audio). The format, the payload layout and the capability are unchanged; the model's shape is the same (16 channels, 512 latent samples, 8192 output samples at 16 kHz). Verified: the six affected Rust corpus verifiers (int-payload, staged, staged-measure, http, claims, pin), the Python verifiers int_payload_verify.py, staged_verify.py, measure_verify.py, sim_verify.py, http_verify.py and pin_verify.py, and the integer-kernel, int_audio, int_payload and stage_measure tests. The provenance check now passes: the stage 0 and the measurement source correlate at most 0.22 with any reference recording. Co-Authored-By: Claude Opus 5.5 <[email protected]>