Skip to main content

OpenAI compatibility

KittenML supports the common OpenAI SDK workflows for upload transcription and streaming speech generation. Realtime STT uses OpenAI-style events on a KittenML-specific path.

Set this base URL for OpenAI HTTP SDKs:

https://api.kittenml.com/v1

Do not set the SDK base URL to a complete endpoint such as /v1/audio/transcriptions; the SDK appends that path itself.

Compatibility matrix

CapabilityStatusNotes
POST /v1/audio/transcriptionsSupportedWorks with OpenAI Python and JavaScript clients
model, file, language, response_format, streamSupportedUse the documented values
json, verbose_json, text, srt, vttSupportedIncludes KittenML metadata in JSON formats
Common OpenAI ASR model IDsCompatibility aliasesThey select the same hosted EmoKitten model; prefer emokittenasr-realtime
Upload SSESupportedFinite delta/done stream ending in [DONE]
POST /v1/audio/speechSupportedChunked binary audio by default; SSE is optional
model, input, voice, response_format, speed, stream_formatSupportedUse KittenML model IDs and voices
Realtime event names and common fieldsCompatible styleIncludes KittenML extension fields
Official OpenAI Realtime client connectionNot drop-inThe SDK hard-codes /v1/realtime; KittenML uses /v1/stt/realtime
WebRTC realtime transcriptionSupportedUses short-lived client tokens, SDP signaling, microphone media, and an oai-events data channel
Streaming TTS audioSupportedstream_format: audio or stream_format: sse
Word-level timestamps, diarization, confidence scoresNot supportedSegment timestamps are available in verbose STT output

Compatibility covers the workflows above, not every field, model, endpoint, or behavior available from another provider.

For upload STT, the fields in the matrix are the accepted public contract. OpenAI options such as prompt, temperature, and word-level timestamp granularities do not affect KittenML inference and should be omitted. An unsupported response_format, empty file, or oversized file is rejected.

For TTS, send only the documented fields. Unsupported model IDs are rejected, and invalid input, voice, format, or speed values return field validation errors.

KittenML extensions

JSON and realtime transcript results can add:

  • enriched_text
  • accent
  • tags
  • clean_text
  • segments
  • request_id

OpenAI SDK response objects preserve these additional JSON fields.

Realtime clients

Use a standard WebSocket library with:

wss://api.kittenml.com/v1/stt/realtime?model=emokittenasr-realtime

See the tested Python and Node.js examples.

Browser applications can instead use the documented WebRTC transcription flow. KittenML follows the familiar short-lived-token and SDP exchange pattern, but uses the KittenML API hostname and documented signaling paths.