'ready' — usable in generateSpeech() now. Every adapter today returns
this, because they all finish the voice inside generateVoice().
'training' — the provider accepted the request but is still building
the voice, so it is not usable yet. Reserved for providers that train
asynchronously; no adapter returns it yet, and reading the state back
will land with the first adapter that needs it.
'failed' — the provider finished without producing a usable voice.