Skip to main content
Use the MKA1 API speech endpoints when you need file-based speech-to-text or text-to-speech. For real-time, bidirectional voice sessions, use Advanced voice mode.

Choose the right endpoint

Transcribe audio

Send an audio file to the transcription endpoint when you want text output from a recorded file. If your app acts on behalf of an end user, also send X-On-Behalf-Of. Supported audio formats: FLAC, MP3, MP4, MPEG, MPGA, M4A, OGG, WAV, WebM. To save the transcription (and input audio) to history, set store=true.
The response includes the transcript text plus detected language and confidence:

Separate speakers in one transcript

If you need diarization, enable speaker data in the transcription request. When enabled, the response can include a speakers array with speaker-labeled segments and timing metadata.
For include_speaker_data, upload WAV or PCM audio for non-streaming transcription. Other audio formats return 400 BAD_REQUEST with the message Speaker diarization currently requires WAV/PCM audio for non-streaming transcription.
Example response with speaker separation:
Use the top-level text field when you need a single merged transcript. Use speakers when you need captions, turn-taking, or downstream speaker analytics.

Generate speech

Use the standard text-to-speech endpoint when you want a complete WAV file. The response body is binary audio, and the response headers include X-Language-Code. To save the generated audio to history, set store=true. When stored, the response also includes X-Tts-Id, and persistence completes before the response returns.

Stream speech for lower latency

Use streaming text-to-speech when you want playback to start before the full audio file is ready. Choose mp3 for smaller payloads or pcm for uncompressed audio (returned as audio/wav). To save the generated audio to history, set store=true. When stored, the response includes X-Tts-Id. History persistence for streaming is best-effort and completes shortly after the stream ends, so an immediate lookup by X-Tts-Id can briefly return 404. If persistence fails or is skipped (for example, if the audio exceeds the 25MB history cap), the id is never assigned and lookups keep returning 404.

Next steps