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