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

# Unified STT

> Stream audio to any SLNG-supported STT model over the unified WebSocket protocol with init, audio, finalize, partial, and final transcript messages.



## AsyncAPI

````yaml api-reference/asyncapi/bridges-unmute.asyncapi.yaml /v1/bridges/unmute/stt/{model_variant}
id: /v1/bridges/unmute/stt/{model_variant}
title: Unmute STT Bridge
description: >-
  Stream audio to any SLNG-supported STT model over the unified WebSocket
  protocol with init, audio, finalize, partial, and final transcript messages.
servers:
  - id: production
    protocol: wss
    host: api.slng.ai
    bindings: []
    variables: []
  - id: staging
    protocol: wss
    host: stageapi.slng.ai
    bindings: []
    variables: []
address: /v1/bridges/unmute/stt/{model_variant}
parameters: []
bindings:
  - protocol: ws
    version: latest
    value:
      method: GET
      headers:
        type: object
        properties:
          X-Region-Override:
            type: string
            description: Target region override. Auto-selected if not provided.
            x-parser-schema-id: <anonymous-schema-74>
          X-World-Part-Override:
            type: string
            description: Target world part override. Auto-selected if not provided.
            x-parser-schema-id: <anonymous-schema-75>
        x-parser-schema-id: WebsocketHeaders
      query:
        type: object
        properties:
          region:
            type: string
            description: >-
              Target region override as a query parameter. Auto-selected if not
              provided. Equivalent to the `X-Region-Override` header; the header
              takes precedence when both are set.
            enum:
              - ap-southeast-2
              - eu-north-1
              - us-east-1
            x-parser-schema-id: <anonymous-schema-76>
          world-part:
            type: string
            description: >-
              Target world part override as a query parameter. Auto-selected if
              not provided. Equivalent to the `X-World-Part-Override` header;
              the header takes precedence when both are set.
            enum:
              - ap
              - eu
              - na
            x-parser-schema-id: <anonymous-schema-77>
        x-parser-schema-id: WebsocketQueryParams
    schemaProperties:
      - name: method
        type: string
        description: GET
        required: false
      - name: headers
        type: object
        required: false
        properties:
          - name: X-Region-Override
            type: string
            description: Target region override. Auto-selected if not provided.
            required: false
          - name: X-World-Part-Override
            type: string
            description: Target world part override. Auto-selected if not provided.
            required: false
      - name: query
        type: object
        required: false
        properties:
          - name: region
            type: string
            description: >-
              Target region override as a query parameter. Auto-selected if not
              provided. Equivalent to the `X-Region-Override` header; the header
              takes precedence when both are set.
            enumValues:
              - ap-southeast-2
              - eu-north-1
              - us-east-1
            required: false
          - name: world-part
            type: string
            description: >-
              Target world part override as a query parameter. Auto-selected if
              not provided. Equivalent to the `X-World-Part-Override` header;
              the header takes precedence when both are set.
            enumValues:
              - ap
              - eu
              - na
            required: false
