The show is published at dallasread.com/epiccreekadventures. The planning notes
(story options, each story’s full arc) are in _epic-creek/show-bible.html, which
the site doesn’t publish because it spoils the endings.
Each episode lives at epiccreekadventures/<story>/<episode>/, with three files:
script.txt: the script, which is the single source for both of the files belowepisode-N.mp3: the produced audioindex.html: the read-along page with the audio playerThe voices come from Kokoro, an
open-weight text-to-speech model that runs locally. The sound effects and music
are synthesized from scratch in sfx.py, so there are no sound files to license.
python3 -m venv venv && ./venv/bin/pip install kokoro-onnx soundfile numpy scipy
curl -LO https://github.com/thewh1teagle/kokoro-onnx/releases/download/model-files-v1.0/kokoro-v1.0.onnx
curl -LO https://github.com/thewh1teagle/kokoro-onnx/releases/download/model-files-v1.0/voices-v1.0.bin
E=epiccreekadventures/twelve-seconds-in-the-sky/episode-1
./venv/bin/python scripts/epic-creek/produce.py $E/script.txt $E/episode-1.mp3 \
--model kokoro-v1.0.onnx --voices voices-v1.0.bin
python3 scripts/epic-creek/render_script.py $E/script.txt $E/index.html \
--audio episode-1.mp3 --back ../../
produce.py also needs ffmpeg (with rubberband). Voices for each character are set in VOICES
in produce.py; words the voice model mispronounces go in SAY.
= SCENE 1. PLACE. TIME. starts a scene and stops the ambience
[SFX creek: description] a sound effect, or an ambience bed (see BEDS in sfx.py)
[MUSIC theme: description] a music cue (see MUSIC in sfx.py)
THEO (quietly): The line. dialogue, with an optional direction
Directions change the delivery: shouting, quiet, thinking,
telling the story, on the phone, muffled, into the mic.
Kokoro has no children’s voices and reads every line at the same pace, so
produce.py:
af_heart*0.8+am_puck*0.2) and shifts pitch and formants up
together for the children, which makes the voice sound like it comes from a
smaller body