eSpeak-NG is cursed

you get one callback and exactly one callback and it has no user data because it's stored in global state

@niko state is stored in the global
@niko yeah, learnt this writing a rust wrapper for it and resorted to calling out the CLI in the end because I just did not trust that codebase in my memory space lol