> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sabi-tts-app.dev.neuralace.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Quickstart

> Generate your first Capella speech clip in under five minutes.

<Steps>
  <Step title="Create an account and API key">
    Sign in to the [Sabi playground](https://sabi-tts-app.dev.neuralace.co), open
    **API keys**, and create a key. The plaintext `sk_…` key is shown **once** — store it
    somewhere safe.
  </Step>

  <Step title="Set your API key">
    ```bash theme={null}
    export SABI_API_KEY="sk_..."
    ```

    The API base URL is `https://sabi-tts.dev.neuralace.co`.
  </Step>

  <Step title="Generate speech">
    <CodeGroup>
      ```bash cURL theme={null}
      curl -X POST "https://sabi-tts.dev.neuralace.co/v1/audio/speech" \
        -H "Authorization: Bearer $SABI_API_KEY" \
        -H "Content-Type: application/json" \
        -d '{"model":"sabi","voice":"capella","input":"Hello from Capella.","response_format":"wav"}' \
        --output out.wav
      ```

      ```python Python theme={null}
      from openai import OpenAI
      import os

      client = OpenAI(
          base_url="https://sabi-tts.dev.neuralace.co/v1",
          api_key=os.environ["SABI_API_KEY"],
      )

      with client.audio.speech.with_streaming_response.create(
          model="sabi",            # required by the SDK; the voice selects the model
          voice="capella",
          input="Hello from Capella.",
          response_format="wav",
      ) as resp:
          resp.stream_to_file("out.wav")
      ```

      ```typescript Node theme={null}
      import OpenAI from "openai";
      import fs from "node:fs";

      const client = new OpenAI({
        baseURL: "https://sabi-tts.dev.neuralace.co/v1",
        apiKey: process.env.SABI_API_KEY,
      });

      const res = await client.audio.speech.create({
        model: "sabi",            // required by the SDK; the voice selects the model
        voice: "capella",
        input: "Hello from Capella.",
        response_format: "wav",
      });
      fs.writeFileSync("out.wav", Buffer.from(await res.arrayBuffer()));
      ```
    </CodeGroup>
  </Step>

  <Step title="Make it expressive">
    Add [audio tags](/capella/audio-tags) to the `input` text:

    ```json theme={null}
    { "voice": "capella", "input": "<|laugh|> Hahaha! That is hilarious." }
    ```
  </Step>
</Steps>

## Next steps

<CardGroup cols={2}>
  <Card title="Capella configuration" icon="sliders" href="/capella/capella">
    All parameters, defaults, and environment variables.
  </Card>

  <Card title="Stream speech" icon="bolt" href="/api-reference/streaming">
    Sentence-by-sentence audio over WebSocket.
  </Card>
</CardGroup>
