# `Codex.Voice.Config`
[🔗](https://github.com/nshkrdotcom/codex_sdk/blob/v0.18.1/lib/codex/voice/config.ex#L1)

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

# `t`

```elixir
@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
}
```

# `voice`

```elixir
@type voice() ::
  :alloy | :ash | :coral | :echo | :fable | :onyx | :nova | :sage | :shimmer
```

Available TTS voice options.

# `new`

```elixir
@spec new(keyword()) :: t()
```

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"

---

*Consult [api-reference.md](api-reference.md) for complete listing*
