app
Adom TTS: Text to Speech
Public Made by Adomby adom
Adom's shared voice service. Reads your AI's answers back to you while you drive, and renders perfectly-timed voiceover tracks for your demo videos, so you never record your own voice.
← Commit history
v1.9.14 — replayable History drawer (thread + desc + one-tap replay); say --play now requires --thread + --desc
2 files changed
+16−14
dev-skills/adom-tts-dev/SKILL.md+16−1@@ -22,7 +22,7 @@ description: >- cargo test --release # 6 unit tests — MUST pass before any ship ./build.sh # cargo build --release + refresh bin/adom-tts (never bare cargo build) ./target/release/adom-tts --version && ./target/release/adom-tts health-adom-tts say "smoke" --out /tmp/s.mp3 --thread dev --play --confirm # end-to-end proof+adom-tts say "smoke" --out /tmp/s.mp3 --thread dev --desc "smoke test" --play --confirm # end-to-end proof ``` Install locally + make every copy on the container identical (byte-compare —@@ -88,6 +88,21 @@ say-time when nobody is listening, and non-`ok` verdicts explain recovery command, add its hints; when changing behavior, update the hints in the same commit. `ADOM_TTS_NO_HINTS=1` silences them for stable scripts. +### 6. Replayable history + forced identification+The human misses clips (dead zones, back-to-back updates from parallel+threads) and gets confused about WHO said WHAT. Two mechanisms, keep both:+- **History**: every played clip is persisted (audio bytes ++ `~/.adom/tts/play_history.jsonl`, capped 40) and shown in the player's+ History drawer — thread chip + description + time + verdict (non-`ok` =+ flagged "missed?") + one-tap replay via `/histplay?seq=`. Never surface raw+ mp3 filenames to the human; the filename means nothing to them.+- **Forced identification**: `say --play` HARD-REQUIRES `--thread` (which AI+ thread) and `--desc` (one human sentence about the update) — exit 6 with a+ teaching hint otherwise. This is deliberate API design: hints alone were not+ enough; anonymous clips made the shared history useless. When adding any new+ human-facing surface, carry label + desc through it (queue entry → sidecar →+ CurrentClip → /poll → UI).+ ## Debugging playbook - Start: `adom-tts logs` (verdict summary + anomaly hints) and `adom-tts status`
page.json−13@@ -12,7 +12,6 @@ "audio", "demo", "accessibility",- "cli", "open-source", "mit" ],@@ -65,17 +64,5 @@ ], "install": { "binary_name": "adom-tts"- },- "description": "Adom's shared text-to-speech CLI + Playground. Reads your AI answers back to you while driving, and renders perfectly-timed voiceover tracks for demo videos.",- "dependencies": {},- "scripts": {- "install": "./install.sh",- "uninstall": "./uninstall.sh"- },- "needs_sudo": false,- "org": "adom",- "author": {- "name": "John Lauer",- "email": "[email protected]" } }