diff --git a/README.md b/README.md index a7c28bb..9960203 100644 --- a/README.md +++ b/README.md @@ -51,7 +51,7 @@ instead, run: From the extracted archive: ```bash -scripts/build-wakeword-training-image jr-wakeword-training:0.2.1-jrich-2 +scripts/build-wakeword-training-image jr-wakeword-training:0.2.1-jrich-3 ``` The build is the only dependency-installing step. It verifies the reviewed dependency hashes and @@ -153,6 +153,17 @@ attempt directory contains: - `training-result.json`: hashes and a compact private-artifact inventory; - resolved request/configuration, logs, resource evidence, stage evidence, and checksums. +The JR-Gateway result buttons expose four different artifacts: + +- **Client bundle (recommended for another project):** the deployment-friendly ONNX model, + threshold/config manifest, evaluation report, checksums, license, and third-party notices. +- **ONNX:** only the model used by a client for wakeword detection. +- **PT:** the PyTorch model weights, mainly for developers and future conversion. +- **Retraining bundle:** the large private archive containing PT, generated and augmented training + data, feature arrays, configuration, provenance, and integrity records. Keep it only if you may + retrain, increase the data scale, or recover the training environment later. Clients do not need + it. + The final PT contains model weights, not a complete optimizer/RNG checkpoint. It supports safe re-export and a future explicit warm start, but not exact interrupted-training resume. Do not share the private run directory unless you intend to share its generated/training data and provenance. diff --git a/RELEASE.json b/RELEASE.json index ab37c57..60f2f62 100644 --- a/RELEASE.json +++ b/RELEASE.json @@ -1,5 +1,5 @@ { - "release": "0.2.1-jrich-2", + "release": "0.2.1-jrich-3", "requirements": { "minimum_free_bytes": 42949672960, "recommended_cpu_cores": 8, diff --git a/SHA256SUMS b/SHA256SUMS index af8b365..58d38ab 100644 --- a/SHA256SUMS +++ b/SHA256SUMS @@ -1,7 +1,7 @@ aa09140e141b4e2901ec5a734ee512102abe8d5ac7c13a8292f24839886c9636 .dockerignore 04c1bfb6d817ff1dd096950a52a93d31faf0105d34685e56958f17722a39e1b1 LICENSE -fa985bab447aaa7bf2dfe5d11e3d51d50f85018376c44e5497450b71d064173f README.md -34944d524fd3d12ee2dad5dbbf80d162d916c1726850211c5c73bf94ee83a1d8 RELEASE.json +ac5c105a39e88b52d43bc8cf2257da9c9a1bbc5101ace1e89f4d4366931caa7c README.md +f11f5d48736aff210db85cbb18b9d82a35484f4f01b9ff907bc66a925b615909 RELEASE.json 5327deebabd5500e481e0734d2d1262a706718ed257c68ace6e51ed81c8583d9 THIRD_PARTY_NOTICES.md 4f517a9fd049cc5ba11f3b85eff9d2f0af5cc43ff859c3fc9cb3e8273ac54eb3 deploy/wakeword-training/Dockerfile f38d7c053cee67b2ffff9736e2cc6ec1ca361941889069afac0597c2fb5245eb deploy/wakeword-training/README.md @@ -21,8 +21,8 @@ dd9be3e3fd1beeb177c9c21bb862c9bbebfa94a552e30f714be984a1080caf63 deploy/wakewor 8fdf2177ba14d8c86a3a85b453d05b67d68172f924daa0203d40132f7efce11b scripts/build-wakeword-training-image 6f81326d4393582457d50f90024afb8607b048e8cae1bf596c1e2fdf6ba12fd1 scripts/jrich-wakeword-trainer a9525de2a4118f9da51a9cb67c53700c5439f8d3cd0507115c1968b529b4a319 scripts/run-wakeword-training -299f8d0e177ef05a5718b09bc86a3fa04c018b6dfe02df61cf7167b2981bed9f scripts/wakeword_trainer.py +f1b5cc400ffbc623c32c6b75d5c09329acb3debb815c5dd649e84bc634b240be scripts/wakeword_trainer.py e4aa3a54267ccd159fa599e5e4a6d001f70971384455a7a0b2255be3ae5aafdd scripts/wakeword_training.py c736dea62a81e13405d1ca6a2447246a9f334732f1e49748a52da2e2e0dc8466 scripts/wakeword_training_image.py -61d10266d854f495b1b5f4b41e014ac5aa926437a6e1cbcc97abb1d99742d487 start-windows.ps1 -be2f3c33ca1ba3987180279e0f35eddbefeecdde363cbb6e2424b065fb53e401 start.sh +134e97ff739cacd8049992f29309433641fa596f0efd9c8a0dc5bdd34770de2e start-windows.ps1 +b49b4ce621319a6c5bd410d6386036989a75bea735fe440a1d01cb2a0b57288e start.sh diff --git a/scripts/wakeword_trainer.py b/scripts/wakeword_trainer.py index 63c1ba7..2955f60 100644 --- a/scripts/wakeword_trainer.py +++ b/scripts/wakeword_trainer.py @@ -13,7 +13,7 @@ import sys from pathlib import Path from typing import Any -RUNNER_VERSION = "0.2.1-jrich-2" +RUNNER_VERSION = "0.2.1-jrich-3" DEFAULT_IMAGE = ( "git.jimandkrista.com/jr-public/jrich-wakeword-training" "@sha256:cef5b1e769a6160bbde69f67df76f0b865f02c27794a3da096398c18cc9a3c2f" diff --git a/start-windows.ps1 b/start-windows.ps1 index 83a09a7..a71839b 100644 --- a/start-windows.ps1 +++ b/start-windows.ps1 @@ -1,5 +1,5 @@ $ErrorActionPreference = "Stop" -$release = "0.2.1-jrich-2" +$release = "0.2.1-jrich-3" $source = (& wsl.exe wslpath -a -u -- $PSScriptRoot).Trim() if ($LASTEXITCODE -ne 0 -or -not $source) { diff --git a/start.sh b/start.sh index 4f103fb..f5196bf 100755 --- a/start.sh +++ b/start.sh @@ -1,7 +1,12 @@ #!/usr/bin/env bash set -euo pipefail -trainer_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +if [[ -f "$script_dir/scripts/jrich-wakeword-trainer" ]]; then + trainer_root="$script_dir" +else + trainer_root="$(cd "$script_dir/.." && pwd)" +fi if ! command -v python3 >/dev/null 2>&1; then echo "Python 3.11 or newer is required. Install it, then run this file again." >&2