diff --git a/README.md b/README.md index f43911c..60a10d7 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ docker pull ghcr.io/tatertotterson/microwakeword:latest Tagged releases also publish matching immutable image tags: ```bash -docker pull ghcr.io/tatertotterson/microwakeword:v14 +docker pull ghcr.io/tatertotterson/microwakeword:v15 ``` The release tag must match `VERSION`. Update `WHATS_NEW.md` before tagging; the Docker workflow prepends it to GitHub's automatically generated release notes. @@ -32,7 +32,7 @@ Python 3.13 TensorFlow build for `sm_120`: ```bash docker pull ghcr.io/tatertotterson/microwakeword:blackwell -docker pull ghcr.io/tatertotterson/microwakeword:v14-blackwell +docker pull ghcr.io/tatertotterson/microwakeword:v15-blackwell ``` Use the Blackwell image only for RTX 50-series cards. It includes the @@ -53,9 +53,9 @@ docker run -d \ ghcr.io/tatertotterson/microwakeword:latest ``` -Use a version tag such as `ghcr.io/tatertotterson/microwakeword:v14` when you want to pin a known release instead of tracking `latest`. +Use a version tag such as `ghcr.io/tatertotterson/microwakeword:v15` when you want to pin a known release instead of tracking `latest`. For RTX 50-series cards, use `ghcr.io/tatertotterson/microwakeword:blackwell` -or a pinned tag such as `ghcr.io/tatertotterson/microwakeword:v14-blackwell` +or a pinned tag such as `ghcr.io/tatertotterson/microwakeword:v15-blackwell` in the same `docker run` command. The flags: @@ -185,11 +185,11 @@ A close miss with an empty transcript or without the configured phrase stays in The default `small.en` model uses CUDA with `float16` when CTranslate2 can see an NVIDIA GPU, and falls back to CPU with `int8`. Choose a multilingual Faster Whisper model such as `small` when the wake phrase is not English. Downloaded STT models are cached in `/data/auto_train_models/`. -Scheduled training runs only after the configured number of new automatic negatives has accumulated. A successful run publishes the replacement model at the same wake-word URL, asks Tater for its connected native satellites, and re-saves each satellite's current wake profile so its JSON tuning and model are fetched again. This refresh uses the existing Tater Native update path, so no satellite firmware change is required. +Scheduled training runs only after the configured number of new automatic negatives has accumulated. A successful run securely publishes the trained wake-word name and JSON URL to the linked Tater instance. Tater saves it as the global satellite wake word and pushes the updated setting to every connected satellite, so no satellite firmware change is required. The `Trainer public URL` must be reachable from the satellites. With the documented `--network host` command, the trainer can normally use the LAN address from the browser request or host network. If you open the UI as `http://localhost:8789`, enter a value such as `http://192.168.1.50:8789`, or start the container with `REC_PUBLIC_BASE_URL` set to that value. When using Docker bridge networking, always set this URL to the published host address; a container bridge address is not satellite-reachable. -The default Tater URL, `http://127.0.0.1:8501`, assumes the documented host networking. Change it to a container-reachable Tater address if you use another Docker network. The optional API token is stored in `/data/auto_train_config.json` with owner-only permissions. +The default Tater URL, `http://127.0.0.1:8501`, assumes the documented host networking. Change it to a container-reachable Tater address if you use another Docker network. Click `Link Tater` and enter the short-lived code shown in Tater Voice Settings; the resulting trainer-specific link credential is stored in `/data/auto_train_config.json` with owner-only permissions. --- diff --git a/VERSION b/VERSION index 8351c19..60d3b2f 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -14 +15 diff --git a/WHATS_NEW.md b/WHATS_NEW.md index 9c70fee..c373c8c 100644 --- a/WHATS_NEW.md +++ b/WHATS_NEW.md @@ -1,2 +1,3 @@ -- Fixed automatic and manual satellite refresh so every connected satellite re-fetches its current custom wake JSON profile before reloading the model. -- The large WHAM augmentation dataset download now reports visible progress in the training log. +- Added secure Tater linking: enter the short-lived code from Tater Voice Settings instead of giving the trainer a general API token. +- Automatic and manual publishing now tell Tater which trained wake word is active, and Tater applies it globally to every connected satellite. +- Added clear linked, unlinked, and pairing-success states to the Auto Training interface. diff --git a/static/index.html b/static/index.html index 3bea4ce..fb69d6d 100644 --- a/static/index.html +++ b/static/index.html @@ -1084,6 +1084,43 @@ .trimActions { display: flex; gap: 8px; flex-wrap: wrap; } .trimActions button { flex: 1; min-width: 120px; } + .taterLinkOverlay { + position: fixed; inset: 0; padding: 22px; + display: flex; align-items: center; justify-content: center; + background: rgba(4,5,10,0.62); backdrop-filter: blur(12px); + opacity: 0; visibility: hidden; pointer-events: none; + transition: opacity 0.18s ease, visibility 0.18s ease; + z-index: 12000; + } + .taterLinkOverlay.open { opacity: 1; visibility: visible; pointer-events: auto; } + .taterLinkDialog { + width: min(560px, calc(100vw - 36px)); + display: grid; gap: 18px; padding: 22px; border-radius: 24px; + border: 1px solid rgba(255,138,42,0.28); + background: + radial-gradient(circle at top right, rgba(255,138,42,0.16), transparent 46%), + linear-gradient(180deg, rgba(17,20,28,0.96), rgba(8,10,16,0.98)); + box-shadow: 0 30px 90px rgba(0,0,0,0.64); + } + .taterLinkCodePanel { + display: grid; gap: 10px; text-align: center; padding: 24px; + border-radius: 18px; border: 1px solid rgba(255,138,42,0.28); + background: rgba(255,138,42,0.09); + } + .taterLinkCode { + color: var(--orange2); font: 800 clamp(30px, 8vw, 46px)/1 ui-monospace, SFMono-Regular, Menlo, monospace; + letter-spacing: 0.12em; + } + .taterLinkSuccess { + display: grid; justify-items: center; gap: 12px; padding: 28px; text-align: center; + } + .taterLinkSuccessMark { + display: grid; place-items: center; width: 68px; height: 68px; border-radius: 50%; + background: rgba(57,212,160,0.15); border: 1px solid rgba(57,212,160,0.42); + color: #6ee0af; font-size: 24px; font-weight: 900; + } + .taterLinkActions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; } + .pill.trimBadge { color: #89d4ff; border-color: rgba(137,212,255,0.25); @@ -1399,8 +1436,8 @@
3
-

Publish + Satellite Refresh

-

The trainer publishes a LAN-reachable model URL, then asks Tater to re-push live settings so the firmware downloads the updated model at the same URL.

+

Publish to Tater

+

The trainer publishes a LAN-reachable model URL, then tells Tater to make the newly trained wake word active on every satellite.

@@ -1414,22 +1451,15 @@ Tater URL - - + +
+ Not linked + +
- @@ -1438,7 +1468,7 @@ - +
No automatic review has run yet.
@@ -1681,6 +1711,22 @@ + +