Behaviour for text-to-speech adapters.
Both buffered (synthesize/2) and streaming (stream_synthesize/2) are
required. The Bridge uses streaming for real-time playback.
Summary
Types
@type audio_blob() :: binary()
Callbacks
@callback stream_synthesize(text :: String.t(), opts :: keyword()) :: {:ok, Enumerable.t()} | {:error, term()}
@callback synthesize(text :: String.t(), opts :: keyword()) :: {:ok, audio_blob()} | {:error, term()}