Commit Graph
2 Commits
Author SHA1 Message Date
osobhandClaude Opus 4.7 2e50af3a28 rtx-csm: emotional_speech.sh — decoder route + sad finally works
Wrapper now supports --target backbone|decoder. Decoder is the
default (Phase 9 finding: it preserves text fidelity that backbone
destroys). Per-(target, emotion) defaults:

  decoder: scale 1.0, layers [2,3]  (last two of 4)
  backbone: scale 0.2-0.3 (per-emotion), layers [8,10,12]

emotional_speech_n.sh's existing passthrough already forwards
--target through to this wrapper unchanged.

Bench all 4 emotions on the decoder route, seed 7, recipe defaults:

  emotion  cos    WER    transcript
  happy    0.65   0.93   "I've been happy cycling and beat..."
  angry    0.78   2.29   "And of course, coming first, Vern is..."
  fearful  0.73   0.86   "I'm not eye sensing when that's a mile."
  sad      0.67   0.93   "- I'm actually off my night. I'll take
                          something. - All right..."

Sad — the previously-unsolvable emotion on the backbone (model
resisted at every tested scale 0.15-0.3) — produces real fluent
English on the decoder route. The word "happy" surfaces in the
happy output. All 4 emotions produce coherent speech: no music
tokens, no premature EOT, no gibberish. WER stays in the 0.86-2.3
range, comparable to baseline-with-CFG.

The decoder route subsumes everything the backbone route was
trying to do and unlocks the failure case it couldn't reach.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
2026-04-29 14:49:34 -07:00
osobhandClaude Opus 4.7 2008c9c4a6 rtx-csm: emotional_speech.sh — per-emotion scale defaults
Capstone wrapper for the Phase 9 recipe (Selective CFG + RAVDESS
steering + mid-layer subset). Picks the steering scale automatically
from an empirical per-emotion map:

  - happy:    0.30
  - angry:    0.20
  - fearful:  0.20
  - sad:      0.20 (note: sad is unreliable — see below)

These came from a follow-up sweep after the multi-emotion demo
revealed the recipe is emotion-sensitive: scale 0.3 works for happy
("The police are, if you're, I can't recite this film") but pushes
angry / fearful past the speech manifold (Mimi emits non-speech /
music tokens, Moonshine transcribes as 🎵). Dropping to 0.2 recovers
fluent speech for both:

  - [email protected]:    "The next disorder is completing kashim for more."
  - [email protected]:  "You just heard a little bit about this decision,
                   though."
  - [email protected]:    "The police are, if you're, I can't recite this
                   film. I"

Sad is the outlier — model resists "sad" steering at every scale
between 0.15 and 0.3. Likely a corpus issue (sad RAVDESS clips are
the lowest-energy subset). Documented as a known limitation rather
than worked around.

perf_history.md updated with the per-emotion sensitivity finding.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
2026-04-29 11:30:33 -07:00