feat(podcast): update music_mix config with voice-aware guardrails (#430)

- Voice guardrail: music never exceeds 10% when voice is playing - Intro: full vol 8s, fade to 10% before voice starts, post-intro 2s musical break then silence - Outro: fade from 0% to 10% over 3s under farewell, ramp to 100% after voices end - Updated Vera voice from alloy to coral (operator change) - Added configurable parameters: speech_duck_gain, pre_voice_fade, post_intro timing Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Juan Manuel Servera committed Jun 12, 2026 at 16:37 UTC 3bb6ba9e1cf3b820c4e9d677cd50df1e015167c8
1 file changed +10 -7
config/podcast.json
+10 -7
@@ -37,17 +37,20 @@
37 },
38 "music_mix": {
39 "track": "Summer Sport",
40 + "voice_guardrail": "Music must NEVER exceed 10% volume when any voice is playing. Only go above 10% during guaranteed silence: intro opening, post-intro musical break, and outro after all voices end.",
41 + "speech_duck_gain": 0.10,
42 "intro": {
41 - "description": "Full volume for 10 seconds, fade down under Host A's opening line, fade up briefly after Host A finishes, fade out before Host B begins.",
42 - "full_volume_seconds": 10,
43 - "fade_down_under": "Host A opening",
44 - "fade_up_after": "Host A opening",
45 - "fade_out_before": "Host B first line"
43 + "description": "Full volume 0-8s (no voice yet). Fade down to 10% from 8-10s so music is already ducked when voice starts. Stay at 10% under host introductions. After intros end, fade up to 100% for 2 seconds (musical break). Then fade to zero over 1 second. Main show starts in silence.",
44 + "full_volume_seconds": 8,
45 + "pre_voice_fade_seconds": 2,
46 + "speech_segments_under_music": 2,
47 + "post_intro_full_volume_seconds": 2,
48 + "post_intro_fade_out_seconds": 1
49 },
50 "outro": {
48 - "description": "Start at 1:15 of the song. Slow fade-up during the farewell exchange between hosts, then play to the end of the track.",
51 + "description": "When farewell starts, music fades in from 0% to 10% over 3 seconds. Stays at 10% max while any voice is still talking. After the last voice ends, ramp to 100% and play to end of track.",
52 "start_position": "1:15",
50 - "fade_up_during": "farewell exchange",
53 + "fade_in_from_zero_seconds": 3,
54 "play_to_end": true
55 }
56 }