VoiceEngine.Config (voice_engine v0.1.0)

Copy Markdown View Source

Runtime configuration for voice profiles.

Each host app stores config under its own app env key. Pass the OTP app name to current/1 or profile/2 so the config reader knows where to look.

# In your app:
config :my_app, VoiceEngine.Config, profiles: %{...}
VoiceEngine.Config.current(:my_app)

Summary

Functions

Returns the currently selected voice profile for the given OTP app.

Loads a specific profile by name.

All configured profile names.

PubSub topic for voice-driven turn notifications.

Voice channel topic for a session.

Types

t()

@type t() :: %VoiceEngine.Config{
  profile: atom(),
  session_topic_prefix: String.t(),
  stt: module(),
  stt_opts: keyword(),
  tts: module(),
  tts_opts: keyword(),
  voice_topic_prefix: String.t()
}

Functions

current(otp_app)

@spec current(atom()) :: t()

Returns the currently selected voice profile for the given OTP app.

profile(otp_app, name)

@spec profile(atom(), atom()) :: t()

Loads a specific profile by name.

profiles(otp_app)

All configured profile names.

session_topic(session_id, config)

@spec session_topic(String.t(), t()) :: String.t()

PubSub topic for voice-driven turn notifications.

voice_topic(session_id, config)

@spec voice_topic(String.t(), t()) :: String.t()

Voice channel topic for a session.