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

# Text To Speech

> Synthesize speech from text with voice and gender customization, plus optional webhook callback.  
Give priority to the sample audio first, then to the voice ID, and lastly to gender.



## OpenAPI

````yaml POST /v1/TextToSpeech
openapi: 3.1.0
info:
  title: WAV API
  version: 1.0.0
  description: API for retrieving conversion details by ID.
servers:
  - url: https://api.wav.com/api/public
    description: Production server
security: []
paths:
  /v1/TextToSpeech:
    post:
      summary: Convert text to speech using a specified voice
      description: >-
        Synthesize speech from text with voice and gender customization, plus
        optional webhook callback.  

        Give priority to the sample audio first, then to the voice ID, and
        lastly to gender.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                text:
                  type: string
                  description: Text to convert to speech
                  example: Hello, this is a sample text to speech conversion.
                voice_id:
                  type: string
                  description: Voice model ID
                  example: e1cb7380-e3db-433a-b186-a996d7545986
                gender:
                  type: string
                  description: Gender preference for the voice (e.g., "male", "female")
                  example: female
                sample_audio_url:
                  type: string
                  description: >-
                    An audio URL containing a voice sample of the target speaker
                    without music or overlapping voices. Recommended over
                    voice_id for better output quality.
                  example: <YOUR_AUDIO_URL>
                webhook_url:
                  type: string
                  description: Callback URL for async processing
                  example: https://example.com/my-webhook
              required:
                - text
              anyOf:
                - required:
                    - sample_audio_url
                - required:
                    - voice_id
      responses:
        '200':
          description: Successfully initiated task
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  task_id:
                    type: string
                  conversion_id:
                    type: string
                  eta:
                    type: integer
                    description: Estimated processing time in seconds
                  credit_estimate:
                    type: number
                    format: float
                  message:
                    type: string
                  status:
                    type: string
              example:
                success: true
                task_id: 0a65cbb6-2ab8-4949-9ee0-0e8c138ac2cf
                conversion_id: 6542baa6-d61f-4d90-b832-ed929d9c0996
                eta: 17
                credit_estimate: 0.68
                message: ''
                status: IN_QUEUE
        '402':
          description: Payment Required
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: Insufficient credit balance
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: 'Missing required field: text'
        '500':
          description: Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: false
                  message:
                    type: string
                    example: Internal Server Error
      security:
        - ApiKeyAuth: []
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: Authorization

````