Synaptic.Voice.Session (synaptic v0.3.0-alpha.8)

View Source

GenServer managing one headless voice session bound to a Synaptic run.

Summary

Types

mode()

@type mode() :: :duplex | :turn_based

state()

@type state() :: %{
  session_id: String.t(),
  run_id: String.t(),
  mode: mode(),
  status: atom(),
  seq: non_neg_integer(),
  keep_alive: boolean(),
  end_turn_requested: boolean(),
  resume_mapper: (String.t(), map() -> map()),
  stt_adapter: module(),
  stt_pid: pid(),
  tts_adapter: module(),
  tts_pid: pid(),
  tts_buffer: String.t(),
  latest_partial: String.t() | nil,
  latest_final: String.t() | nil,
  turn_started_at: integer() | nil,
  latency: map()
}

Functions

cancel_output(session_id)

child_spec(init_arg)

Returns a specification to start this module under a supervisor.

See Supervisor.

end_turn(session_id, opts \\ [])

inspect_session(session_id)

playback_drained(session_id)

push_audio(session_id, audio_chunk, opts \\ [])

push_text(session_id, text, opts \\ [])

start_link(opts)

stop_session(session_id, reason \\ :normal)