operations:
  - &ref_2
    id: unmuteSttBridgeReceiveInit
    title: Unmute stt bridge receive init
    description: Initialize session on Unmute STT Bridge
    type: receive
    messages:
      - &ref_12
        id: UnmuteSttInitMessage
        contentType: application/json
        payload:
          - name: Init (Unmute STT)
            description: Initialize Unmute STT session with configuration.
            type: object
            properties:
              - name: type
                type: string
                description: init
                required: true
              - name: config
                type: object
                description: Session configuration.
                required: false
                properties:
                  - name: language
                    type: string
                    description: ISO-639-1 language code.
                    enumValues:
                      - en
                      - ja
                      - zh
                      - de
                      - hi
                      - fr
                      - ko
                      - pt
                      - it
                      - es
                      - id
                      - nl
                      - tr
                      - fil
                      - pl
                      - sv
                      - bg
                      - ro
                      - ar
                      - cs
                      - el
                      - fi
                      - hr
                      - ms
                      - sk
                      - da
                      - ta
                      - uk
                      - ru
                      - hu
                      - 'no'
                      - vi
                    required: false
                  - name: sample_rate
                    type: integer
                    description: Audio sample rate in Hz.
                    enumValues:
                      - 8000
                      - 16000
                      - 22050
                      - 24000
                      - 32000
                      - 44100
                      - 48000
                    required: false
                  - name: encoding
                    type: string
                    description: Audio encoding format.
                    enumValues:
                      - linear16
                      - mp3
                      - opus
                    required: false
                  - name: enable_vad
                    type: boolean
                    description: Enable voice activity detection.
                    required: false
                  - name: enable_partials
                    type: boolean
                    description: Enable partial transcription results.
                    required: false
        headers: []
        jsonPayloadSchema:
          type: object
          description: Initialize STT session with optional configuration.
          required:
            - type
          properties:
            type:
              type: string
              const: init
              x-parser-schema-id: <anonymous-schema-2>
            config:
              type: object
              description: Session configuration.
              properties:
                language: &ref_1
                  type: string
                  description: ISO-639-1 language code.
                  enum:
                    - en
                    - ja
                    - zh
                    - de
                    - hi
                    - fr
                    - ko
                    - pt
                    - it
                    - es
                    - id
                    - nl
                    - tr
                    - fil
                    - pl
                    - sv
                    - bg
                    - ro
                    - ar
                    - cs
                    - el
                    - fi
                    - hr
                    - ms
                    - sk
                    - da
                    - ta
                    - uk
                    - ru
                    - hu
                    - 'no'
                    - vi
                  x-parser-schema-id: LanguageCode
                sample_rate:
                  type: integer
                  description: Audio sample rate in Hz.
                  enum:
                    - 8000
                    - 16000
                    - 22050
                    - 24000
                    - 32000
                    - 44100
                    - 48000
                  x-parser-schema-id: SampleRate
                encoding:
                  type: string
                  description: Audio encoding format.
                  enum:
                    - linear16
                    - mp3
                    - opus
                  x-parser-schema-id: <anonymous-schema-4>
                enable_vad:
                  type: boolean
                  description: Enable voice activity detection.
                  x-parser-schema-id: <anonymous-schema-5>
                enable_partials:
                  type: boolean
                  description: Enable partial transcription results.
                  x-parser-schema-id: <anonymous-schema-6>
              x-parser-schema-id: <anonymous-schema-3>
          x-parser-schema-id: <anonymous-schema-1>
        title: Init (Unmute STT)
        description: Initialize Unmute STT session with configuration.
        example: |-
          {
            "type": "init",
            "config": {
              "language": "en",
              "sample_rate": 16000,
              "encoding": "linear16",
              "enable_partials": true
            }
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: UnmuteSttInitMessage
    bindings: []
    extensions: &ref_0
      - id: x-parser-unique-object-id
        value: /v1/bridges/unmute/stt/{model_variant}
  - &ref_3
    id: unmuteSttBridgeReceiveAudio
    title: Unmute stt bridge receive audio
    description: Send audio to Unmute STT Bridge
    type: receive
    messages:
      - &ref_13
        id: UnmuteSttAudioMessage
        contentType: application/json
        payload:
          - name: Audio (Unmute STT)
            description: Send audio data to Unmute STT Bridge.
            type: object
            properties:
              - name: type
                type: string
                description: audio
                required: true
              - name: data
                type: string
                description: Base64-encoded audio data.
                required: true
        headers: []
        jsonPayloadSchema:
          type: object
          description: Audio data for transcription.
          required:
            - type
            - data
          properties:
            type:
              type: string
              const: audio
              x-parser-schema-id: <anonymous-schema-8>
            data:
              type: string
              format: byte
              description: Base64-encoded audio data.
              x-parser-schema-id: <anonymous-schema-9>
          x-parser-schema-id: <anonymous-schema-7>
        title: Audio (Unmute STT)
        description: Send audio data to Unmute STT Bridge.
        example: |-
          {
            "type": "audio",
            "data": "UklGRiQAAABXQVZFZm10IBAAAAABAAEA..."
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: UnmuteSttAudioMessage
    bindings: []
    extensions: *ref_0
  - &ref_4
    id: unmuteSttBridgeReceiveFinalize
    title: Unmute stt bridge receive finalize
    description: Force-finalize buffered audio on Unmute STT Bridge
    type: receive
    messages:
      - &ref_14
        id: UnmuteSttFinalizeMessage
        contentType: application/json
        payload:
          - name: Finalize (Unmute STT)
            description: Force-finalize buffered audio without closing the connection.
            type: object
            properties:
              - name: type
                type: string
                description: finalize
                required: true
        headers: []
        jsonPayloadSchema:
          type: object
          description: >-
            Mid-stream flush — forces the server to finalize any buffered audio
            and return results. The connection remains open for further audio.
          required:
            - type
          properties:
            type:
              type: string
              const: finalize
              x-parser-schema-id: <anonymous-schema-11>
          x-parser-schema-id: <anonymous-schema-10>
        title: Finalize (Unmute STT)
        description: Force-finalize buffered audio without closing the connection.
        example: |-
          {
            "type": "finalize"
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: UnmuteSttFinalizeMessage
    bindings: []
    extensions: *ref_0
  - &ref_5
    id: unmuteSttBridgeReceiveClose
    title: Unmute stt bridge receive close
    description: Close audio stream on Unmute STT Bridge
    type: receive
    messages:
      - &ref_15
        id: UnmuteSttCloseMessage
        contentType: application/json
        payload:
          - name: Close (Unmute STT)
            description: Signal end of audio stream and close the connection.
            type: object
            properties:
              - name: type
                type: string
                description: close
                required: true
        headers: []
        jsonPayloadSchema:
          type: object
          description: >-
            Signal that no more audio will be sent. The server processes
            remaining audio, sends final results, then closes the connection.
          required:
            - type
          properties:
            type:
              type: string
              const: close
              x-parser-schema-id: <anonymous-schema-13>
          x-parser-schema-id: <anonymous-schema-12>
        title: Close (Unmute STT)
        description: Signal end of audio stream and close the connection.
        example: |-
          {
            "type": "close"
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: UnmuteSttCloseMessage
    bindings: []
    extensions: *ref_0
  - &ref_6
    id: unmuteSttBridgeReceiveKeepalive
    title: Unmute stt bridge receive keepalive
    description: Send keepalive on Unmute STT Bridge
    type: receive
    messages:
      - &ref_16
        id: KeepaliveMessage
        contentType: application/json
        payload:
          - name: Keepalive Message
            description: Keep the WebSocket connection alive during silence.
            type: object
            properties:
              - name: type
                type: string
                description: keepalive
                required: true
        headers: []
        jsonPayloadSchema:
          type: object
          description: >-
            Prevents the connection from being closed due to inactivity. Send
            periodically during silence to maintain the session.
          required:
            - type
          properties:
            type:
              type: string
              const: keepalive
              x-parser-schema-id: <anonymous-schema-15>
          x-parser-schema-id: <anonymous-schema-14>
        title: Keepalive Message
        description: Keep the WebSocket connection alive during silence.
        example: |-
          {
            "type": "keepalive"
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: KeepaliveMessage
    bindings: []
    extensions: *ref_0
  - &ref_7
    id: unmuteSttBridgeSendReady
    title: Unmute stt bridge send ready
    description: Receive ready signal from Unmute STT Bridge
    type: send
    messages:
      - &ref_17
        id: UnmuteSttReadyMessage
        contentType: application/json
        payload:
          - name: Ready (Unmute STT)
            description: Unmute STT session is ready.
            type: object
            properties:
              - name: type
                type: string
                description: ready
                required: true
              - name: session_id
                type: string
                description: Unique session identifier.
                required: true
              - name: slng_request_id
                type: string
                description: SLNG request identifier echoed back for log correlation.
                required: true
        headers: []
        jsonPayloadSchema:
          type: object
          description: Session is ready for audio input.
          required:
            - type
            - session_id
            - slng_request_id
          properties:
            type:
              type: string
              const: ready
              x-parser-schema-id: <anonymous-schema-17>
            session_id:
              type: string
              description: Unique session identifier.
              x-parser-schema-id: <anonymous-schema-18>
            slng_request_id:
              type: string
              description: SLNG request identifier echoed back for log correlation.
              x-parser-schema-id: <anonymous-schema-19>
          x-parser-schema-id: <anonymous-schema-16>
        title: Ready (Unmute STT)
        description: Unmute STT session is ready.
        example: |-
          {
            "type": "ready",
            "session_id": "1e1a9598-077e-4d9d-aba6-78af6363f27c",
            "slng_request_id": "2c9953d7-d4b4-4385-bb27-f64e0d979be5"
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: UnmuteSttReadyMessage
    bindings: []
    extensions: *ref_0
  - &ref_8
    id: unmuteSttBridgeSendPartialTranscript
    title: Unmute stt bridge send partial transcript
    description: Receive partial transcript from Unmute STT Bridge
    type: send
    messages:
      - &ref_18
        id: UnmuteSttPartialTranscript
        contentType: application/json
        payload:
          - name: Partial Transcript (Unmute STT)
            description: Partial (interim) transcription result.
            type: object
            properties:
              - name: type
                type: string
                description: partial_transcript
                required: true
              - name: transcript
                type: string
                description: Transcribed text so far.
                required: true
              - name: confidence
                type: number
                description: Confidence score (0-1).
                required: false
        headers: []
        jsonPayloadSchema:
          type: object
          description: Interim transcription result.
          required:
            - type
            - transcript
          properties:
            type:
              type: string
              const: partial_transcript
              x-parser-schema-id: <anonymous-schema-21>
            transcript:
              type: string
              description: Transcribed text so far.
              x-parser-schema-id: <anonymous-schema-22>
            confidence:
              type: number
              description: Confidence score (0-1).
              x-parser-schema-id: <anonymous-schema-23>
          x-parser-schema-id: <anonymous-schema-20>
        title: Partial Transcript (Unmute STT)
        description: Partial (interim) transcription result.
        example: |-
          {
            "type": "partial_transcript",
            "transcript": "Hello wor",
            "confidence": 0.85
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: UnmuteSttPartialTranscript
    bindings: []
    extensions: *ref_0
  - &ref_9
    id: unmuteSttBridgeSendFinalTranscript
    title: Unmute stt bridge send final transcript
    description: Receive final transcript from Unmute STT Bridge
    type: send
    messages:
      - &ref_19
        id: UnmuteSttFinalTranscript
        contentType: application/json
        payload:
          - name: Final Transcript (Unmute STT)
            description: Final transcription result.
            type: object
            properties:
              - name: type
                type: string
                description: final_transcript
                required: true
              - name: transcript
                type: string
                description: Final transcribed text.
                required: true
              - name: confidence
                type: number
                description: Confidence score (0-1).
                required: false
              - name: language
                type: string
                description: ISO-639-1 language code.
                enumValues:
                  - en
                  - ja
                  - zh
                  - de
                  - hi
                  - fr
                  - ko
                  - pt
                  - it
                  - es
                  - id
                  - nl
                  - tr
                  - fil
                  - pl
                  - sv
                  - bg
                  - ro
                  - ar
                  - cs
                  - el
                  - fi
                  - hr
                  - ms
                  - sk
                  - da
                  - ta
                  - uk
                  - ru
                  - hu
                  - 'no'
                  - vi
                required: false
              - name: duration
                type: number
                description: Audio duration in seconds.
                required: false
        headers: []
        jsonPayloadSchema:
          type: object
          description: Final transcription result for an utterance.
          required:
            - type
            - transcript
          properties:
            type:
              type: string
              const: final_transcript
              x-parser-schema-id: <anonymous-schema-25>
            transcript:
              type: string
              description: Final transcribed text.
              x-parser-schema-id: <anonymous-schema-26>
            confidence:
              type: number
              description: Confidence score (0-1).
              x-parser-schema-id: <anonymous-schema-27>
            language: *ref_1
            duration:
              type: number
              description: Audio duration in seconds.
              x-parser-schema-id: <anonymous-schema-28>
          x-parser-schema-id: <anonymous-schema-24>
        title: Final Transcript (Unmute STT)
        description: Final transcription result.
        example: |-
          {
            "type": "final_transcript",
            "transcript": "Hello world",
            "confidence": 0.95,
            "language": "en",
            "duration": 2.5
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: UnmuteSttFinalTranscript
    bindings: []
    extensions: *ref_0
  - &ref_10
    id: unmuteSttBridgeSendUtteranceEnd
    title: Unmute stt bridge send utterance end
    description: Receive utterance end marker from Unmute STT Bridge
    type: send
    messages:
      - &ref_20
        id: UnmuteSttUtteranceEnd
        contentType: application/json
        payload:
          - name: Utterance End (Unmute STT)
            description: Endpoint marker indicating the end of a spoken utterance.
            type: object
            properties:
              - name: type
                type: string
                description: utterance_end
                required: true
              - name: last_word_end
                type: number
                description: >-
                  End time of the last finalized word in seconds, when
                  available.
                required: false
        headers: []
        jsonPayloadSchema:
          type: object
          description: |
            Signals the end of an utterance. Emitted by the bridge when the
            upstream provider returns a final endpoint marker (e.g., Soniox
            `<end>` / `<fin>` tokens). Requires the model's catalog to declare
            a `tokenStream` with `finalMarkers`, and endpoint detection to be
            enabled in the session config.
          required:
            - type
          properties:
            type:
              type: string
              const: utterance_end
              x-parser-schema-id: <anonymous-schema-30>
            last_word_end:
              type: number
              description: End time of the last finalized word in seconds, when available.
              x-parser-schema-id: <anonymous-schema-31>
          x-parser-schema-id: <anonymous-schema-29>
        title: Utterance End (Unmute STT)
        description: Endpoint marker indicating the end of a spoken utterance.
        example: |-
          {
            "type": "utterance_end",
            "last_word_end": 2.48
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: UnmuteSttUtteranceEnd
    bindings: []
    extensions: *ref_0
  - &ref_11
    id: unmuteSttBridgeSendError
    title: Unmute stt bridge send error
    description: Receive error from Unmute STT Bridge
    type: send
    messages:
      - &ref_21
        id: UnmuteSttErrorMessage
        contentType: application/json
        payload:
          - name: Error (Unmute STT)
            description: Error occurred during Unmute STT session.
            type: object
            properties:
              - name: type
                type: string
                description: error
                required: true
              - name: data
                type: object
                description: Structured error envelope.
                required: true
                properties:
                  - name: request_id
                    type: string
                    description: SLNG request identifier for this error.
                    required: true
                  - name: message
                    type: string
                    description: Human-readable error description.
                    required: true
                  - name: code
                    type: string
                    description: Error code.
                    enumValues:
                      - auth_error
                      - config_error
                      - rate_limit
                      - provider_error
                    required: true
              - name: message
                type: string
                description: >-
                  Human-readable error description (duplicated from
                  `data.message` for backward compatibility).
                required: true
              - name: code
                type: string
                description: >-
                  Error code (duplicated from `data.code` for backward
                  compatibility).
                enumValues:
                  - auth_error
                  - config_error
                  - rate_limit
                  - provider_error
                required: true
        headers: []
        jsonPayloadSchema:
          type: object
          description: >-
            Error occurred during transcription. The error details live under
            `data`; `message` and `code` are duplicated at the top level for
            backward compatibility.
          required:
            - type
            - data
            - message
            - code
          properties:
            type:
              type: string
              const: error
              x-parser-schema-id: <anonymous-schema-33>
            data:
              type: object
              description: Structured error envelope.
              required:
                - request_id
                - message
                - code
              properties:
                request_id:
                  type: string
                  description: SLNG request identifier for this error.
                  x-parser-schema-id: <anonymous-schema-35>
                message:
                  type: string
                  description: Human-readable error description.
                  x-parser-schema-id: <anonymous-schema-36>
                code:
                  type: string
                  description: Error code.
                  enum:
                    - auth_error
                    - config_error
                    - rate_limit
                    - provider_error
                  x-parser-schema-id: <anonymous-schema-37>
              x-parser-schema-id: <anonymous-schema-34>
            message:
              type: string
              description: >-
                Human-readable error description (duplicated from `data.message`
                for backward compatibility).
              x-parser-schema-id: <anonymous-schema-38>
            code:
              type: string
              description: >-
                Error code (duplicated from `data.code` for backward
                compatibility).
              enum:
                - auth_error
                - config_error
                - rate_limit
                - provider_error
              x-parser-schema-id: <anonymous-schema-39>
          x-parser-schema-id: <anonymous-schema-32>
        title: Error (Unmute STT)
        description: Error occurred during Unmute STT session.
        example: |-
          {
            "type": "error",
            "data": {
              "request_id": "req_abc123",
              "message": "Upstream service unavailable",
              "code": "provider_error"
            },
            "message": "Upstream service unavailable",
            "code": "provider_error"
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: UnmuteSttErrorMessage
    bindings: []
    extensions: *ref_0
sendOperations:
  - *ref_2
  - *ref_3
  - *ref_4
  - *ref_5
  - *ref_6
receiveOperations:
  - *ref_7
  - *ref_8
  - *ref_9
  - *ref_10
  - *ref_11
sendMessages:
  - *ref_12
  - *ref_13
  - *ref_14
  - *ref_15
  - *ref_16
receiveMessages:
  - *ref_17
  - *ref_18
  - *ref_19
  - *ref_20
  - *ref_21
extensions:
  - id: x-parser-unique-object-id
    value: /v1/bridges/unmute/stt/{model_variant}
securitySchemes:
  - id: bearer
    name: bearer
    type: http
    description: >
      API key issued by SLNG. Pass as `Authorization: Bearer <token>` in the
      WebSocket upgrade request headers.
    scheme: bearer
    extensions: []

````