AI Provenance
Huebsch audio is synthetic speech. Every published MP3 carries machine-readable markings that say so, in three layers. A public check at /verify reads them.
Markings
| Layer | Carrier | Survives | Forgeable |
|---|---|---|---|
| IPTC digital source type | ID3 PRIV (XMP) and TXXX:DigitalSourceType | file copies | yes |
| C2PA manifest | ID3, signed and time-stamped | only byte-identical copies | no; any change invalidates it, a tag edit included |
| Watermark | the audio itself, keyed | re-encoding, resampling, loudness changes, cuts | not without the key |
Digital source type
| Value | When |
|---|---|
http://cv.iptc.org/newscodes/digitalsourcetype/trainedAlgorithmicMedia | Synthetic speech only |
http://cv.iptc.org/newscodes/digitalsourcetype/compositeWithTrainedAlgorithmicMedia | Synthetic speech mixed with at least one recording (sound, soundExternal) |
The tags are informative only. /verify does not evaluate them.
C2PA
- Manifest: a
c2pa.createdaction carrying the digital source type, signed with ES256. - Time-stamp: from a TSA on the C2PA TSA Trust List, so a signature stays valid after its signing certificate expires.
- Certificate chain: Huebsch runs its own root, and signing certificates are short-lived. Validators that lack the root report the signer as unknown.
Root: /.well-known/c2pa/root.pem
56:50:0B:A7:84:8D:EC:E6:42:65:ED:E3:03:42:98:82:39:16:DB:12:68:6D:E6:C9:4A:11:67:20:2B:3A:82:04Watermark
- Payload: identifies the production.
- Not marked: tracks shorter than 30 seconds, and productions of clients that opted out.
- Not detected: excerpts shorter than about 12 seconds, and audio with changed tempo or pitch.
Verification at /verify
- Input: one audio file, up to three hours and 200 MB. The file is deleted as soon as the check ends, the result 30 minutes later.
- Location: processed and stored in the EU.
- API: the same check by URL, with the result posted to a webhook: Verification API.
- Access: free. Media and researchers get unlimited access on request: hi@schoenreden.com.
- Result: a signed file (JWS) to download;
/verifyalso accepts it back and reports whether Huebsch issued it unchanged. Format: Signed result.
The result rests on two checks and names the basis of each:
- Signature: valid only when the chain leads to the Huebsch root. A valid signature means the file is byte-identical to the delivered one, and the client is named.
- Watermark: shows that the audio contains material of a Huebsch production. It does not show whether the audio was changed since delivery, or for whom it was produced.
Not confirmed:
- the accuracy of the content;
- who distributed the file;
- whether the client approved its use.
A missing marking does not show that audio is human-made.
Regulatory basis
Marking per EU AI Act Art. 50(2) (Regulation (EU) 2024/1689) and the Code of Practice on Transparency of AI-Generated Content (June 2026): signed metadata plus watermark (Measure 1.1), a free public check with a signed result (2.1, 2.3). Disclosure to listeners (Art. 50(5)) is the publisher's labelling; /verify does not replace it.