Skip to content

Audio transcription in Playground

Upload audio, inspect a price, transcribe and read your own saved result.

No current prepared translation is available. The English source is shown without machine translation.

Transcribe audio in Playground

Audio is a separate Playground tab. Choose an active key you are permitted to use. The selected key, your current identity and the model restrictions determine available offers and your private operation history. A different key is not a substitute for access to earlier work.

Start with a new form, choose a model and an offered route, then attach one recording. The supported file formats, response formats and optional controls come from that offer. The service accepts supported WAV, MP3, FLAC, OGG, M4A and WebM audio, up to the smaller of the offered limit and 25 MiB / 30 minutes. A compatible filename does not prove the file is valid. Audio must decode completely, contain one mono/stereo audio stream and no other streams; encrypted, corrupt or unsupported content is rejected. Your service may impose a smaller upload limit.

Check file and price uploads and validates the recording without requesting transcription from a supplier. Keep the tab open until this finishes. It is not a paid generation, balance debit or reservation. Launch transcription is the separate explicit paid action. Changing the file, settings or route invalidates the price check. A changed tariff or quote at launch is rejected rather than silently charged at the new value.

Known prices are exact USD strings. For a recording-priced offer, seconds may be rounded up by the disclosed pricing step. Offers priced from supplier duration or token usage remain unknown until that usage is returned; acknowledge an unknown amount explicitly. A byte count is not a duration or token count. Usage Limit valuation and money are different. No estimate is presented as a guaranteed maximum.

Language, a vocabulary/context prompt, temperature and word/segment timestamps appear only when supported. Timestamps require verbose_json. The response choices may include JSON, verbose JSON, plain text, SRT and VTT. This release is transcription, not speech synthesis, streaming speech, translation or speaker identification.

Result and history

An accepted request has a saved operation ID. The page reads its state until the result is ready; closing the browser does not cancel already accepted work. The completed transcript is fetched automatically; Read saved result remains a manual retry. Copy/Download do not create another transcription. JSON keeps the complete returned body; text/subtitle formats keep their original text. Empty text can be a valid silent recording.

History is separate from the form. Reading an old result does not disable new input; New request clears the draft without sending or deleting anything. If your launch response is lost before an operation ID is known, check the existing submission rather than starting it under another identity. A browser refresh restores an opaque operation pointer, not the recording, prompt or a reconstructed raw request. Do not bypass an unknown paid outcome with a fresh intent.

A review or unknown outcome needs Support; provide the operation ID and safe error code, not keys or recordings in a public message. There is no automatic paid resend. A positive balance is not required to read an existing result, but current access still is. Results normally expire 24 hours after creation; metadata and the intent identifier remain. Missing or expired results are not regenerated by a read action.

Saved for settlement means an accounting input was recorded, not that the balance was already updated. A displayed price quote remains distinct from calculated cost and settled money.

Raw request, cURL and Raw response

The inspector offers separate tabs. Raw request is an honest multipart field/file summary. After preparing the launch, Save exact body downloads audio-request-body.bin with the precise multipart boundary and uploaded bytes. Its cURL command uses that file and the same Idempotency-Key; run it from the directory containing the file. It requires your own MODEL_API_KEY, not a hidden browser grant. Executing cURL can incur a charge; copying never executes it. Changing the key or actor does not replay the old operation safely.

The full endpoint is selected by your current service profile. On this service it normally uses https://api.model-gate.com; a configured custom domain uses its own URL. Do not replace it with another brand’s host. The browser never displays the permanent key secret.

Raw response preserves the actual UTF-8 body, including whitespace and API errors. It distinguishes the price check, submission, state/lookup and automatically or explicitly read saved result. A 128 KiB preview can be shortened while Copy/Save includes the entire captured response within 4 MiB. Interrupted, oversized or invalid UTF-8 content is not offered as a complete text capture. Private content stays in tab memory, not browser storage; your own clipboard/downloads remain sensitive.

See the transcription API and state reference.

Upload errors and the offered output format

Your selected offer can accept several input formats while preparing a WAV for the transcription service. The file/price check shows the upstream file type and expanded byte count. For WAV conversion the recording is normalized to mono16000Hz PCM16-bit; its decoded duration, not expanded bytes, determines a duration-priced quote. A small compressed recording can exceed the output size limit; the service rejects it rather than cutting off speech. The original upload still has its own web limit.

