Behaviour for text-to-speech adapters used by voice sessions.
@callback cancel_output(adapter :: pid()) :: :ok
@callback flush(adapter :: pid(), opts :: keyword()) :: :ok
@callback start_link(owner :: pid(), opts :: keyword()) :: {:ok, pid()} | {:error, term()}
@callback stop(adapter :: pid(), reason :: term()) :: :ok
@callback synthesize_segment( adapter :: pid(), text_segment :: String.t(), opts :: keyword() ) :: :ok