Skip to main content
Hopper transcribes English audio with Nemotron ASR (nemotron-asr), as a file upload or as a live WebSocket stream.

Transcribe a file

POST /v1/audio/transcriptions takes a multipart/form-data upload and returns the transcript with word timestamps.
  • file (file, required) — PCM16 mono or WAV, up to 25 MB. Compressed audio is rejected; decode it first.
  • model (string, required) — nemotron-asr.
  • sample_rate (integer, optional, default 16000) — One of 8000, 16000, 22050, 24000, 44100, 48000.
The response carries the transcript, one entry per word with its start and end offset in seconds, and the duration of the audio.

Stream live audio

wss://api.withhopper.com/stt/websocket transcribes audio as it arrives. Authenticate with the Authorization header, or with the api_key query parameter from clients that cannot set headers.
  • api_key (string, optional) — Your key, when no Authorization header is sent.
  • model (string, optional, default nemotron-asr) — STT model id.
  • sample_rate (integer, optional, default 16000) — One of 8000, 16000, 22050, 24000, 44100, 48000.
  • turn_detection (string, optional, default balanced) — balanced, patient to wait longer before ending a turn, or responsive to end it sooner.
The server sends {"type": "Ready"} once, then you send binary PCM16 mono frames and receive {"text", "is_final", "words"} events — is_final marks the end of a turn. Send the text frame END to flush; the server replies with END when every final has been delivered.
A session is billed on the audio bytes it receives, settled every 60 seconds and at close. If the balance reaches zero mid-session the server closes the socket with code 1008. Error codes are listed in Errors.