diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index c1dff93..9e20723 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,4 +1,26 @@ repos: + - repo: local + hooks: + - id: sync-version + name: Sync version to CITATION.cff and README.md + language: python + entry: python scripts/sync_version.py + pass_filenames: false + always_run: true + + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v5.0.0 + hooks: + - id: trailing-whitespace + - id: end-of-file-fixer + - id: check-merge-conflict + - id: check-added-large-files + - id: check-yaml + exclude: mkdocs\.yml + - id: check-json + - id: check-toml + - id: detect-private-key + - repo: https://github.com/psf/black rev: 25.1.0 hooks: diff --git a/.zenodo.json b/.zenodo.json new file mode 100644 index 0000000..26dfcde --- /dev/null +++ b/.zenodo.json @@ -0,0 +1,43 @@ +{ + "title": "Jabberjay", + "description": "Jabberjay is a unified Python API and CLI for synthetic voice detection. It brings together state-of-the-art deepfake audio detection models — including ViT, AST, Wav2Vec2, HuBERT, WavLM, RawNet2, and a classical baseline — under a single consistent interface, allowing researchers and practitioners to detect AI-generated speech without wrestling with individual model dependencies and conventions.", + "upload_type": "software", + "license": "MIT", + "creators": [ + { + "name": "Boakes, Matthew", + "affiliation": "The Alan Turing Institute, University of Kent", + "orcid": "0000-0002-9377-6240" + } + ], + "keywords": [ + "synthetic voice detection", + "deepfake detection", + "anti-spoofing", + "audio classification", + "speech", + "ASVspoof", + "machine learning", + "transformers" + ], + "related_identifiers": [ + { + "identifier": "https://pypi.org/project/Jabberjay/", + "relation": "isSupplementTo", + "resource_type": "software", + "scheme": "url" + }, + { + "identifier": "https://mattyb95.github.io/Jabberjay", + "relation": "isDocumentedBy", + "resource_type": "other", + "scheme": "url" + }, + { + "identifier": "https://github.com/MattyB95/Jabberjay", + "relation": "isSupplementTo", + "resource_type": "software", + "scheme": "url" + } + ] +} diff --git a/CHANGELOG.md b/CHANGELOG.md index c255342..defa193 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,30 @@ Jabberjay uses [Semantic Versioning](https://semver.org/spec/v2.0.0.html). --- +## [0.0.8] — 2026-03-16 + +### Added +- **Zenodo integration** — repository is now archived on Zenodo; concept DOI + (`10.5281/zenodo.19056978`) added to `CITATION.cff`, README badge row, and + BibTeX entry in the README citation section +- **`.zenodo.json`** — explicit Zenodo record metadata (creator ORCID, + affiliation, keywords, related identifiers for PyPI and docs) so archived + records are consistent and complete +- **Pre-commit hooks expanded** — added `trailing-whitespace`, `end-of-file-fixer`, + `check-merge-conflict`, `check-added-large-files`, `check-yaml`, `check-json`, + `check-toml`, and `detect-private-key` from `pre-commit-hooks`; added + `scripts/sync_version.py` local hook to keep `CITATION.cff` and README BibTeX + version in sync with `pyproject.toml` automatically on every commit + +### Fixed +- **`RawNet2/run.py`** — YAML config loading now raises a descriptive + `RuntimeError` instead of a raw `OSError`/`YAMLError` if the bundled config + file is missing or malformed +- **`Utilities/label_normalizer.py`** — removed redundant `float(str(...))` + double conversion; score is cast directly with `float()` + +--- + ## [0.0.7] — 2026-03-16 ### Added @@ -158,7 +182,8 @@ Jabberjay uses [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - Command-line interface (`jabberjay