voice
The spoken script — the words, who says them, and the name each line's clip is filed under. Data only; the generation and the processing that give them a voice live in `audio.voicebake`.
audio.voice
The spoken script — the words, who says them, and the name each line's clip is
filed under. Data only; the generation and the processing that give them a voice
live in audio.voicebake.
Two speakers. The Vagant is close, tired and plain. The Commissioner is a man reading a minute-book aloud in a place with no walls.
They are separated by writing and by processing, not by a voice id.
audio_gen.speech takes an optional voice and nothing on the service
enumerates the ids it accepts; a deliberately invalid id was accepted and
returned audio, so a wrong id does not announce itself, and two known-public ids
produced no pitch separation this could measure. Both speakers are therefore
generated on the default voice, and the Commissioner is dropped a minor third,
band-limited and thrown into a long cold tail in the bake.
Eighteen lines: the opening (the Commissioner speaks first, from somewhere unseen), the lamps, the wig, the oil, the Commissioners closing in, and the two resolutions.
Each line's first forty characters are unique on purpose: the generation service names its imported asset from a forty-character truncation of the text, and two lines sharing that prefix overwrite each other silently.
SoundDirector emits line(key, text, speaker, seconds) whether or not the
clip exists, so a failed generation is a quiet line rather than a lost one.
Scoped to this part · feeds back into the world's score.