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

# Text-to-Speech

> The Prisma AIRS AI Gateway's AI gateway supports text-to-speech models on OpenAI, Azure OpenAI, and Google Vertex AI.

## Usage

We follow the OpenAI signature where you can send the input text and the voice option as a part of the API request. All the output formats `mp3`, `opus`, `aac`, `flac`, and `pcm` are supported. The AI Gateway also supports real time audio streaming for TTS models.

Here's an example:

<Tabs>
  <Tab title="OpenAI NodeJS">
    ```js theme={"system"}
    import fs from "fs";
    import path from "path";
    import OpenAI from "openai";

    const openai = new OpenAI({
      apiKey: "PORTKEY_API_KEY",
      baseURL: "https://aigw.portkey.ai/v1"
    });

    const speechFile = path.resolve("./speech.mp3");

    async function main() {
      const mp3 = await openai.audio.speech.create({
        model: "@openai/tts-1",
        voice: "alloy",
        input: "Today is a wonderful day to build something people love!",
      });
      const buffer = Buffer.from(await mp3.arrayBuffer());
      await fs.promises.writeFile(speechFile, buffer);
    }

    main();
    ```
  </Tab>

  <Tab title="OpenAI Python">
    ```py theme={"system"}
    from pathlib import Path
    from openai import OpenAI

    client = OpenAI(
        api_key="PORTKEY_API_KEY",
        base_url="https://aigw.portkey.ai/v1"
    )

    speech_file_path = Path(__file__).parent / "speech.mp3"

    response = client.audio.speech.create(
      model="@openai/tts-1",
      voice="alloy",
      input="Today is a wonderful day to build something people love!"
    )

    f = open(speech_file_path, "wb")
    f.write(response.content)
    f.close()
    ```
  </Tab>

  <Tab title="cURL">
    ```sh theme={"system"}
    curl "https://aigw.portkey.ai/v1/audio/speech" \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer $PORTKEY_API_KEY" \
      -d '{
        "model": "@openai/tts-1",
        "input": "Today is a wonderful day to build something people love!",
        "voice": "alloy"
      }' \
      --output speech.mp3
    ```
  </Tab>
</Tabs>

On completion, the request will get logged in the logs UI and show the cost and latency incurred.

## SSE Streaming

OpenAI and Azure OpenAI support Server-Sent Events (SSE) streaming for the speech endpoint. Set `stream_format` to `"sse"` to receive audio data as a stream of events:

<Tabs>
  <Tab title="cURL">
    ```sh theme={"system"}
    curl "https://aigw.portkey.ai/v1/audio/speech" \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer $PORTKEY_API_KEY" \
      -d '{
        "model": "@openai/tts-1",
        "input": "Today is a wonderful day to build something people love!",
        "voice": "alloy",
        "stream_format": "sse"
      }'
    ```
  </Tab>
</Tabs>

## Google Vertex AI TTS

Google Vertex AI offers Gemini TTS models with advanced features like multi-speaker synthesis and style control. The AI Gateway supports two methods:

1. **Chat Completions with `speech_config`** - Use Gemini TTS through the chat completions endpoint
2. **Audio Speech endpoint** - OpenAI-compatible `/audio/speech` endpoint

<Tabs>
  <Tab title="Chat Completions">
    ```sh theme={"system"}
    curl https://aigw.portkey.ai/v1/chat/completions \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer $PORTKEY_API_KEY" \
      -d '{
        "model": "@vertex-ai/gemini-2.5-flash-tts",
        "messages": [{"role": "user", "content": "Say cheerfully: Hello!"}],
        "speech_config": {
          "voice_config": {"prebuilt_voice_config": {"voice_name": "Kore"}},
          "language_code": "en-US"
        }
      }'
    ```
  </Tab>

  <Tab title="Audio Speech">
    ```sh theme={"system"}
    curl "https://aigw.portkey.ai/v1/audio/speech" \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer $PORTKEY_API_KEY" \
      -d '{
        "model": "@vertex-ai/gemini-2.5-flash-tts",
        "input": "Hello! This is a test.",
        "voice": "Kore",
        "response_format": "mp3"
      }' \
      --output speech.mp3
    ```
  </Tab>
</Tabs>

For detailed documentation including multi-speaker synthesis, style prompts, and all available voices, see [Google Vertex AI Text-to-Speech](/docs/aigw/integrations/llms/vertex-ai/text-to-speech).


## Related topics

- [Text-to-Speech](/docs/aigw/integrations/llms/vertex-ai/text-to-speech.md)
- [Speech-to-Text](/docs/aigw/product/ai-gateway/multimodal-capabilities/speech-to-text.md)
- [ElevenLabs](/docs/aigw/integrations/llms/elevenlabs.md)
- [Lemonfox-AI](/docs/aigw/integrations/llms/lemon-fox.md)
- [Lepton AI](/docs/aigw/integrations/llms/lepton.md)
