Each project gets a distinct voice from a curated English pool, assigned via round-robin with gender/accent interleaving for maximum perceptual contrast between consecutive projects. - New voice_identity.py: pool filtering, interleaving, persistence - Round-robin replaces SHA-256 hashing (no collisions until pool exhaustion at 22 voices) - Assignments persist to /data/voice-assignments.json across restarts - speak() and generate_audio() accept optional project= parameter - MCP roots fallback with 2s timeout for future bidirectional clients - English-only pool (af_/am_/bf_/bm_/ef_/em_ prefixes) - af_nicole excluded from auto-assign (whispery), still explicit-ok - Fix voice blacklist to use full identifiers (am_adam, af_jessica)
Description
No description provided
Languages
Python
95.9%
Dockerfile
2%
Swift
1.4%
Makefile
0.7%