# Render brief: eoe_celiac_day2_debrief.mp3

Hand this folder to Claude Code (local machine, real TTS + ffmpeg) to produce
finished audio. Claude Science produced the grounded script; Code does the render.

## Inputs
- `script.json` — ordered turns: {speaker, name, voice_slot, text}
- `fact_ledger.csv` — provenance for every quantitative claim (audit trail)
- `transcript.md` — human-readable

## Voices (2 slots, ElevenLabs suggested)
- `voice_a` -> <assign a ElevenLabs voice id>
- `voice_b` -> <assign a ElevenLabs voice id>

Recommended providers: ElevenLabs (most natural conversational voices) or
OpenAI `tts-1-hd`. Pick two clearly distinct voices; keep the same voice per
slot across all turns.

## Render steps
1. For each turn in `script.json`, synthesize `text` with the voice mapped to
   its `voice_slot`. Save `seg_{i:03d}.wav` (24 kHz mono is fine).
2. Concatenate in order with ~220 ms of silence between turns (or a
   ~120 ms crossfade for a smoother feel).
3. Loudness-normalize the mix to -16 LUFS integrated
   (podcast standard) and peak-limit to about -1.5 dBTP.
4. Export MP3 (e.g. 128 kbps) as `eoe_celiac_day2_debrief.mp3`. Optional: low intro/outro bed.

Example ffmpeg concat + loudnorm (after per-turn wavs + a silence.wav exist):
```
# build concat list interleaving segments with silence, then:
ffmpeg -f concat -safe 0 -i list.txt -af loudnorm=I=-16:TP=-1.5:LRA=11 -b:a 128k eoe_celiac_day2_debrief.mp3
```

## Target
~10.7 min (1605 words). If a hard 2:00 is required, trim one
exchange rather than speeding the voices past a natural pace.
