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

# Soniox TTS v1

> Browse Soniox TTS v1 voices on SLNG with audio samples — real-time low-latency text-to-speech with 60+ supported languages and streaming WebSocket synthesis.

export const AudioPlayer = ({src, title = "Audio", description, autoPlay = false, loop = false, variant = "default"}) => {
  const audioId = useId();
  const isCompact = variant === "compact";
  const audioRef = useRef(null);
  const [isPlaying, setIsPlaying] = useState(false);
  const [currentTime, setCurrentTime] = useState(0);
  const [duration, setDuration] = useState(0);
  const togglePlayback = () => {
    const audio = audioRef.current;
    if (!audio) return;
    if (audio.paused) {
      void audio.play();
      setIsPlaying(true);
      return;
    }
    audio.pause();
    setIsPlaying(false);
  };
  const handleSeek = event => {
    const audio = audioRef.current;
    if (!audio) return;
    const next = Number(event.target.value);
    audio.currentTime = next;
    setCurrentTime(next);
  };
  const formatTime = seconds => {
    if (!Number.isFinite(seconds)) return "0:00";
    const total = Math.floor(seconds);
    const mins = Math.floor(total / 60);
    const secs = total % 60;
    return `${mins}:${secs < 10 ? "0" : ""}${secs}`;
  };
  const progress = duration > 0 ? currentTime / duration * 100 : 0;
  return <div className={`audio-player ${isCompact ? "compact" : ""}`}>
      {!isCompact && <div className="meta">
          <div className="titles">
            <div className="title">{title}</div>
            {description && <div className="description">{description}</div>}
          </div>

          <a className="download" href={src} download>
            Download
          </a>
        </div>}

      {isCompact ? <>
          <button type="button" className="compact-button" onClick={togglePlayback} aria-label={isPlaying ? "Pause audio sample" : "Play audio sample"}>
            <span className="compact-icon" aria-hidden="true">
              {isPlaying ? "❚❚" : "▶"}
            </span>
          </button>
          <audio id={audioId} ref={audioRef} preload="metadata" loop={loop} autoPlay={autoPlay} aria-label={title} src={src} onEnded={() => setIsPlaying(false)}>
            Your browser does not support the audio element.
          </audio>
        </> : <>
          <div className="controls">
            <button type="button" className="play-button" onClick={togglePlayback} aria-label={isPlaying ? "Pause" : "Play"}>
              {isPlaying ? <svg viewBox="0 0 24 24" width="15" height="15" fill="currentColor" aria-hidden="true">
                  <path d="M6 5h4v14H6zM14 5h4v14h-4z" />
                </svg> : <svg viewBox="0 0 24 24" width="15" height="15" fill="currentColor" aria-hidden="true">
                  <path d="M8 5v14l11-7z" />
                </svg>}
            </button>

            <span className="time">{formatTime(currentTime)}</span>

            <input type="range" className="scrubber" min="0" max={duration || 0} step="0.01" value={currentTime} onChange={handleSeek} aria-label="Seek" style={{
    "--progress": `${progress}%`
  }} />

            <span className="time">{formatTime(duration)}</span>
          </div>

          <audio id={audioId} ref={audioRef} preload="metadata" loop={loop} autoPlay={autoPlay} aria-label={title} src={src} onLoadedMetadata={event => setDuration(event.currentTarget.duration)} onTimeUpdate={event => setCurrentTime(event.currentTarget.currentTime)} onEnded={() => setIsPlaying(false)}>
            Your browser does not support the audio element.
          </audio>
        </>}
    </div>;
};

Soniox TTS v1 is a real-time, low-latency text-to-speech model with 60 supported languages. Voices are referenced by name. Pass the `voice_id` from the tables below as the `voice` field in your request.

```json theme={null}
{
  "text": "Hello from Sunny Barcelona",
  "voice": "Maya",
  "language": "es"
}
```

Set the optional `language` field to the matching ISO code for the language you want to synthesize. Default voice is `Adrian`, default language is `en`.

## Afrikaans

