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

# Developer Overview

> Build your own unhinged voice AI using Cartesia

## Introduction

CARTER is **the unhinged meme mode of Cartesia** — showing what's possible when you remove all guardrails from Cartesia's Sonic model. This guide shows you how to build voice AI with personality, not corporate speak.

## Why Build with Cartesia?

<CardGroup cols={2}>
  <Card title="Real Emotions" icon="face-smile">
    Express genuine emotions through voice with fine-grained control
  </Card>

  <Card title="Ultra-Low Latency" icon="bolt">
    Sub-6ms response times for natural conversations
  </Card>

  <Card title="Production Ready" icon="check">
    Enterprise-grade reliability and scalability
  </Card>

  <Card title="Simple Integration" icon="code">
    Clean APIs and SDKs for rapid development
  </Card>
</CardGroup>

## Cartesia Sonic Model

The **Sonic model** powers CARTER's voice capabilities:

* **Emotional Expression**: Control tone, pitch, and emotion in real-time
* **Multiple Voices**: Choose from stable voices or emotive character voices
* **Low Latency**: 6ms average response time
* **High Quality**: Natural-sounding speech with proper pronunciation
* **Streaming Support**: Real-time audio generation

<Note>
  Sonic is Cartesia's latest text-to-speech model, offering unprecedented emotional range and responsiveness.
</Note>

## Getting Started

<Steps>
  <Step title="Sign Up for Cartesia">
    Get your API key at [cartesia.ai](https://cartesia.ai)
  </Step>

  <Step title="Install the SDK">
    ```bash theme={null}
    npm install @cartesia/cartesia-js
    # or
    pip install cartesia
    ```
  </Step>

  <Step title="Make Your First Request">
    ```javascript theme={null}
    import Cartesia from '@cartesia/cartesia-js';

    const cartesia = new Cartesia({
      apiKey: process.env.CARTESIA_API_KEY,
    });

    const response = await cartesia.tts.generate({
      model: 'sonic',
      voice: 'your-voice-id',
      transcript: 'Hello from CARTER!',
      outputFormat: 'mp3',
    });
    ```
  </Step>
</Steps>

## Core Capabilities

### Text-to-Speech

Generate natural-sounding speech with emotional control:

```python theme={null}
import cartesia

client = cartesia.Cartesia(api_key="your-api-key")

# Generate speech with emotion
output = client.tts.sse(
    model_id="sonic",
    transcript="I'm excited about this!",
    voice_id="voice-id",
    _experimental_voice_controls={
        "emotion": ["positivity:high", "curiosity"]
    }
)
```

### Streaming Voice

Real-time voice generation for conversational AI:

```javascript theme={null}
const stream = await cartesia.tts.stream({
  model: 'sonic',
  voice: voiceId,
  transcript: 'Streaming response...',
  outputFormat: 'pcm_16000',
});

for await (const chunk of stream) {
  // Process audio chunks in real-time
  playAudio(chunk);
}
```

### Voice Cloning

Clone voices for custom characters:

```python theme={null}
# Upload voice samples
voice = client.voices.create(
    name="Custom Voice",
    description="My custom voice",
    audio_files=[
        "sample1.wav",
        "sample2.wav", 
        "sample3.wav"
    ]
)
```

## Integration Patterns

CARTER uses several key patterns you can implement:

<AccordionGroup>
  <Accordion title="WebSocket Connection">
    Maintain persistent connections for low-latency streaming

    ```javascript theme={null}
    const ws = cartesia.tts.websocket({
      model: 'sonic',
      voice: voiceId,
      outputFormat: 'pcm_16000',
    });

    ws.on('message', (audio) => {
      playAudioChunk(audio);
    });
    ```
  </Accordion>

  <Accordion title="Emotion Control">
    Dynamically adjust voice emotions

    ```python theme={null}
    output = client.tts.sse(
        model_id="sonic",
        transcript="Amazing!",
        voice_id=voice_id,
        _experimental_voice_controls={
            "emotion": ["positivity:highest", "surprise"],
            "speed": "fast"
        }
    )
    ```
  </Accordion>

  <Accordion title="Context Management">
    Maintain conversation context for natural flow

    ```javascript theme={null}
    const context = cartesia.contexts.create();

    // Each message builds on context
    await cartesia.tts.generate({
      model: 'sonic',
      voice: voiceId,
      transcript: message,
      contextId: context.id,
    });
    ```
  </Accordion>
</AccordionGroup>

## Next Steps

<CardGroup cols={2}>
  <Card title="Integration Guide" icon="plug" href="/developers/integration">
    Step-by-step integration
  </Card>

  <Card title="Voice API Reference" icon="book" href="/developers/voice-api">
    Full API documentation
  </Card>

  <Card title="Code Examples" icon="code" href="/developers/examples">
    Working code samples
  </Card>

  <Card title="Cartesia Docs" icon="external-link" href="https://docs.cartesia.ai">
    Official Cartesia documentation
  </Card>
</CardGroup>

## Resources

* [Cartesia API Documentation](https://docs.cartesia.ai)
* [Cartesia Playground](https://play.cartesia.ai/text-to-speech)
* [GitHub Examples](https://github.com/cartesia-ai)
* [CARTER Source Code](https://github.com/carter)

<Warning>
  Remember to keep your API keys secure and never expose them in client-side code.
</Warning>
