The A-Files
Research toolkit for evaluating audio steganography and watermarking: payload recovery, signal quality, robustness, capacity and empirical detectability under a shared experimental protocol. Includes a Python API, declarative experiments and a browser-based research interface.
Documentation · UI guide · References
Quick start
Python 3.10–3.12:
pip install the-a-files
taf-eval direct-no-metrics
Bundled VCTK and LibriSpeech subsets support initial experiments. FFmpeg is needed for codec attacks; PESQ may require C++ build tools. See installation and optional models.
Methods · 30
- Sample-domain LSB: FBS-LSB, LSB, PFI.
- Transform domain: Blind-SVD, DCT-b1, DCT-Delta-LSB, DWT-LSB, EMD, FSVC, LWT, Norm-space, Sync-DWT-DCT, W-DWT-LSB.
- Spread spectrum: DSSS, ISS.
- Echo hiding: BF-Echo, Echo, TS-Echo.
- Phase coding: IPC, Phase.
- Quantisation (QIM): QIM.
- Statistical / patchwork: Histogram, LFAM, Patchwork-ML.
- Adaptive coding: AAC-STC.
- Reversible (lossless): PEE.
- Learned embedding: LE-GA.
- Neural network: AudioSeal, FGAS, WavMark.
Mechanisms, parameters, implementation limits and paper references.
Attacks · 26
- Additive noise:
awgn,impulse_noise,pink_noise. - Lossy codecs:
codec, withaac,mp3,opus,vorbisshortcuts. - Filtering:
band_pass,high_pass,low_pass,notch,smoothing. - Resampling & clock:
clock_drift,resample. - Quantisation:
bit_depth. - Amplitude & dynamics:
clipping,compression_dynamic,gain. - Temporal & desynchronisation:
crop,dropout,pitch_shift,sample_jitter,speed,time_shift,time_stretch,zero_padding. - Acoustic channel:
acoustic_channel,echo,reverb. - Pipelines:
streaming_upload,voice_call,broadcast,over_the_air,desync_attack.
Individual descriptions, parameters, severity levels and scientific context.
Metrics · 25
- Speech quality: BSSEval, Cbak, CD, Covl, Csig, fwSNRseg, LLR, LSD, MCD, MRSC, PESQ, SI-SDR, SNR, SNRseg, ViSQOL Audio, WSS.
- Speech intelligibility: CSII, eSTOI, NCM, STGI, STOI, wSTMI.
- Reverberation: BSD, SRMR.
- Learned (AI-based): MOSNet.
Definitions, score directions and references.
BER, exact-message recovery, payload rate and processing time are reported separately.
Adding a method, metric or attack
Write the class with its card (title, summary and details in English and Polish, references, requirements) and register it in one place per kind. The API, the research UI, these lists and the documentation pages are derived from it, and contract tests pick the component up automatically:
python -m taf.catalogue_docs # regenerate the catalogue sections of the docs and this README
python -m pytest tests/test_catalogue.py tests/test_attack_contract.py tests/test_methods_roundtrip.py
Step-by-step guide with templates. Third-party packages can add components through entry points without modifying this repository.
Research UI
The whole platform (PostgreSQL, API and web client) runs in Docker from the published images; only
docker-compose.yml is needed:
curl -O https://raw.githubusercontent.com/pawel-kaczmarek/The-A-Files/master/docker-compose.yml
docker compose up -d --no-build
The web client is at http://localhost:3000 and the API at http://localhost:8000 (OpenAPI at /docs).
Prepared corpora and uploads live in the taf-data volume. TAF_IMAGE_TAG selects a release (default latest;
edge follows master). In a repository checkout, docker compose up -d --build builds the images locally;
TAF_EXTRAS=platform,neural (or platform,ai) then adds the optional neural baselines or TensorFlow to the API.
For development, start only the database and run the API and web client locally:
docker compose up -d db
pip install -e ".[platform]"
taf-api
In a second terminal:
cd web
npm ci
npm run dev
Open http://localhost:3000. Create an experiment, select data, methods, payloads, attacks and metrics, review the execution plan, then start a run. Results include statistics, individual trials with audio playback, provenance and CSV/Markdown/LaTeX exports. English and Polish are available. Step-by-step UI guide.
Quality is measured separately for embedding and attack damage. Published results and local measurements remain distinct; implementation adaptations are documented in the method catalogue. GitHub Pages hosts the documentation; the research UI runs with the Python API and PostgreSQL.
Licence and authors
GPL-3.0-or-later. Paweł Kaczmarek and Zbigniew Piotrowski — Military University of Technology, Faculty of Electronics. Scientific background and bibliography.
Metadata
Release files for the-a-files 2.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| the_a_files-2.0.1.tar.gz | 19.0 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| the_a_files-2.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 38.0 MB
Release files / the_a_files-2.0.1.tar.gz
| Download URL | the_a_files-2.0.1.tar.gz |
|---|---|
| Size | 19.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
34c43a8753c7a1dfbd55f98b5193d1ab6b4b40c6bddc942b2f804cfea72280aa
|
|
BLAKE2b-256 checksum How to use checksums |
e251ccdbd9363a0f7013b5052baa438d3958f5e00b8712ce3f14e0b4d70eefef
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.
Transparency logRelease files / the_a_files-2.0.1-py3-none-any.whl
| Download URL | the_a_files-2.0.1-py3-none-any.whl |
|---|---|
| Size | 19.0 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e10a00b8394ee203ce8e0b54192284b72266fd099c30bfe867bca18f2672a1e4
|
|
BLAKE2b-256 checksum How to use checksums |
6633ead24c8f2d0a52152b8fe6ea3d757f5f936bf2e5804070d808cfab4f73a6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 29, 2026.
Transparency log