Views
No views yet
⚠️ License: CC BY-NC 4.0 — Non-Commercial Only This ONNX inference build may not be used for any commercial product, service, API, or revenue-generating activity. Research, academic, and personal evaluation use are welcome. For commercial licensing, contact: contact@intrect.io
🛡️ Patent Pending (KR + PCT) The bounded-mask residual extraction and codec-invariant training methods used in ArtifactNet are covered by pending patent applications. Use of the ONNX build under CC BY-NC 4.0 grants no patent license; commercial deployment requires both a commercial license and a patent license (contact above for both).
ℹ️ What is released A pre-compiled, end-to-end ONNX inference build of the full pipeline (STFT → UNet → HPSS → 7-channel CNN → sigmoid). Raw PyTorch weights, training code, and training data are not publicly released. This is a deliberate scope limitation — the released binary is sufficient to reproduce inference numbers reported in our paper, but does not enable fine-tuning or weight extraction.
| Metric | ArtifactNet (4.2M) | CLAM (194M) | SpecTTTra (19M) |
|---|---|---|---|
| F1 | 0.9829 | 0.7576 | 0.7713 |
| Precision | 0.9905 | 0.6674 | 0.8519 |
| Recall (TPR) | 0.9755 | 0.8761 | 0.7046 |
| FPR | 0.0149 | 0.6926 | 0.1943 |
| AUC | 0.9974 | 0.7031 | 0.8460 |
| @FPR≤5% TPR | 99.1% | - | - |
bench_origin=test, unseen by all three models),
threshold τ=0.5, identical preprocessing.1import onnxruntime as ort
2import numpy as np
3import soundfile as sf
4
5# Load ONNX inference build
6sess = ort.InferenceSession("artifactnet_v94_full.onnx")
7
8# Load audio (44.1kHz mono, 4-second chunk)
9audio, sr = sf.read("track.wav", dtype="float32")
10if audio.ndim > 1:
11 audio = audio.mean(axis=1)
12chunk = audio[:4 * 44100].reshape(1, -1).astype(np.float32)
13
14# Inference
15prob = sess.run(None, {"audio": chunk})[0][0]
16print(f"P(AI) = {prob:.4f}") # > 0.5 → AI-generated1@article{oh2026artifactnet,
2 title = {ArtifactNet: Detecting AI-Generated Music via Forensic Residual Physics},
3 author = {Oh, Heewon},
4 journal = {arXiv preprint arXiv:2604.16254},
5 year = {2026},
6 eprint = {2604.16254},
7 archivePrefix= {arXiv},
8 primaryClass = {cs.SD},
9 doi = {10.48550/arXiv.2604.16254},
10 url = {https://arxiv.org/abs/2604.16254}
11}