---
title: "LMNT TTS"
description: "Blizzard and Aurora TTS models via the LMNT HTTP API."
icon: "waveform"
---

# LMNT TTS

`LMNTTTS` calls LMNT's [`/v1/ai/speech/bytes`](https://docs.lmnt.com/api-reference/speech/synthesize-speech-bytes) endpoint. The Patter port defaults to `format: "raw"` (PCM_S16LE) at 16 kHz for direct telephony use; callers can switch to `mp3`, `mulaw`, `wav`, `aac` when needed.

## Install

```bash
npm install getpatter
```

No vendor SDK is required — `LMNTTTS` uses the platform `fetch`, so it works on Node 18+.

## Usage

```typescript
import { LMNTTTS } from "getpatter";

const tts = new LMNTTTS();                                            // reads LMNT_API_KEY
const tts2 = new LMNTTTS({ model: "blizzard", voice: "leah" });
```

In an agent:

```typescript
// npx tsx example.ts
import { Patter, Twilio, DeepgramSTT, LMNTTTS } from "getpatter";

const phone = new Patter({ carrier: new Twilio(), phoneNumber: "+15550001234" });

const agent = phone.agent({
  stt: new DeepgramSTT(),                             // DEEPGRAM_API_KEY from env
  tts: new LMNTTTS({ model: "blizzard", voice: "leah" }),  // LMNT_API_KEY from env
  systemPrompt: "You are a helpful assistant.",
});

await phone.serve({ agent });
```

## Options

| Option | Default | Notes |
|---|---|---|
| `apiKey` | — | Reads from `LMNT_API_KEY` when omitted. |
| `model` | `"blizzard"` | `"blizzard"` or `"aurora"`. |
| `voice` | `"leah"` | LMNT voice id. |
| `language` | `undefined` | Auto-derived from model when omitted. |
| `format` | `"raw"` | `"aac"`, `"mp3"`, `"mulaw"`, `"raw"`, `"wav"`. |
| `sampleRate` | `16000` | `8000`, `16000`, or `24000`. |
| `temperature` | `1.0` | Higher = more expressive. |
| `topP` | `0.8` | Controls stability. |
| `baseUrl` | LMNT `/v1/ai/speech/bytes` | Override for proxying or self-hosted gateways. |
