Skip to main content
client.asr().transcribe(...) uploads a complete audio file to luchs-1 and returns the transcript. See Speech to Text for the full wire contract, supported language, audio limits, and the WebSocket streaming protocol — the SDK does not yet wrap streaming.

Transcribe a file

The single-argument transcribe(audio) overload defaults to ASRResource.MODEL_ID ("luchs-1"). The five-argument overload lets you set filename, contentType and language explicitly, but model must still equal ASRResource.MODEL_ID — any other value throws ValidationException before any HTTP call:
language is forwarded but currently has no effect on recognition — see Supported language.

Migrating from qwen3-asr

Passing "qwen3-asr" as the model argument now throws ValidationException before any network call. Use ASRResource.MODEL_ID, or the literal "luchs-1". Anything reading the response model field must also account for it now always being "luchs-1"; use getModelRevision() if you need the underlying artifact identity. This changed in the next major release of the Java SDK.

Streaming

The Java SDK does not currently include a WebSocket streaming client for speech-to-text; StreamingTranscriptionResult exists only so callers who open their own WebSocket session can deserialize frames. Use the raw WebSocket protocol in Speech to Text directly for live transcription.
Last modified on September 13, 2026