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

# Text to Speech (Websocket)

> The WebSocket API provides real-time text-to-speech streaming capabilities with high-quality voice synthesis. This API uses WebSocket to deliver audio chunks as they’re generated, enabling low-latency audio playback



## AsyncAPI

````yaml asyncapi.yaml speech
id: speech
title: Speech Channel
description: Channel for TTS requests and audio streaming responses
servers:
  - id: production
    protocol: wss
    host: api.tts.timepay.ai
    bindings: []
    variables: []
address: /api/v1/get_speech
parameters: []
bindings: []
operations:
  - &ref_1
    id: sendTTSRequest
    title: Send t t s request
    description: Send a TTS request
    type: receive
    messages:
      - &ref_3
        id: TTSRequest
        contentType: application/json
        payload:
          - name: TTS Request
            description: Request to synthesize text to speech
            type: object
            properties:
              - name: type
                type: string
                description: Message type identifier
                required: true
              - name: text
                type: string
                description: The text to convert to speech
                required: true
              - name: voice_id
                type: string
                description: The specific voice ID to use for synthesis
                enumValues:
                  - Ogbs15oBevLzXsUuTtA1
                  - Owbs15oBevLzXsUurdA_
                  - PAbs15oBevLzXsUu4dCi
                  - PQbt15oBevLzXsUuNtD3
                  - Pgbt15oBevLzXsUubdA6
                required: true
              - name: language
                type: string
                description: ISO language code
                enumValues:
                  - en
                  - hi
                  - mr
                  - ta
                  - te
                  - gu
                  - kn
                  - ml
                  - bn
                  - pa
                  - od
                  - as
                required: false
              - name: add_wav_header
                type: boolean
                description: >-
                  If true, adds a WAV header to the stream for immediate
                  playback
                required: false
              - name: sample_rate
                type: integer
                description: Audio sample rate in Hz
                enumValues:
                  - 8000
                  - 16000
                  - 24000
                required: false
              - name: speed
                type: number
                description: Playback speed multiplier (0.5 to 2.0, where 1.0 is normal)
                required: false
              - name: request_id
                type: string
                description: Optional custom identifier for tracking requests
                required: false
        headers: []
        jsonPayloadSchema:
          type: object
          required:
            - type
            - text
            - voice_id
          properties:
            type:
              type: string
              description: Message type identifier
              const: speech
              example: speech
              x-parser-schema-id: <anonymous-schema-2>
            text:
              type: string
              description: The text to convert to speech
              example: Hello, welcome to Vox.
              x-parser-schema-id: <anonymous-schema-3>
            voice_id:
              type: string
              description: The specific voice ID to use for synthesis
              example: Ogbs15oBevLzXsUuTtA1
              enum:
                - Ogbs15oBevLzXsUuTtA1
                - Owbs15oBevLzXsUurdA_
                - PAbs15oBevLzXsUu4dCi
                - PQbt15oBevLzXsUuNtD3
                - Pgbt15oBevLzXsUubdA6
              x-parser-schema-id: <anonymous-schema-4>
            language:
              type: string
              description: ISO language code
              default: en
              example: en
              enum:
                - en
                - hi
                - mr
                - ta
                - te
                - gu
                - kn
                - ml
                - bn
                - pa
                - od
                - as
              x-parser-schema-id: <anonymous-schema-5>
            add_wav_header:
              type: boolean
              description: If true, adds a WAV header to the stream for immediate playback
              default: true
              example: true
              x-parser-schema-id: <anonymous-schema-6>
            sample_rate:
              type: integer
              description: Audio sample rate in Hz
              default: 24000
              example: 24000
              enum:
                - 8000
                - 16000
                - 24000
              x-parser-schema-id: <anonymous-schema-7>
            speed:
              type: number
              description: Playback speed multiplier (0.5 to 2.0, where 1.0 is normal)
              default: 1
              minimum: 0.5
              maximum: 2
              example: 1
              x-parser-schema-id: <anonymous-schema-8>
            request_id:
              type: string
              description: Optional custom identifier for tracking requests
              example: req_12345
              x-parser-schema-id: <anonymous-schema-9>
          x-parser-schema-id: <anonymous-schema-1>
        title: TTS Request
        description: Request to synthesize text to speech
        example: |-
          {
            "type": "<string>",
            "text": "<string>",
            "voice_id": "<string>",
            "language": "<string>",
            "add_wav_header": true,
            "sample_rate": 123,
            "speed": 123,
            "request_id": "<string>"
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: TTSRequest
    bindings: []
    extensions: &ref_0
      - id: x-parser-unique-object-id
        value: speech
  - &ref_2
    id: receiveTTSResponse
    title: Receive t t s response
    description: Receive TTS response
    type: send
    messages:
      - &ref_4
        id: ConnectedResponse
        contentType: application/json
        payload:
          - name: Connected
            description: Sent immediately after successful WebSocket connection
            type: object
            properties:
              - name: type
                type: string
                description: connected
                required: true
              - name: connection_id
                type: string
                description: Unique identifier for this WebSocket connection
                required: true
              - name: message
                type: string
                description: Connection status message
                required: true
        headers: []
        jsonPayloadSchema:
          type: object
          required:
            - type
            - connection_id
            - message
          properties:
            type:
              type: string
              const: connected
              example: connected
              x-parser-schema-id: <anonymous-schema-11>
            connection_id:
              type: string
              description: Unique identifier for this WebSocket connection
              example: conn_abc123
              x-parser-schema-id: <anonymous-schema-12>
            message:
              type: string
              description: Connection status message
              example: Connected successfully
              x-parser-schema-id: <anonymous-schema-13>
          x-parser-schema-id: <anonymous-schema-10>
        title: Connected
        description: Sent immediately after successful WebSocket connection
        example: |-
          {
            "type": "<string>",
            "connection_id": "<string>",
            "message": "<string>"
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: ConnectedResponse
      - &ref_5
        id: AudioChunkResponse
        contentType: application/json
        payload:
          - name: Audio Chunk
            description: Streamed audio data. Multiple chunks are sent per request.
            type: object
            properties:
              - name: type
                type: string
                description: audio_chunk
                required: true
              - name: request_id
                type: string
                description: The request identifier
                required: true
              - name: chunk_index
                type: integer
                description: Zero-indexed position in the audio stream
                required: true
              - name: data
                type: string
                description: Base64-encoded audio data
                required: true
        headers: []
        jsonPayloadSchema:
          type: object
          required:
            - type
            - request_id
            - chunk_index
            - data
          properties:
            type:
              type: string
              const: audio_chunk
              example: audio_chunk
              x-parser-schema-id: <anonymous-schema-15>
            request_id:
              type: string
              description: The request identifier
              example: req_12345
              x-parser-schema-id: <anonymous-schema-16>
            chunk_index:
              type: integer
              description: Zero-indexed position in the audio stream
              example: 0
              x-parser-schema-id: <anonymous-schema-17>
            data:
              type: string
              format: byte
              description: Base64-encoded audio data
              example: UklGRiQAAABXQVZFZm10IBAAAAABAAEAQB8AAEAfAAABAAgA...
              x-parser-schema-id: <anonymous-schema-18>
          x-parser-schema-id: <anonymous-schema-14>
        title: Audio Chunk
        description: Streamed audio data. Multiple chunks are sent per request.
        example: |-
          {
            "type": "<string>",
            "request_id": "<string>",
            "chunk_index": 123,
            "data": "<string>"
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: AudioChunkResponse
      - &ref_6
        id: CompleteResponse
        contentType: application/json
        payload:
          - name: Complete
            description: Signals all audio has been sent
            type: object
            properties:
              - name: type
                type: string
                description: complete
                required: true
              - name: request_id
                type: string
                description: The request identifier
                required: true
              - name: total_chunks
                type: integer
                description: Total number of audio chunks sent
                required: true
              - name: characters
                type: integer
                description: Characters processed
                required: true
        headers: []
        jsonPayloadSchema:
          type: object
          required:
            - type
            - request_id
            - total_chunks
            - characters
          properties:
            type:
              type: string
              const: complete
              example: complete
              x-parser-schema-id: <anonymous-schema-20>
            request_id:
              type: string
              description: The request identifier
              example: req_12345
              x-parser-schema-id: <anonymous-schema-21>
            total_chunks:
              type: integer
              description: Total number of audio chunks sent
              example: 15
              x-parser-schema-id: <anonymous-schema-22>
            characters:
              type: integer
              description: Characters processed
              example: 22
              x-parser-schema-id: <anonymous-schema-23>
          x-parser-schema-id: <anonymous-schema-19>
        title: Complete
        description: Signals all audio has been sent
        example: |-
          {
            "type": "<string>",
            "request_id": "<string>",
            "total_chunks": 123,
            "characters": 123
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: CompleteResponse
      - &ref_7
        id: ErrorResponse
        contentType: application/json
        payload:
          - name: Error
            description: Indicates a problem with the request
            type: object
            properties:
              - name: type
                type: string
                description: error
                required: true
              - name: request_id
                type: string
                description: The request identifier (if available)
                required: false
              - name: error
                type: string
                description: Error code for programmatic handling
                enumValues:
                  - invalid_request
                  - invalid_voice
                  - invalid_language
                  - text_too_long
                  - concurrency_limit_exceeded
                  - insufficient_credits
                  - internal_error
                required: true
              - name: message
                type: string
                description: Human-readable error description
                required: true
        headers: []
        jsonPayloadSchema:
          type: object
          required:
            - type
            - error
            - message
          properties:
            type:
              type: string
              const: error
              example: error
              x-parser-schema-id: <anonymous-schema-25>
            request_id:
              type: string
              description: The request identifier (if available)
              example: req_12345
              x-parser-schema-id: <anonymous-schema-26>
            error:
              type: string
              description: Error code for programmatic handling
              example: concurrency_limit_exceeded
              enum:
                - invalid_request
                - invalid_voice
                - invalid_language
                - text_too_long
                - concurrency_limit_exceeded
                - insufficient_credits
                - internal_error
              x-parser-schema-id: <anonymous-schema-27>
            message:
              type: string
              description: Human-readable error description
              example: Maximum concurrent requests (5) exceeded
              x-parser-schema-id: <anonymous-schema-28>
          x-parser-schema-id: <anonymous-schema-24>
        title: Error
        description: Indicates a problem with the request
        example: |-
          {
            "type": "<string>",
            "request_id": "<string>",
            "error": "<string>",
            "message": "<string>"
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: ErrorResponse
    bindings: []
    extensions: *ref_0
sendOperations:
  - *ref_1
receiveOperations:
  - *ref_2
sendMessages:
  - *ref_3
receiveMessages:
  - *ref_4
  - *ref_5
  - *ref_6
  - *ref_7
extensions:
  - id: x-parser-unique-object-id
    value: speech
securitySchemes:
  - id: bearerAuth
    name: bearerAuth
    type: http
    description: Pass API key in Authorization header as Bearer token
    scheme: bearer
    extensions: []

````