Behaviour for pluggable turn detection strategies.
A strategy receives frames and returns events (speaking frames, interruption frames) to be emitted alongside the original frame.
@callback handle_frame(frame :: struct(), state :: term()) :: {:events, [struct()], state :: term()} | {:ok, state :: term()}
@callback init(opts :: keyword()) :: {:ok, state :: term()}