Configuration for voice pipelines.
This module defines the configuration structures for text-to-speech (TTS) and speech-to-text (STT) models, as well as the overall pipeline configuration.
Example
config = %Codex.Voice.Config{
workflow_name: "Customer Support Voice Agent",
tts_settings: %Codex.Voice.Config.TTSSettings{
voice: :nova,
speed: 1.0
},
stt_settings: %Codex.Voice.Config.STTSettings{
language: "en"
}
}Voices
OpenAI provides the following TTS voices:
:alloy- Neutral and balanced:ash- Warm and conversational:coral- Clear and articulate:echo- Soft and thoughtful:fable- Expressive and dramatic:onyx- Deep and authoritative:nova- Friendly and upbeat:sage- Calm and measured:shimmer- Bright and energetic
Summary
Functions
Create a new voice pipeline configuration.
Types
@type t() :: %Codex.Voice.Config{ group_id: String.t() | nil, model_provider: module() | nil, stt_settings: Codex.Voice.Config.STTSettings.t() | nil, trace_include_sensitive_audio_data: boolean(), trace_include_sensitive_data: boolean(), trace_metadata: map() | nil, tracing_disabled: boolean(), tts_settings: Codex.Voice.Config.TTSSettings.t() | nil, workflow_name: String.t() | nil }
@type voice() ::
:alloy | :ash | :coral | :echo | :fable | :onyx | :nova | :sage | :shimmer
Available TTS voice options.
Functions
Create a new voice pipeline configuration.
Options
:model_provider- The voice model provider module to use:tracing_disabled- Whether to disable tracing (default: false):trace_include_sensitive_data- Include sensitive data in traces (default: true):trace_include_sensitive_audio_data- Include audio data in traces (default: false):workflow_name- Name for tracing purposes:group_id- Grouping ID to link traces from the same conversation:trace_metadata- Additional metadata to include with traces:stt_settings- STT settings struct or keyword list:tts_settings- TTS settings struct or keyword list
Examples
iex> config = Codex.Voice.Config.new(workflow_name: "Support Agent")
iex> config.workflow_name
"Support Agent"