Respeecher · AsyncAPI Specification

Respeecher Space Real-Time TTS WebSocket API

Version 1.0.0

AsyncAPI description of the Respeecher Space real-time text-to-speech WebSocket channel. A single persistent WebSocket connection carries multiple concurrent text-to-speech generations, differentiated by a client-supplied context_id. Clients may stream input text in chunks by setting continue to true on all but the final chunk, and receive streamed audio frames back on the same connection. This is a genuine bidirectional WebSocket transport (wss://), distinct from the one-shot POST /tts/bytes and the one-way HTTP Server-Sent Events (POST /tts/sse) endpoints, which are modeled in the REST OpenAPI, not here. This document was authored by API Evangelist from Respeecher's public documentation (space.respeecher.com/docs). Respeecher also publishes its own AsyncAPI 2.6.0 for these WebSocket channels, referenced under the Space API docs. Message payload fields below reflect documented behavior; consult the official reference for the complete schema.

View Spec View on GitHub Voice AIVoice CloningSpeech to SpeechText to SpeechVoice ConversionReal TimeMedia and EntertainmentAsyncAPIWebhooksEvents

Channels

/tts/websocket
publish sendGenerationRequest
Client sends text to synthesize on this connection.
Bidirectional real-time text-to-speech channel. The client sends generation requests (optionally streaming input text in chunks) and the server streams back audio frames, all correlated by context_id.

Messages

GenerationRequest
Text-to-speech generation request
AudioFrame
Streamed audio output frame

Servers

wss
english api.respeecher.com/v1/public/tts/en-rt
English (en-rt) real-time TTS model WebSocket base.
wss
ukrainian api.respeecher.com/v1/public/tts/ua-rt
Ukrainian (ua-rt) real-time TTS model WebSocket base.

AsyncAPI Specification

Raw ↑
asyncapi: 2.6.0
info:
  title: Respeecher Space Real-Time TTS WebSocket API
  version: 1.0.0
  description: >-
    AsyncAPI description of the Respeecher Space real-time text-to-speech
    WebSocket channel. A single persistent WebSocket connection carries multiple
    concurrent text-to-speech generations, differentiated by a client-supplied
    context_id. Clients may stream input text in chunks by setting continue to
    true on all but the final chunk, and receive streamed audio frames back on
    the same connection. This is a genuine bidirectional WebSocket transport
    (wss://), distinct from the one-shot POST /tts/bytes and the one-way HTTP
    Server-Sent Events (POST /tts/sse) endpoints, which are modeled in the REST
    OpenAPI, not here.

    This document was authored by API Evangelist from Respeecher's public
    documentation (space.respeecher.com/docs). Respeecher also publishes its own
    AsyncAPI 2.6.0 for these WebSocket channels, referenced under the Space API
    docs. Message payload fields below reflect documented behavior; consult the
    official reference for the complete schema.
  x-transport-notes: >-
    Transport is WebSocket (wss). Connections are not guaranteed to stay alive
    longer than 12 hours and idle connections may be closed server-side;
    reopen periodically and reuse a single connection for multiple generations.
servers:
  english:
    url: api.respeecher.com/v1/public/tts/en-rt
    protocol: wss
    description: English (en-rt) real-time TTS model WebSocket base.
  ukrainian:
    url: api.respeecher.com/v1/public/tts/ua-rt
    protocol: wss
    description: Ukrainian (ua-rt) real-time TTS model WebSocket base.
channels:
  /tts/websocket:
    description: >-
      Bidirectional real-time text-to-speech channel. The client sends
      generation requests (optionally streaming input text in chunks) and the
      server streams back audio frames, all correlated by context_id.
    bindings:
      ws:
        bindingVersion: 0.1.0
        query:
          type: object
          properties:
            api_key:
              type: string
              description: >-
                API key, accepted as a query-string parameter because browser
                WebSocket clients cannot set the X-API-Key header. Create keys
                at space.respeecher.com/api-keys.
    publish:
      summary: Client sends text to synthesize on this connection.
      operationId: sendGenerationRequest
      message:
        $ref: '#/components/messages/GenerationRequest'
    subscribe:
      summary: Server streams synthesized audio back to the client.
      operationId: receiveAudioFrame
      message:
        $ref: '#/components/messages/AudioFrame'
components:
  messages:
    GenerationRequest:
      name: generationRequest
      title: Text-to-speech generation request
      contentType: application/json
      payload:
        type: object
        required:
        - context_id
        properties:
          context_id:
            type: string
            description: >-
              Client-supplied identifier used to correlate this generation with
              its returned audio, and to multiplex multiple concurrent
              generations over one connection.
          text:
            type: string
            description: Input text chunk to synthesize.
          voice_id:
            type: string
            description: Identifier of the voice to synthesize with.
          continue:
            type: boolean
            description: >-
              Set to true on all but the final chunk when streaming input text
              in pieces, so prosody stays consistent across chunks.
          sampling_params:
            type: object
            description: >-
              Optional sampling parameters (see the Voices list response and the
              Sampling Params Guide) that shape the generated audio.
    AudioFrame:
      name: audioFrame
      title: Streamed audio output frame
      contentType: application/json
      payload:
        type: object
        properties:
          context_id:
            type: string
            description: The context_id of the generation this audio belongs to.
          audio:
            type: string
            description: A chunk of generated audio for the given context_id.