mlx-bun library API
    Preparing search index...
    manifest: {
        id: "transcription";
        requires: readonly ["modelHost", "catalog"];
        routes: readonly [
            {
                id: "transcriptions";
                method: "POST";
                mount: "root";
                path: "/v1/audio/transcriptions";
                response: "json";
                summary: "Transcribe an uploaded clip (multipart or JSON body); text, json, verbose_json, srt or vtt, or an SSE stream";
            },
            {
                id: "translations";
                method: "POST";
                mount: "root";
                path: "/v1/audio/translations";
                response: "json";
                summary: "Translate an uploaded clip to English";
            },
            {
                id: "unload";
                method: "POST";
                mount: "root";
                path: "/admin/transcription/unload";
                response: "json";
                summary: "Page the Whisper weights out now; reports the residency counters";
            },
            {
                id: "session-create";
                method: "POST";
                mount: "root";
                path: "/v1/audio/sessions";
                response: "json";
                summary: "Open a streaming dictation session";
            },
            {
                id: "session-audio";
                method: "POST";
                mount: "root";
                path: "/v1/audio/sessions/:id/audio";
                response: "json";
                summary: "Append a chunk of 16 kHz float32 PCM (or an encoded clip) to a session";
            },
            {
                id: "session-finish";
                method: "POST";
                mount: "root";
                path: "/v1/audio/sessions/:id/finish";
                response: "json";
                summary: "Transcribe the remainder and close the session";
            },
            {
                id: "session-delete";
                method: "DELETE";
                mount: "root";
                path: "/v1/audio/sessions/:id";
                response: "json";
                summary: "Close a session that was abandoned";
            },
        ];
        summary: "Speech-to-text with a local Whisper model: OpenAI-compatible audio routes, streaming dictation sessions, and the transcribe and dictate verbs.";
        title: "Transcription";
        verbs: readonly [
            {
                name: "transcribe";
                options: readonly [
                    {
                        name: "model";
                        summary: "Whisper model directory or cached query (overrides the positional query) [default: the first downloaded whisper checkpoint]";
                        type: "string";
                    },
                    {
                        name: "query";
                        summary: "Cached Whisper query when no positional/model override is supplied";
                        type: "string";
                    },
                    {
                        name: "language";
                        summary: "ISO code or name (en, japanese); auto or omitted detects from the first 30 s";
                        type: "string";
                    },
                    {
                        name: "task";
                        summary: "transcribe | translate (to English) [default: transcribe]";
                        type: "string";
                    },
                    {
                        name: "beam-size";
                        summary: "Beam search width [default: greedy]";
                        type: "number";
                    },
                    {
                        name: "temperature";
                        summary: "One sampling temperature; omitted runs the (0, 0.2, …, 1.0) fallback ladder like mlx-whisper";
                        type: "number";
                    },
                    {
                        name: "no-fallback";
                        summary: "Temperature 0 only, no retry ladder";
                        type: "boolean";
                    },
                    {
                        name: "prompt";
                        summary: "Initial prompt (vocabulary hints / style)";
                        type: "string";
                    },
                    {
                        name: "no-timestamps";
                        summary: "Decode text only (<|notimestamps|>)";
                        type: "boolean";
                    },
                    {
                        name: "no-condition";
                        summary: "Do not condition each window on the previous text";
                        type: "boolean";
                    },
                    {
                        name: "vad";
                        summary: "Silero VAD gate: no detected speech prints an empty result and Whisper never runs (weights: ggml-org/whisper-vad in the HF cache)";
                        type: "boolean";
                    },
                    {
                        name: "vad-threshold";
                        summary: "Speech probability threshold for --vad [default: 0.5]";
                        type: "number";
                    },
                    {
                        name: "vad-model";
                        summary: "Explicit Silero ggml path for --vad";
                        type: "string";
                    },
                    {
                        name: "vad-trim";
                        summary: "Accepted with --vad; the clip is still transcribed whole, as in main";
                        type: "boolean";
                    },
                    {
                        name: "word-timestamps";
                        summary: "Word-level timestamps (verbose_json words)";
                        type: "boolean";
                    },
                    {
                        name: "faithful";
                        summary: "Run the oracle-parity graph instead of the fast path";
                        type: "boolean";
                    },
                    {
                        name: "audio-ctx";
                        summary: "Lab: encode only n of the 1500 encoder positions (whisper.cpp -ac); degrades below ~1024";
                        type: "number";
                    },
                    {
                        name: "format";
                        summary: "text | json | verbose_json | srt | vtt [default: text]";
                        type: "string";
                    },
                    {
                        name: "verbose";
                        summary: "Print each segment with its time range as it decodes, then a realtime-factor summary (stderr)";
                        type: "boolean";
                    },
                ];
                positional: readonly [
                    {
                        name: "audio-file";
                        required: true;
                        summary: "The clip to transcribe";
                    },
                    {
                        name: "query";
                        summary: "The Whisper checkpoint (a directory or a cached query)";
                    },
                ];
                summary: "Speech-to-text from an audio file with a local Whisper model (no server)";
                usage: "usage: mlx-bun transcribe <audio-file> [query] [--language en] [--format text|json|verbose_json|srt|vtt]";
            },
            {
                name: "dictate";
                options: readonly [
                    {
                        name: "model";
                        summary: "Whisper model directory or cached query for in-process transcription (overrides the positional query) [default: the first downloaded whisper checkpoint]";
                        type: "string";
                    },
                    {
                        name: "query";
                        summary: "Cached Whisper query when no positional/model override is supplied";
                        type: "string";
                    },
                    {
                        name: "server";
                        summary: "Use a running mlx-bun server's /v1/audio/sessions instead of loading the model here";
                        type: "string";
                    },
                    {
                        default: 61;
                        name: "hotkey";
                        optionalValue: true;
                        summary: "Hold a key to talk instead of Enter toggling: macOS virtual keycode, value optional [default: 61 = Right Option]; needs Input Monitoring for your terminal";
                        type: "number";
                    },
                    {
                        name: "language";
                        summary: "Language code; auto detects [default: en]";
                        type: "string";
                    },
                    {
                        name: "beam-size";
                        summary: "Beam search width [default: greedy]";
                        type: "number";
                    },
                    { name: "prompt"; summary: "Initial prompt"; type: "string" },
                    {
                        name: "vocabulary";
                        summary: "Comma-separated hint terms, fitted into the prompt budget";
                        type: "string";
                    },
                    {
                        name: "no-vad";
                        summary: "Skip the Silero gate (by default silence never runs Whisper)";
                        type: "boolean";
                    },
                    {
                        name: "idle-unload";
                        summary: "Release the weights after this many idle seconds; 0 = right after each take [default: 30]";
                        type: "number";
                    },
                    {
                        name: "resident";
                        summary: "Keep the weights loaded";
                        type: "boolean";
                    },
                    {
                        name: "copy";
                        summary: "Copy the transcript to the clipboard (pbcopy)";
                        type: "boolean";
                    },
                    {
                        name: "type";
                        summary: "Type it into the frontmost app via System Events keystrokes (needs Accessibility for your terminal)";
                        type: "boolean";
                    },
                    {
                        name: "type-delay";
                        summary: "Seconds to wait before typing so you can Cmd-Tab [default: 1 in Enter mode, 0 with --hotkey]";
                        type: "number";
                    },
                ];
                positional: readonly [
                    {
                        name: "query";
                        summary: "The Whisper checkpoint (a directory or a cached query)";
                    },
                ];
                summary: "Push-to-talk: stream your microphone into Whisper, print/copy/type the text";
            },
        ];
    } = ...

    Type Declaration

    • Readonlyid: "transcription"
    • Readonlyrequires: readonly ["modelHost", "catalog"]
    • Readonlyroutes: readonly [
          {
              id: "transcriptions";
              method: "POST";
              mount: "root";
              path: "/v1/audio/transcriptions";
              response: "json";
              summary: "Transcribe an uploaded clip (multipart or JSON body); text, json, verbose_json, srt or vtt, or an SSE stream";
          },
          {
              id: "translations";
              method: "POST";
              mount: "root";
              path: "/v1/audio/translations";
              response: "json";
              summary: "Translate an uploaded clip to English";
          },
          {
              id: "unload";
              method: "POST";
              mount: "root";
              path: "/admin/transcription/unload";
              response: "json";
              summary: "Page the Whisper weights out now; reports the residency counters";
          },
          {
              id: "session-create";
              method: "POST";
              mount: "root";
              path: "/v1/audio/sessions";
              response: "json";
              summary: "Open a streaming dictation session";
          },
          {
              id: "session-audio";
              method: "POST";
              mount: "root";
              path: "/v1/audio/sessions/:id/audio";
              response: "json";
              summary: "Append a chunk of 16 kHz float32 PCM (or an encoded clip) to a session";
          },
          {
              id: "session-finish";
              method: "POST";
              mount: "root";
              path: "/v1/audio/sessions/:id/finish";
              response: "json";
              summary: "Transcribe the remainder and close the session";
          },
          {
              id: "session-delete";
              method: "DELETE";
              mount: "root";
              path: "/v1/audio/sessions/:id";
              response: "json";
              summary: "Close a session that was abandoned";
          },
      ]
    • Readonlysummary: "Speech-to-text with a local Whisper model: OpenAI-compatible audio routes, streaming dictation sessions, and the transcribe and dictate verbs."
    • Readonlytitle: "Transcription"
    • Readonlyverbs: readonly [
          {
              name: "transcribe";
              options: readonly [
                  {
                      name: "model";
                      summary: "Whisper model directory or cached query (overrides the positional query) [default: the first downloaded whisper checkpoint]";
                      type: "string";
                  },
                  {
                      name: "query";
                      summary: "Cached Whisper query when no positional/model override is supplied";
                      type: "string";
                  },
                  {
                      name: "language";
                      summary: "ISO code or name (en, japanese); auto or omitted detects from the first 30 s";
                      type: "string";
                  },
                  {
                      name: "task";
                      summary: "transcribe | translate (to English) [default: transcribe]";
                      type: "string";
                  },
                  {
                      name: "beam-size";
                      summary: "Beam search width [default: greedy]";
                      type: "number";
                  },
                  {
                      name: "temperature";
                      summary: "One sampling temperature; omitted runs the (0, 0.2, …, 1.0) fallback ladder like mlx-whisper";
                      type: "number";
                  },
                  {
                      name: "no-fallback";
                      summary: "Temperature 0 only, no retry ladder";
                      type: "boolean";
                  },
                  {
                      name: "prompt";
                      summary: "Initial prompt (vocabulary hints / style)";
                      type: "string";
                  },
                  {
                      name: "no-timestamps";
                      summary: "Decode text only (<|notimestamps|>)";
                      type: "boolean";
                  },
                  {
                      name: "no-condition";
                      summary: "Do not condition each window on the previous text";
                      type: "boolean";
                  },
                  {
                      name: "vad";
                      summary: "Silero VAD gate: no detected speech prints an empty result and Whisper never runs (weights: ggml-org/whisper-vad in the HF cache)";
                      type: "boolean";
                  },
                  {
                      name: "vad-threshold";
                      summary: "Speech probability threshold for --vad [default: 0.5]";
                      type: "number";
                  },
                  {
                      name: "vad-model";
                      summary: "Explicit Silero ggml path for --vad";
                      type: "string";
                  },
                  {
                      name: "vad-trim";
                      summary: "Accepted with --vad; the clip is still transcribed whole, as in main";
                      type: "boolean";
                  },
                  {
                      name: "word-timestamps";
                      summary: "Word-level timestamps (verbose_json words)";
                      type: "boolean";
                  },
                  {
                      name: "faithful";
                      summary: "Run the oracle-parity graph instead of the fast path";
                      type: "boolean";
                  },
                  {
                      name: "audio-ctx";
                      summary: "Lab: encode only n of the 1500 encoder positions (whisper.cpp -ac); degrades below ~1024";
                      type: "number";
                  },
                  {
                      name: "format";
                      summary: "text | json | verbose_json | srt | vtt [default: text]";
                      type: "string";
                  },
                  {
                      name: "verbose";
                      summary: "Print each segment with its time range as it decodes, then a realtime-factor summary (stderr)";
                      type: "boolean";
                  },
              ];
              positional: readonly [
                  {
                      name: "audio-file";
                      required: true;
                      summary: "The clip to transcribe";
                  },
                  {
                      name: "query";
                      summary: "The Whisper checkpoint (a directory or a cached query)";
                  },
              ];
              summary: "Speech-to-text from an audio file with a local Whisper model (no server)";
              usage: "usage: mlx-bun transcribe <audio-file> [query] [--language en] [--format text|json|verbose_json|srt|vtt]";
          },
          {
              name: "dictate";
              options: readonly [
                  {
                      name: "model";
                      summary: "Whisper model directory or cached query for in-process transcription (overrides the positional query) [default: the first downloaded whisper checkpoint]";
                      type: "string";
                  },
                  {
                      name: "query";
                      summary: "Cached Whisper query when no positional/model override is supplied";
                      type: "string";
                  },
                  {
                      name: "server";
                      summary: "Use a running mlx-bun server's /v1/audio/sessions instead of loading the model here";
                      type: "string";
                  },
                  {
                      default: 61;
                      name: "hotkey";
                      optionalValue: true;
                      summary: "Hold a key to talk instead of Enter toggling: macOS virtual keycode, value optional [default: 61 = Right Option]; needs Input Monitoring for your terminal";
                      type: "number";
                  },
                  {
                      name: "language";
                      summary: "Language code; auto detects [default: en]";
                      type: "string";
                  },
                  {
                      name: "beam-size";
                      summary: "Beam search width [default: greedy]";
                      type: "number";
                  },
                  { name: "prompt"; summary: "Initial prompt"; type: "string" },
                  {
                      name: "vocabulary";
                      summary: "Comma-separated hint terms, fitted into the prompt budget";
                      type: "string";
                  },
                  {
                      name: "no-vad";
                      summary: "Skip the Silero gate (by default silence never runs Whisper)";
                      type: "boolean";
                  },
                  {
                      name: "idle-unload";
                      summary: "Release the weights after this many idle seconds; 0 = right after each take [default: 30]";
                      type: "number";
                  },
                  { name: "resident"; summary: "Keep the weights loaded"; type: "boolean" },
                  {
                      name: "copy";
                      summary: "Copy the transcript to the clipboard (pbcopy)";
                      type: "boolean";
                  },
                  {
                      name: "type";
                      summary: "Type it into the frontmost app via System Events keystrokes (needs Accessibility for your terminal)";
                      type: "boolean";
                  },
                  {
                      name: "type-delay";
                      summary: "Seconds to wait before typing so you can Cmd-Tab [default: 1 in Enter mode, 0 with --hotkey]";
                      type: "number";
                  },
              ];
              positional: readonly [
                  {
                      name: "query";
                      summary: "The Whisper checkpoint (a directory or a cached query)";
                  },
              ];
              summary: "Push-to-talk: stream your microphone into Whisper, print/copy/type the text";
          },
      ]