Basics

Audio watermark vs. fingerprinting: what is the difference?

A fingerprint derives an identifier from the audio content; a watermark inserts an identifier into the audio. Aureal inserts a 32-bit ID, so a recovered match points to a distribution copy. Fingerprinting can match unknown copies; watermarking traces copies you marked. Neither method is collusion-proof.

Technical basis: Embedded watermark vs. perceptual fingerprint Reviewed: 2026-11-02

How Aureal handles it

Aureal's watermark is a per-copy identifier. It does not derive a fingerprint from the content, so it cannot identify an unmarked copy from a database. It also does not implement collusion-resistant codes; averaging copies is a known limit. The separate src/tardos.js file is a scoring utility, not part of the embed/detect path.

Common failure mode

“A watermark catches colluders who average several independently tagged copies.”

Why it fails: Averaging independently tagged copies cancels uncorrelated watermark energy. Aureal does not implement collusion-resistant fingerprinting; src/tardos.js is a standalone scoring utility that the embed/detect pipeline does not use.

Verified example

Design for the threat you have:
- Per-recipient IDs + manifest: trace a leaked copy.
- Collusion resistance: use a dedicated fingerprinting design, not this watermark.
- Record the known limit: averaging independently tagged copies can defeat recovery.

Example only. Validate against your own audio, codec and processing chain.

Scope and limits

  • No collusion-resistant fingerprinting is implemented.
  • Averaging independently tagged copies can defeat recovery.
  • Use per-recipient IDs and records; treat averaging as a known limit.

Frequently asked questions

Can Aureal catch someone who averages several copies?

No. Averaging independently tagged copies can cancel the watermark energy; no collusion-resistant fingerprinting is implemented. Treat that as a known limit.

Can two studios mark the same track?

With distinct private keys, multiple watermarks can coexist and detect independently in the local fixtures. Do not reuse the same key with conflicting IDs.

Test the actual delivery chain. A fixture result is a starting point, not a guarantee for your material.

Open the Studio →