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

# Gemini 3.8 Flash TTS

> Google's studio-grade text-to-speech: rich, expressive delivery, stable long-form narration, and 130+ languages (detected automatically). Turns text into speech and returns a **WAV** URL (24 kHz, mono).

The `text` is read **verbatim** — put delivery directions such as tone or pace in `style`, not in the text, or they will be read aloud. Short vocal events and pauses can go inline in angle brackets, e.g. `Wait... <short pause> did you hear that? <sigh>`.

**Pricing** — billed by text length, not by audio duration:

| Unit | Tokens | USD |
|---|---|---|
| every 200 characters (rounded up) | 2.63 | $0.0526 |

A 350-character request is billed as 2 units (5.26 tokens = $0.1052). Anything from 1 to 200 characters costs 1 unit.

Returns an `img_uuid`; poll GET /api/v1/jobs/detail (or use `custom_callback_url`) to get the generated audio. The result arrives as a `json` array item with `type: "audio"` and a WAV URL in `value`.



## OpenAPI

````yaml api-reference/audio-generations/openapi-gemini-3-8-flash-tts.json POST /api/v1/audio/generations
openapi: 3.1.0
info:
  title: GoEnhance API - Gemini 3.8 Flash TTS
  description: Gemini 3.8 Flash TTS
  version: 1.0.0
servers:
  - url: https://api.goenhance.ai
security: []
paths:
  /api/v1/audio/generations:
    post:
      tags:
        - AudioGenerations
      summary: Gemini 3.8 Flash TTS
      description: >-
        Google's studio-grade text-to-speech: rich, expressive delivery, stable
        long-form narration, and 130+ languages (detected automatically). Turns
        text into speech and returns a **WAV** URL (24 kHz, mono).


        The `text` is read **verbatim** — put delivery directions such as tone
        or pace in `style`, not in the text, or they will be read aloud. Short
        vocal events and pauses can go inline in angle brackets, e.g. `Wait...
        <short pause> did you hear that? <sigh>`.


        **Pricing** — billed by text length, not by audio duration:


        | Unit | Tokens | USD |

        |---|---|---|

        | every 200 characters (rounded up) | 2.63 | $0.0526 |


        A 350-character request is billed as 2 units (5.26 tokens = $0.1052).
        Anything from 1 to 200 characters costs 1 unit.


        Returns an `img_uuid`; poll GET /api/v1/jobs/detail (or use
        `custom_callback_url`) to get the generated audio. The result arrives as
        a `json` array item with `type: "audio"` and a WAV URL in `value`.
      parameters:
        - name: Authorization
          in: header
          description: ''
          required: false
          example: '{{Authorization}}'
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                model:
                  type: string
                  enum:
                    - gemini-3-8-flash-tts
                  description: Model name. Must be `gemini-3-8-flash-tts`.
                text:
                  type: string
                  minLength: 1
                  maxLength: 4000
                  description: >-
                    Text to synthesize, read verbatim. Required. Max 4000
                    characters. Billing is based on this length. A single
                    request can produce about 8 minutes of audio; very slow
                    styles on long texts can hit that limit, in which case the
                    task fails and is refunded — split the text into shorter
                    parts.
                voice:
                  type: string
                  description: >-
                    Voice. Optional — defaults to `Kore`. One of the 30 prebuilt
                    voices (case-insensitive): `Kore`, `Zephyr`, `Puck`,
                    `Charon`, `Fenrir`, `Leda`, `Orus`, `Aoede`, `Callirrhoe`,
                    `Autonoe`, `Enceladus`, `Iapetus`, `Umbriel`, `Algieba`,
                    `Despina`, `Erinome`, `Algenib`, `Rasalgethi`, `Laomedeia`,
                    `Achernar`, `Alnilam`, `Schedar`, `Gacrux`, `Pulcherrima`,
                    `Achird`, `Zubenelgenubi`, `Vindemiatrix`, `Sadachbia`,
                    `Sadaltager`, `Sulafat` — or a voice id from the Gemini
                    voice library, such as `en-us-advisor-1` (browse the full
                    library in Google AI Studio). All voices can speak any
                    supported language.
                style:
                  type: string
                  maxLength: 500
                  description: >-
                    Optional. A short natural-language description of the
                    delivery for the whole text — tone, emotion, pace or volume,
                    e.g. `warm and upbeat`, `whispered urgently`, `speaking
                    slowly and calmly`. Leave it out for a natural read. There
                    is no `speed` parameter; describe the pace here instead.
                    Slower styles produce longer audio for the same text.
                custom_callback_url:
                  type: string
                  format: uri
                  description: >-
                    Optional. A publicly accessible HTTPS URL. When the task
                    status changes (processing / success / failed), GoEnhance
                    sends a POST request to this URL. The request body is
                    identical to the response of GET /api/v1/jobs/detail. If
                    your server does not respond with HTTP 200, the notification
                    is retried up to 3 times, with a 3-second timeout per
                    attempt.
                  example: https://your-server.com/goenhance/callback
              required:
                - model
                - text
            example:
              model: gemini-3-8-flash-tts
              text: >-
                Welcome to GoEnhance. <short pause> Let's build something great
                today.
              voice: Kore
              style: warm and upbeat
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                  msg:
                    type: string
                  data:
                    type: object
                    properties:
                      img_uuid:
                        type: string
                      cost:
                        type: number
                        description: >-
                          Tokens deducted for this request. This is the amount
                          actually charged, so it already reflects any discount
                          active on your account and can be lower than the
                          listed price. Tokens are deducted when the task is
                          accepted, and refunded automatically if the generation
                          ends in failure.
                        example: 2.63
                    required:
                      - img_uuid
                      - cost
                required:
                  - code
                  - msg
                  - data
              examples:
                '1':
                  summary: Success
                  value:
                    code: 0
                    msg: Success
                    data:
                      img_uuid: c12b656c-747a-44fd-9c80-add79b0c52d5
                      cost: 2.63
                '2':
                  summary: Insufficient tokens
                  value:
                    code: 100
                    msg: tokens is not enough
                quota:
                  summary: API key quota exceeded
                  value:
                    code: 101
                    msg: 'API key quota exceeded: 4990 of 5000 tokens used (monthly)'
          headers: {}
        '401':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                  msg:
                    type: string
          headers: {}
      deprecated: false

````