A failed check now shows its observed HTTP status and error code. HTTP413 means the upload was rejected for size; an OGG that fits does not prove the equivalent WAV fits. Decoder failures distinguish invalid format, unsupported codec, full-decoding failure and timeout. Without a readable HTTP response the page reports a connection/CORS problem, not a guessed provider error. Open Raw response for the captured error text. Raw request/cURL also keeps the failed price-check body: this command checks a price, not a paid transcription. It uses your current service endpoint and is labelled separately from Launch.

Automatic transcript and progress

The transcript opens automatically when the selected operation completes; Copy and Download remain available. A failed or expired result does not cause another transcription. Refresh status updates state and settlement without repeatedly downloading or clearing an already displayed transcript.

Check file and price and Launch open a progress window with the stages actually observed, such as validation, queueing, supplier response and saved-result loading. It shows elapsed time, not a completion percentage or promised duration. Close or Escape hides the window without cancelling accepted work. Show progress reopens it. The saved transcript appears after processing without an extra Read click.

The file note separates the selected offer's file limit from the API's whole multipart upload limit. The latter includes fields and the boundary as well as your recording; the prepared body size is checked before sending. A25MiB file allowance does not override a smaller HTTP limit. A later HTTP413 can still be a separate delivery limit. Raw keeps the actual check error.

Accounting now distinguishes Awaiting settlement from Debited based on observed settlement state and time. No settlement required and unavailable status are separate outcomes. A missing retained accounting row does not mean the work was free. After completion the page checks unsettled status at a low frequency for a limited period; Refresh status is available afterwards. The displayed debit describes the recorded event, not a later refund or current account balance.

When Launch is unavailable

The explanation beside Launch identifies the required step: select a recording, then click Check file and price. A successful check enables Launch unless an unknown-cost confirmation is needed. Changing the file or settings invalidates the previous check; file checking alone does not transcribe.

History across your keys

Operation history lists your own operations across the keys currently available to you. Use Filter history by key to narrow the list and Older operations for the next page. Selecting an earlier result does not change the key or draft of a new request. Expired results may remain in history but cannot be downloaded again from expired storage. A revoked or unavailable key does not gain new access through history.

A prompt can have a route-specific character limit. When no additional cap is configured, request-size limits still apply; large text is never silently truncated. A provider can impose its own constraints. Changing input requires a fresh price check before an explicit launch.

Prompt and compact operation details

The prompt counter shows prompt_max_chars and the current Unicode character count. Numeric caps constrain typing, paste and completed composition without splitting emoji; null removes only the additional character cap. An existing draft on a stricter route is retained and its exact blocking reason is shown. Audio prompt_max_chars0 disables optional context. Disabled Launch always has an adjacent reason. Accounting details reads the full authorized accounting view; compact status replies omit those fields and do not claim zero cost or completed settlement. Generated requests keep quote/route/idempotency binding but do not send max_cost_usd.

Get the result · Raw / cURL

After launching or selecting an operation in history, open Get the result · Raw / cURL immediately after Request and response in the result column. Operation history is the last block, spanning the full workspace width below both the form and results. Choose Operation status or Saved result. The result command saves the original JSON, text, SRT or VTT response; its filename follows the selected response format when known. It does not download the source recording.

The displayed Operation key ID belongs to the history item, not necessarily to the key selected for a new form. Use that operation's authorized key and original actor context. Copying does not transfer access to another key or account. The API origin is https://api.model-gate.com for this profile, or the configured API origin of your current domain. No fallback to another profile is used.

The Raw block contains the bodyless GET endpoint and a safe Authorization placeholder. The cURL block uses your locally supplied MODEL_API_KEY and saves the response to a file. Browser tokens and key secrets are never copied. The commands have no create body, Content-Type, Idempotency-Key, quote or cost limit. Copy Raw and Copy cURL only copy text; selecting a command neither starts a download nor launches new work.

These are generated examples for another read, not the original request log. A command can be shown while a job is pending; it does not prove the result exists. Check status first and handle unavailable, expired or access-denied replies as errors, not media. --fail-with-body can write an HTTP error to the output file; check its exit status before opening that file. A failed read is not permission for another paid create. See the result API for complete examples.