sound.speech.klatt.render

sound.speech.klatt

render(events, voice, opts) -> buf, info/err

Render phoneme events into a mono 16 kHz sample buffer

With opts.yield_every = N, the render calls coroutine.yield(done_fraction) every N parameter frames. speech.say_job uses it to slice a long render. The render state lives in locals, so a sliced render gives the same bytes as a whole one.