> ## Documentation Index
> Fetch the complete documentation index at: https://docs.navtalk.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Supported Voice Styles

> Browse all available voice styles for Real-time Digital Human API

## Supported Voice Styles

Choose from our collection of voice styles to personalize your digital human's voice in the Real-time Digital Human API. Each voice style has unique characteristics suited for different use cases and scenarios. Click the play button to preview each voice style.

<style>
  {`
    .voice-card {
      background-color: #ffffff;
    }
    @media (prefers-color-scheme: dark) {
      .voice-card {
        background-color: #1e293b !important;
        border-color: #334155 !important;
      }
      .voice-card code {
        background-color: #0f172a !important;
        color: #e2e8f0 !important;
      }
      .voice-card .voice-description {
        color: #cbd5e1 !important;
      }
    }
    [data-theme="dark"] .voice-card,
    .dark .voice-card {
      background-color: #1e293b !important;
      border-color: #334155 !important;
    }
    [data-theme="dark"] .voice-card code,
    .dark .voice-card code {
      background-color: #0f172a !important;
      color: #e2e8f0 !important;
    }
    [data-theme="dark"] .voice-card .voice-description,
    .dark .voice-card .voice-description {
      color: #cbd5e1 !important;
    }
    `}
</style>

<div style={{ display: 'grid', gridTemplateColumns: 'repeat(auto-fill, minmax(300px, 1fr))', gap: '20px', marginTop: '24px', marginBottom: '32px' }}>
  {['alloy', 'ash', 'ballad', 'coral', 'echo', 'sage', 'shimmer', 'verse', 'cedar', 'marin'].map((voice, index) => {
      const isNewVoice = voice === 'cedar' || voice === 'marin';
      const descriptions = {
        'alloy': 'Clear and neutral with strong balance, suitable for general conversation and neutral scenarios',
        'ash': 'Clear and precise with strong expressiveness and high versatility',
        'ballad': 'Lyrical and soft, suitable for emotionally rich and narrative content',
        'cedar': 'Moderately warm with natural resonance, suitable for more "human-like" intonation',
        'coral': 'Passionate and bright with natural breathing, suitable for expressive or active scenarios',
        'echo': 'Deep resonance with a three-dimensional feel, suitable for contexts emphasizing "depth" or emotional layers',
        'marin': 'Steady and professional with high clarity, suitable for formal or business scenarios',
        'sage': 'Calm with a strong thoughtful quality, suitable for professional or instructional scenarios',
        'shimmer': 'Bright and energetic with a narrative atmosphere, suitable for storytelling or dreamy content',
        'verse': 'Strong expressiveness and flexible versatility, suitable for formal or multi-scenario applications'
      };
      return (
        <div key={voice} className="voice-card" style={{ border: isNewVoice ? '1px solid #8B5CF6' : '1px solid #e2e8f0', borderRadius: '8px', padding: '16px', position: 'relative' }}>
          {isNewVoice && (
            <div style={{ position: 'absolute', top: '8px', right: '8px', backgroundColor: '#8B5CF6', color: '#ffffff', fontSize: '10px', fontWeight: '600', padding: '2px 6px', borderRadius: '4px', textTransform: 'uppercase', letterSpacing: '0.5px' }}>
              New
            </div>
          )}
          <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', marginBottom: '12px', gap: '12px' }}>
            <code style={{ fontSize: '14px', backgroundColor: '#f1f5f9', padding: '2px 6px', borderRadius: '4px', fontWeight: '600', color: '#1e293b', flexShrink: 0 }}>{voice}</code>
            <div style={{ flex: 1, display: 'flex', justifyContent: 'center' }}>
              <audio 
                controls 
                style={{ height: '32px', width: '250px', maxWidth: '100%' }}
                preload="none"
              >
                <source src={`https://cdn.openai.com/API/voice-previews/${voice}.flac`} type="audio/flac" />
                <source src={`https://cdn.openai.com/API/voice-previews/${voice}.mp3`} type="audio/mpeg" />
                Your browser does not support the audio element.
              </audio>
            </div>
            <div style={{ width: '60px', flexShrink: 0 }}></div>
          </div>
          <div className="voice-description" style={{ fontSize: '14px', color: '#64748b' }}>
            {descriptions[voice]}
          </div>
        </div>
      );
    })}
</div>

## Accent and Dialect Support

You can control accents and dialects by specifying them in your `instructions` (system prompt). The model will match the accent/dialect you specify while using the selected voice style.

**Example: Control dialect for consistent persona**:

```javascript theme={null}
instructions: `## Language

Response only in argentine spanish.`
```

For more details on language and dialect control, see the [Building Effective Prompts](/api/real-time-digital-human-api/prompt-engineering/building-prompts#4-limit-model-to-one-language) guide.

## How to Use

After establishing the WebSocket connection, send session configuration using `realtime.input_config` in the `onopen` event handler:

```javascript theme={null}
socket.onopen = () => {
  const config = {
    voice: 'echo' // OpenAI voice styles: alloy, ash, ballad, cedar, coral, echo, marin, sage, shimmer, verse
  };
  
  // Send configuration
  socket.send(JSON.stringify({
    type: 'realtime.input_config',
    data: { content: JSON.stringify(config) }
  }));
};
```

## Video Synthesis Voice Styles

This page lists voice styles supported by the **Real-time Digital Human API**. For voice styles supported by the Video Synthesis API, see the [Video Synthesis Voice Styles](/api/video-synthesis-api/voice-styles) page.