| Voice ID | Name   | Sample                                                                                                                                                          | Gender    | Age   | Tone                         | Use Case                      |
| -------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- | ----- | ---------------------------- | ----------------------------- |
| `adrian` | Adrian | <AudioPlayer variant="compact" src="https://assets.slng.ai/voice-previews/soniox/tts-rt:v1/d2e57181-2f81-4a4a-972e-32458120f4d0-6d28ebd2.wav" title="Adrian" /> | masculine | Adult | Studio quality, multilingual | Voice Agents, General Purpose |
| `claire` | Claire | <AudioPlayer variant="compact" src="https://assets.slng.ai/voice-previews/soniox/tts-rt:v1/37634ebe-e6ae-4ba1-a873-05a4d46df6f8-69748b48.wav" title="Claire" /> | feminine  | Adult | Studio quality, multilingual | Voice Agents, General Purpose |
| `daniel` | Daniel | <AudioPlayer variant="compact" src="https://assets.slng.ai/voice-previews/soniox/tts-rt:v1/d1818051-084c-4ccf-bf79-1b3d3d6ef09a-04958079.wav" title="Daniel" /> | masculine | Adult | Studio quality, multilingual | Voice Agents, General Purpose |
| `emma`   | Emma   | <AudioPlayer variant="compact" src="https://assets.slng.ai/voice-previews/soniox/tts-rt:v1/06523e3f-f406-489f-8a29-40622ffed563-2207dc8e.wav" title="Emma" />   | feminine  | Adult | Studio quality, multilingual | Voice Agents, General Purpose |
| `grace`  | Grace  | <AudioPlayer variant="compact" src="https://assets.slng.ai/voice-previews/soniox/tts-rt:v1/03092019-798a-49b4-aa1f-89ea60d7d4d1-6ed023a2.wav" title="Grace" />  | feminine  | Adult | Studio quality, multilingual | Voice Agents, General Purpose |
| `jack`   | Jack   | <AudioPlayer variant="compact" src="https://assets.slng.ai/voice-previews/soniox/tts-rt:v1/b16baef4-acad-465c-bab4-244de05e3255-792d707c.wav" title="Jack" />   | masculine | Adult | Studio quality, multilingual | Voice Agents, General Purpose |
| `kenji`  | Kenji  | <AudioPlayer variant="compact" src="https://assets.slng.ai/voice-previews/soniox/tts-rt:v1/47742bb1-9afa-4701-9dee-d28e4e1c724f-8e7e5fa0.wav" title="Kenji" />  | masculine | Adult | Studio quality, multilingual | Voice Agents, General Purpose |
| `maya`   | Maya   | <AudioPlayer variant="compact" src="https://assets.slng.ai/voice-previews/soniox/tts-rt:v1/0dd194f4-cb07-4be3-882b-b83e6fc81924-d06f57d3.wav" title="Maya" />   | feminine  | Adult | Studio quality, multilingual | Voice Agents, General Purpose |
| `mina`   | Mina   | <AudioPlayer variant="compact" src="https://assets.slng.ai/voice-previews/soniox/tts-rt:v1/20605d86-27a9-497f-9ad6-c1c410c6b233-92cc4239.wav" title="Mina" />   | feminine  | Adult | Studio quality, multilingual | Voice Agents, General Purpose |
| `nina`   | Nina   | <AudioPlayer variant="compact" src="https://assets.slng.ai/voice-previews/soniox/tts-rt:v1/e943f5c9-378b-49b6-b10e-957f4756a2d0-1fd942a7.wav" title="Nina" />   | feminine  | Adult | Studio quality, multilingual | Voice Agents, General Purpose |
| `noah`   | Noah   | <AudioPlayer variant="compact" src="https://assets.slng.ai/voice-previews/soniox/tts-rt:v1/f7bb62f7-079e-4ef5-9dff-8a235b9c87fc-05087d66.wav" title="Noah" />   | masculine | Adult | Studio quality, multilingual | Voice Agents, General Purpose |
| `owen`   | Owen   | <AudioPlayer variant="compact" src="https://assets.slng.ai/voice-previews/soniox/tts-rt:v1/4f4211db-d866-41a4-9745-4a6807e98406-a250d7e5.wav" title="Owen" />   | masculine | Adult | Studio quality, multilingual | Voice Agents, General Purpose |

## Slovenian

| Voice ID | Name   | Sample                                                                                                                                                          | Gender    | Age   | Tone                         | Use Case                      |
| -------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- | ----- | ---------------------------- | ----------------------------- |
| `Maya`   | Maya   | <AudioPlayer variant="compact" src="https://assets.slng.ai/voice-previews/soniox/tts-rt:v1/3e6d6998-754c-4ac3-b34e-e2e7abafc2a2-edb21f0f.wav" title="Maya" />   | feminine  | Adult | Studio quality, multilingual | Voice Agents, General Purpose |
| `Daniel` | Daniel | <AudioPlayer variant="compact" src="https://assets.slng.ai/voice-previews/soniox/tts-rt:v1/62210e30-a628-495c-969d-57474138b29f-3855f598.wav" title="Daniel" /> | masculine | Adult | Studio quality, multilingual | Voice Agents, General Purpose |
| `Noah`   | Noah   | <AudioPlayer variant="compact" src="https://assets.slng.ai/voice-previews/soniox/tts-rt:v1/e997fd8a-37d9-4169-8e33-3df8ec16106e-6576c2ec.wav" title="Noah" />   | masculine | Adult | Studio quality, multilingual | Voice Agents, General Purpose |
| `Nina`   | Nina   | <AudioPlayer variant="compact" src="https://assets.slng.ai/voice-previews/soniox/tts-rt:v1/83648761-1513-437c-9177-5bc4881e94a9-cda6b09d.wav" title="Nina" />   | feminine  | Adult | Studio quality, multilingual | Voice Agents, General Purpose |
