> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.narilabs.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.narilabs.com/_mcp/server.

# Realtime transcription

GET /v1/realtime?intent=transcription

Stream 16 kHz PCM16 mono audio as base64 JSON events over an authenticated WebSocket.

## Event flow

1. Receive `session.created`, send `session.configure`, then wait for `session.configured`.
2. Send `input_audio_buffer.append` events while receiving optional `transcript.partial` results.
3. Send `input_audio_buffer.commit`. Receive `input_audio_buffer.committed`, then `transcript.completed` for that utterance.

VAD and automatic duration boundaries can also commit an utterance. An empty manual commit returns `input_audio_buffer.commit_empty`. The connection stays open for subsequent utterances.


Reference: https://docs.narilabs.com/api-reference/speech-to-text/realtime/realtime-transcription

## AsyncAPI Specification

```yaml
asyncapi: 2.6.0
info:
  title: Realtime transcription
  version: subpackage_realtime.Realtime transcription
  description: >
    Stream 16 kHz PCM16 mono audio as base64 JSON events over an authenticated
    WebSocket.


    ## Event flow


    1. Receive `session.created`, send `session.configure`, then wait for
    `session.configured`.

    2. Send `input_audio_buffer.append` events while receiving optional
    `transcript.partial` results.

    3. Send `input_audio_buffer.commit`. Receive `input_audio_buffer.committed`,
    then `transcript.completed` for that utterance.


    VAD and automatic duration boundaries can also commit an utterance. An empty
    manual commit returns `input_audio_buffer.commit_empty`. The connection
    stays open for subsequent utterances.
channels:
  /v1/realtime?intent=transcription:
    description: >
      Stream 16 kHz PCM16 mono audio as base64 JSON events over an authenticated
      WebSocket.


      ## Event flow


      1. Receive `session.created`, send `session.configure`, then wait for
      `session.configured`.

      2. Send `input_audio_buffer.append` events while receiving optional
      `transcript.partial` results.

      3. Send `input_audio_buffer.commit`. Receive
      `input_audio_buffer.committed`, then `transcript.completed` for that
      utterance.


      VAD and automatic duration boundaries can also commit an utterance. An
      empty manual commit returns `input_audio_buffer.commit_empty`. The
      connection stays open for subsequent utterances.
    publish:
      operationId: subpackage_realtime.Realtime transcription-publish
      summary: Server messages
      message:
        oneOf:
          - $ref: >-
              #/components/messages/subpackage_realtime.Realtime
              transcription-server-0-SessionCreatedMessage
          - $ref: >-
              #/components/messages/subpackage_realtime.Realtime
              transcription-server-1-SessionUpdatedMessage
          - $ref: >-
              #/components/messages/subpackage_realtime.Realtime
              transcription-server-2-PartialTranscriptMessage
          - $ref: >-
              #/components/messages/subpackage_realtime.Realtime
              transcription-server-3-CompletedTranscriptMessage
          - $ref: >-
              #/components/messages/subpackage_realtime.Realtime
              transcription-server-4-AudioCommittedMessage
          - $ref: >-
              #/components/messages/subpackage_realtime.Realtime
              transcription-server-5-SpeechStartedMessage
          - $ref: >-
              #/components/messages/subpackage_realtime.Realtime
              transcription-server-6-SpeechStoppedMessage
          - $ref: >-
              #/components/messages/subpackage_realtime.Realtime
              transcription-server-7-ErrorEventMessage
          - $ref: >-
              #/components/messages/subpackage_realtime.Realtime
              transcription-server-8-CommitEmptyMessage
    subscribe:
      operationId: subpackage_realtime.Realtime transcription-subscribe
      summary: Client messages
      message:
        oneOf:
          - $ref: >-
              #/components/messages/subpackage_realtime.Realtime
              transcription-client-0-SessionUpdateMessage
          - $ref: >-
              #/components/messages/subpackage_realtime.Realtime
              transcription-client-1-AudioAppendMessage
          - $ref: >-
              #/components/messages/subpackage_realtime.Realtime
              transcription-client-2-AudioCommitMessage
servers:
  production:
    url: wss://api.narilabs.com/
    protocol: wss
    x-default: true
components:
  messages:
    subpackage_realtime.Realtime transcription-server-0-SessionCreatedMessage:
      name: SessionCreatedMessage
      title: session.created
      description: The connection is open. Send `session.configure` to configure it.
      payload:
        $ref: '#/components/schemas/realtime_SessionCreatedMessage'
    subpackage_realtime.Realtime transcription-server-1-SessionUpdatedMessage:
      name: SessionUpdatedMessage
      title: session.configured
      description: >-
        Configuration accepted; audio can now be sent. Returns applied settings
        and `session.limits`.
      payload:
        $ref: '#/components/schemas/realtime_SessionUpdatedMessage'
    subpackage_realtime.Realtime transcription-server-2-PartialTranscriptMessage:
      name: PartialTranscriptMessage
      title: transcript.partial
      description: >-
        Replace the previous partial for this `item_id`; earlier words can
        change. A completed result can arrive without any partial.
      payload:
        $ref: '#/components/schemas/realtime_PartialTranscriptMessage'
    subpackage_realtime.Realtime transcription-server-3-CompletedTranscriptMessage:
      name: CompletedTranscriptMessage
      title: transcript.completed
      description: >-
        Final result for this utterance. Replaces any partial text and leaves
        the connection open.
      payload:
        $ref: '#/components/schemas/realtime_CompletedTranscriptMessage'
    subpackage_realtime.Realtime transcription-server-4-AudioCommittedMessage:
      name: AudioCommittedMessage
      title: input_audio_buffer.committed
      description: >-
        Acknowledges a manual, VAD, or duration boundary. Use `item_id` to match
        the subsequent `transcript.completed` result.
      payload:
        $ref: '#/components/schemas/realtime_AudioCommittedMessage'
    subpackage_realtime.Realtime transcription-server-5-SpeechStartedMessage:
      name: SpeechStartedMessage
      title: input_audio_buffer.speech_started
      description: Sent when server VAD detects the start of speech.
      payload:
        $ref: '#/components/schemas/realtime_SpeechStartedMessage'
    subpackage_realtime.Realtime transcription-server-6-SpeechStoppedMessage:
      name: SpeechStoppedMessage
      title: input_audio_buffer.speech_stopped
      description: Sent when server VAD detects enough silence to end speech.
      payload:
        $ref: '#/components/schemas/realtime_SpeechStoppedMessage'
    subpackage_realtime.Realtime transcription-server-7-ErrorEventMessage:
      name: ErrorEventMessage
      title: error
      description: >-
        Reports a failure and closes the connection. See [error codes and
        reconnect handling](/errors#websocket-failures).
      payload:
        $ref: '#/components/schemas/realtime_ErrorEventMessage'
    subpackage_realtime.Realtime transcription-server-8-CommitEmptyMessage:
      name: CommitEmptyMessage
      title: input_audio_buffer.commit_empty
      description: >-
        No audio is pending, so this commit produces no new final result.
        Previously committed utterances may still have results pending.
      payload:
        $ref: '#/components/schemas/realtime_CommitEmptyMessage'
    subpackage_realtime.Realtime transcription-client-0-SessionUpdateMessage:
      name: SessionUpdateMessage
      title: session.configure
      description: >-
        Send once within 10 seconds of connecting. Wait for `session.configured`
        before sending audio. Open a new connection to change settings.
      payload:
        $ref: '#/components/schemas/realtime_SessionUpdateMessage'
    subpackage_realtime.Realtime transcription-client-1-AudioAppendMessage:
      name: AudioAppendMessage
      title: input_audio_buffer.append
      description: >-
        Send audio in a JSON text frame and receive results concurrently.
        Appends have no individual acknowledgement.
      payload:
        $ref: '#/components/schemas/realtime_AudioAppendMessage'
    subpackage_realtime.Realtime transcription-client-2-AudioCommitMessage:
      name: AudioCommitMessage
      title: input_audio_buffer.commit
      description: >-
        Commit pending audio. The server returns `input_audio_buffer.committed`,
        followed by `transcript.completed`. With no pending audio, it returns
        `input_audio_buffer.commit_empty` instead.
      payload:
        $ref: '#/components/schemas/realtime_AudioCommitMessage'
  schemas:
    ChannelsRealtimeMessagesSessionCreatedMessageType:
      type: string
      enum:
        - session.created
      title: ChannelsRealtimeMessagesSessionCreatedMessageType
    ChannelsRealtimeMessagesSessionCreatedMessageSessionType:
      type: string
      enum:
        - transcription
      title: ChannelsRealtimeMessagesSessionCreatedMessageSessionType
    ChannelsRealtimeMessagesSessionCreatedMessageSession:
      type: object
      properties:
        id:
          type: string
          description: >-
            Opaque identifier of the WebSocket session. Reconnecting creates a
            new session.
        type:
          $ref: >-
            #/components/schemas/ChannelsRealtimeMessagesSessionCreatedMessageSessionType
      required:
        - id
        - type
      title: ChannelsRealtimeMessagesSessionCreatedMessageSession
    realtime_SessionCreatedMessage:
      type: object
      properties:
        type:
          $ref: >-
            #/components/schemas/ChannelsRealtimeMessagesSessionCreatedMessageType
        event_id:
          type: string
          description: Unique identifier of this event.
        session:
          $ref: >-
            #/components/schemas/ChannelsRealtimeMessagesSessionCreatedMessageSession
      required:
        - type
        - event_id
        - session
      title: realtime_SessionCreatedMessage
    ChannelsRealtimeMessagesSessionUpdatedMessageType:
      type: string
      enum:
        - session.configured
      title: ChannelsRealtimeMessagesSessionUpdatedMessageType
    ChannelsRealtimeMessagesSessionUpdatedMessageSessionLimits:
      type: object
      properties:
        max_duration_seconds:
          type: number
          format: double
          description: >-
            Input audio duration limit per utterance, default 36 seconds.
            Applies with or without VAD and does not end the connection.
        idle_timeout_seconds:
          type: number
          format: double
          exclusiveMinimum: 0
          description: >-
            Idle timeout in seconds, default 60. Waiting for final inference is
            exempt.
      required:
        - max_duration_seconds
        - idle_timeout_seconds
      title: ChannelsRealtimeMessagesSessionUpdatedMessageSessionLimits
    ChannelsRealtimeMessagesSessionUpdatedMessageSessionModel:
      type: string
      enum:
        - qwen3-asr
        - qwen3-asr-fast
        - qwen3-asr:free
        - qwen3-asr-fast:free
      description: STT model used for this connection.
      title: ChannelsRealtimeMessagesSessionUpdatedMessageSessionModel
    ChannelsRealtimeMessagesSessionUpdatedMessageSessionLanguage:
      type: string
      enum:
        - ar
        - cs
        - da
        - de
        - el
        - en
        - es
        - fa
        - fi
        - fil
        - fr
        - hi
        - hu
        - id
        - it
        - ja
        - ko
        - mk
        - ms
        - nl
        - pl
        - pt
        - ro
        - ru
        - sv
        - th
        - tr
        - vi
        - yue
        - zh
      description: >-
        Supported language code. Omit or use null for automatic language
        recognition.
      title: ChannelsRealtimeMessagesSessionUpdatedMessageSessionLanguage
    ServerVadType:
      type: string
      enum:
        - server_vad
      description: Use server-side voice activity detection.
      title: ServerVadType
    ServerVad:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/ServerVadType'
          description: Use server-side voice activity detection.
        threshold:
          type: number
          format: double
          maximum: 1
          exclusiveMinimum: 0
          default: 0.5
          description: >-
            Speech probability threshold. Higher values require stronger
            evidence of speech.
        prefix_padding_ms:
          type: integer
          minimum: 0
          maximum: 5000
          default: 300
          description: >-
            Milliseconds of buffered audio to retain before detected speech
            begins, so the start of speech is not clipped.
        silence_duration_ms:
          type: integer
          minimum: 100
          maximum: 5000
          default: 500
          description: >-
            Milliseconds of detected silence used to end an utterance. This
            measures input audio time, not a network timeout.
      required:
        - type
      title: ServerVad
    ChannelsRealtimeMessagesSessionUpdatedMessageSession:
      type: object
      properties:
        id:
          type: string
          description: >-
            Opaque identifier of the WebSocket session. Reconnecting creates a
            new session.
        limits:
          $ref: >-
            #/components/schemas/ChannelsRealtimeMessagesSessionUpdatedMessageSessionLimits
        model:
          $ref: >-
            #/components/schemas/ChannelsRealtimeMessagesSessionUpdatedMessageSessionModel
          description: STT model used for this connection.
        language:
          $ref: >-
            #/components/schemas/ChannelsRealtimeMessagesSessionUpdatedMessageSessionLanguage
          description: >-
            Supported language code. Omit or use null for automatic language
            recognition.
        prompt:
          type:
            - string
            - 'null'
          default: ''
          description: >-
            Names or terminology to help recognition. Omitted, null, or empty
            means no context. Applies to every utterance.
        turn_detection:
          oneOf:
            - $ref: '#/components/schemas/ServerVad'
            - type: 'null'
          description: >-
            Omit or use null for manual commit; use server_vad for automatic
            speech boundaries.
      required:
        - id
        - limits
        - model
        - language
        - prompt
        - turn_detection
      title: ChannelsRealtimeMessagesSessionUpdatedMessageSession
    realtime_SessionUpdatedMessage:
      type: object
      properties:
        type:
          $ref: >-
            #/components/schemas/ChannelsRealtimeMessagesSessionUpdatedMessageType
        event_id:
          type: string
          description: Unique identifier of this event.
        session:
          $ref: >-
            #/components/schemas/ChannelsRealtimeMessagesSessionUpdatedMessageSession
      required:
        - type
        - event_id
        - session
      title: realtime_SessionUpdatedMessage
    ChannelsRealtimeMessagesPartialTranscriptMessageType:
      type: string
      enum:
        - transcript.partial
      title: ChannelsRealtimeMessagesPartialTranscriptMessageType
    realtime_PartialTranscriptMessage:
      type: object
      properties:
        type:
          $ref: >-
            #/components/schemas/ChannelsRealtimeMessagesPartialTranscriptMessageType
        event_id:
          type: string
          description: Unique identifier of this event.
        item_id:
          type: string
          description: Utterance identifier shared by its boundary and transcript events.
        transcript:
          type: string
          description: Current text for this utterance.
        revision:
          type: integer
          minimum: 1
          description: >-
            Increasing revision number for this utterance. Intermediate
            revisions may be skipped.
      required:
        - type
        - event_id
        - item_id
        - transcript
        - revision
      title: realtime_PartialTranscriptMessage
    ChannelsRealtimeMessagesCompletedTranscriptMessageType:
      type: string
      enum:
        - transcript.completed
      title: ChannelsRealtimeMessagesCompletedTranscriptMessageType
    ChannelsRealtimeMessagesCompletedTranscriptMessageLanguage:
      type: string
      enum:
        - ar
        - cs
        - da
        - de
        - el
        - en
        - es
        - fa
        - fi
        - fil
        - fr
        - hi
        - hu
        - id
        - it
        - ja
        - ko
        - mk
        - ms
        - nl
        - pl
        - pt
        - ro
        - ru
        - sv
        - th
        - tr
        - vi
        - yue
        - zh
      description: Recognized language code, or null if undetermined.
      title: ChannelsRealtimeMessagesCompletedTranscriptMessageLanguage
    ChannelsRealtimeMessagesCompletedTranscriptMessageCommitReason:
      type: string
      enum:
        - manual
        - vad
        - max_duration
      description: >-
        What finalized the utterance — client commit, VAD boundary, or
        accepted-audio duration limit.
      title: ChannelsRealtimeMessagesCompletedTranscriptMessageCommitReason
    ChannelsRealtimeMessagesCompletedTranscriptMessageUsage:
      type: object
      properties:
        input_audio_seconds:
          type: number
          format: double
          minimum: 0
          description: >-
            Input audio duration for this utterance, in seconds. Excludes
            silence discarded by VAD.
      required:
        - input_audio_seconds
      title: ChannelsRealtimeMessagesCompletedTranscriptMessageUsage
    realtime_CompletedTranscriptMessage:
      type: object
      properties:
        type:
          $ref: >-
            #/components/schemas/ChannelsRealtimeMessagesCompletedTranscriptMessageType
        event_id:
          type: string
          description: Unique identifier of this event.
        item_id:
          type: string
          description: Utterance identifier shared by its boundary and transcript events.
        transcript:
          type: string
          description: >-
            Final text for this utterance; may be empty if no speech was
            recognized.
        language:
          $ref: >-
            #/components/schemas/ChannelsRealtimeMessagesCompletedTranscriptMessageLanguage
          description: Recognized language code, or null if undetermined.
        commit_reason:
          $ref: >-
            #/components/schemas/ChannelsRealtimeMessagesCompletedTranscriptMessageCommitReason
          description: >-
            What finalized the utterance — client commit, VAD boundary, or
            accepted-audio duration limit.
        usage:
          $ref: >-
            #/components/schemas/ChannelsRealtimeMessagesCompletedTranscriptMessageUsage
      required:
        - type
        - event_id
        - item_id
        - transcript
        - language
        - commit_reason
        - usage
      title: realtime_CompletedTranscriptMessage
    ChannelsRealtimeMessagesAudioCommittedMessageType:
      type: string
      enum:
        - input_audio_buffer.committed
      title: ChannelsRealtimeMessagesAudioCommittedMessageType
    realtime_AudioCommittedMessage:
      type: object
      properties:
        type:
          $ref: >-
            #/components/schemas/ChannelsRealtimeMessagesAudioCommittedMessageType
        event_id:
          type: string
          description: Unique identifier of this event.
        item_id:
          type: string
          description: Utterance identifier shared by its boundary and transcript events.
        previous_item_id:
          type:
            - string
            - 'null'
          description: >-
            Previously committed utterance on this connection, or null for the
            first. It identifies an utterance, not the previous WebSocket event.
        client_event_id:
          type:
            - string
            - 'null'
          description: >-
            Client commit event_id, or null when absent or automatically
            committed.
      required:
        - type
        - event_id
        - item_id
        - previous_item_id
        - client_event_id
      title: realtime_AudioCommittedMessage
    ChannelsRealtimeMessagesSpeechStartedMessageType:
      type: string
      enum:
        - input_audio_buffer.speech_started
      title: ChannelsRealtimeMessagesSpeechStartedMessageType
    realtime_SpeechStartedMessage:
      type: object
      properties:
        type:
          $ref: >-
            #/components/schemas/ChannelsRealtimeMessagesSpeechStartedMessageType
        event_id:
          type: string
          description: Unique identifier of this event.
        item_id:
          type: string
          description: Utterance identifier shared by its boundary and transcript events.
        audio_start_ms:
          type: integer
          minimum: 0
          description: >-
            Milliseconds from the start of all audio received on this
            connection; does not reset after commit. Includes configured prefix
            padding, clamped to the current VAD window start.
      required:
        - type
        - event_id
        - item_id
        - audio_start_ms
      title: realtime_SpeechStartedMessage
    ChannelsRealtimeMessagesSpeechStoppedMessageType:
      type: string
      enum:
        - input_audio_buffer.speech_stopped
      title: ChannelsRealtimeMessagesSpeechStoppedMessageType
    realtime_SpeechStoppedMessage:
      type: object
      properties:
        type:
          $ref: >-
            #/components/schemas/ChannelsRealtimeMessagesSpeechStoppedMessageType
        event_id:
          type: string
          description: Unique identifier of this event.
        item_id:
          type: string
          description: Utterance identifier shared by its boundary and transcript events.
        audio_end_ms:
          type: integer
          minimum: 0
          description: >-
            Milliseconds from the start of all audio received on this
            connection; does not reset after commit.
      required:
        - type
        - event_id
        - item_id
        - audio_end_ms
      title: realtime_SpeechStoppedMessage
    ChannelsRealtimeMessagesErrorEventMessageType:
      type: string
      enum:
        - error
      title: ChannelsRealtimeMessagesErrorEventMessageType
    ChannelsRealtimeMessagesErrorEventMessageError:
      type: object
      properties:
        code:
          type: string
          description: >-
            Machine-readable error code. See [Errors and
            troubleshooting](/errors#websocket-failures).
        message:
          type: string
          description: >-
            Human-readable explanation. Do not parse its wording for application
            logic.
        requestId:
          type: string
          description: >-
            Connection trace ID, matching the x-request-id handshake response
            header. Stable across utterances.
      required:
        - code
        - message
        - requestId
      title: ChannelsRealtimeMessagesErrorEventMessageError
    realtime_ErrorEventMessage:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/ChannelsRealtimeMessagesErrorEventMessageType'
        event_id:
          type: string
          description: Unique identifier of this event.
        error:
          $ref: '#/components/schemas/ChannelsRealtimeMessagesErrorEventMessageError'
      required:
        - type
        - event_id
        - error
      title: realtime_ErrorEventMessage
    ChannelsRealtimeMessagesCommitEmptyMessageType:
      type: string
      enum:
        - input_audio_buffer.commit_empty
      title: ChannelsRealtimeMessagesCommitEmptyMessageType
    realtime_CommitEmptyMessage:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/ChannelsRealtimeMessagesCommitEmptyMessageType'
        event_id:
          type: string
          description: Unique identifier of this event.
        item_id:
          description: Any type
        client_event_id:
          type:
            - string
            - 'null'
          description: >-
            Client commit event_id, or null when absent or automatically
            committed.
      required:
        - type
        - event_id
        - item_id
        - client_event_id
      title: realtime_CommitEmptyMessage
    ChannelsRealtimeMessagesSessionUpdateMessageType:
      type: string
      enum:
        - session.configure
      title: ChannelsRealtimeMessagesSessionUpdateMessageType
    SessionConfigModel:
      type: string
      enum:
        - qwen3-asr
        - qwen3-asr-fast
        - qwen3-asr:free
        - qwen3-asr-fast:free
      description: STT model used for this connection.
      title: SessionConfigModel
    SessionConfigLanguage:
      type: string
      enum:
        - ar
        - cs
        - da
        - de
        - el
        - en
        - es
        - fa
        - fi
        - fil
        - fr
        - hi
        - hu
        - id
        - it
        - ja
        - ko
        - mk
        - ms
        - nl
        - pl
        - pt
        - ro
        - ru
        - sv
        - th
        - tr
        - vi
        - yue
        - zh
      description: >-
        Supported language code. Omit or use null for automatic language
        recognition.
      title: SessionConfigLanguage
    SessionConfig:
      type: object
      properties:
        model:
          $ref: '#/components/schemas/SessionConfigModel'
          description: STT model used for this connection.
        language:
          $ref: '#/components/schemas/SessionConfigLanguage'
          description: >-
            Supported language code. Omit or use null for automatic language
            recognition.
        prompt:
          type:
            - string
            - 'null'
          default: ''
          description: >-
            Names or terminology to help recognition. Omitted, null, or empty
            means no context. Applies to every utterance.
        turn_detection:
          oneOf:
            - $ref: '#/components/schemas/ServerVad'
            - type: 'null'
          default: null
          description: >-
            Omit or use null for manual commit; use server_vad for automatic
            speech boundaries.
      required:
        - model
      title: SessionConfig
    realtime_SessionUpdateMessage:
      type: object
      properties:
        type:
          $ref: >-
            #/components/schemas/ChannelsRealtimeMessagesSessionUpdateMessageType
        session:
          $ref: '#/components/schemas/SessionConfig'
      required:
        - type
        - session
      title: realtime_SessionUpdateMessage
    ChannelsRealtimeMessagesAudioAppendMessageType:
      type: string
      enum:
        - input_audio_buffer.append
      title: ChannelsRealtimeMessagesAudioAppendMessageType
    realtime_AudioAppendMessage:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/ChannelsRealtimeMessagesAudioAppendMessageType'
        audio:
          type: string
          minLength: 1
          description: >-
            Base64 of nonempty raw 16 kHz mono PCM16 little-endian samples,
            without a WAV header. The decoded byte length must be a multiple of
            two. The entire UTF-8 JSON message, including base64 and keys, must
            fit within 128 KiB. A 100 ms chunk is 3,200 raw bytes before base64;
            this is an example, not a required chunk duration.
      required:
        - type
        - audio
      title: realtime_AudioAppendMessage
    ChannelsRealtimeMessagesAudioCommitMessageType:
      type: string
      enum:
        - input_audio_buffer.commit
      title: ChannelsRealtimeMessagesAudioCommitMessageType
    realtime_AudioCommitMessage:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/ChannelsRealtimeMessagesAudioCommitMessageType'
        event_id:
          type: string
          description: >-
            Optional client identifier echoed as client_event_id in committed or
            commit_empty.
      required:
        - type
      title: realtime_AudioCommitMessage

```