Light Dark

Container Requirements

Minimum Size small

Functions

build-transcribe-args

fn (input-path: Str, output-dir: Str, opts: TranscribeOpts): Vec

Build whisper CLI arguments after the whisper executable name.

check-box-result

fn (result: Map, tool-name: Str): Map

file-ext

fn (path: Str): Str

join-args

fn (args: Vec): Str

model-to-min-size

fn (model: Str): Str

parse-transcribe-output

fn (stdout: Str?): Map

Parse whisper JSON output (full transcript, segments, detected language).

run-whisper-box

fn (shell-script: Str, box-size: Str, image: Str?, timeout: Int): Map

start-transcribe

fn (input: Str): Map
fn (input: Str, opts: TranscribeOpts): Map

Start a Whisper transcription in a container without waiting for completion.

Returns the box task info from ::box/start. Use ::task/await on the returned id to wait for the result.

Example

info ::whisper/start-transcribe("hot://uploads/voice.mp3", {model: "small", language: "en"})
result ::task/await(info.id)
Container: small

start-whisper-box

fn (shell-script: Str, box-size: Str, image: Str?, timeout: Int): Map

transcribe

fn (input: Str): Map
fn (input: Str, opts: TranscribeOpts): Map

Transcribe (or translate) audio to text using OpenAI Whisper in a container.

Returns {text: Str, language: Str?, segments: Vec?, url: Str}. With format: "json" (default), text is the full transcript, segments holds timed segments, and language is the detected or forced language code. url is the hot:// URL of the output file (same format as requested).

Box size defaults from the model (tiny/base → small, small → medium, etc.).

Example

out ::whisper/transcribe("hot://uploads/voice.mp3")
out ::whisper/transcribe("hot://uploads/voice.mp3", {
    model: "small",
    language: "en",
    format: "json",
})
Container: small

Types

TranscribeOpts

TranscribeOpts type {
    model: Str?,
    language: Str?,
    format: Str?,
    task: Str?,
    temperature: Str?,
    word-timestamps: Bool?,
    initial-prompt: Str?,
    image: Str?,
    size: Str?,
    timeout: Int?
}

Options for Whisper transcription.

Fields

  • model — Model size: "tiny", "base", "small", "medium", "large" (default: "base")
  • language — Language code, e.g. "en", "fr" (omit for auto-detect)
  • format — Output file format: "txt", "json", "srt", "vtt" (default: "json")
  • task"transcribe" or "translate" (default: whisper default / transcribe)
  • temperature — Sampling temperature as string, e.g. "0"
  • image — Custom Docker image with whisper CLI
  • size — Box size override (default: derived from model)