Whistle API
    Preparing search index...

    Use Node 22 or 24 and the repository's pinned pnpm 12.4.2. From a checkout:

    pnpm install --frozen-lockfile
    pnpm build
    pnpm assets:prepare
    pnpm example:node

    The last command transcribes the licensed development fixture. It records no personal microphone audio. To try the browser UI:

    pnpm demo:prepare
    pnpm demo:dev

    The private @tiny-stt/demo package uses React 19 and Vite 8. Open the localhost URL, load the model, then choose a file or explicitly start recording. The browser guide explains the helper APIs.

    Install the SDK and prepare the model and runtime files:

    pnpm add @tiny-stt/whistle
    pnpm exec whistle download --out public/whistle

    For Node applications, choose a private local directory such as vendor/whistle instead of public/whistle. download has no postinstall hook; it is an explicit preparation step. See Deployment for integrity checks and offline verification. Documentation builds do not publish, deploy or acquire a model.

    To test an unpublished checkout, run pnpm release:check in the repository, then install artifacts/tiny-stt-whistle-0.1.0.tgz in your application in place of the registry package. For React applications, install the accompanying artifacts/tiny-stt-react-0.1.0.tgz as well; see React hooks.

    Both factories return the same "@tiny-stt/whistle".Whistle interface. Core input is decoded 16 kHz mono Float32Array PCM, with 1–480,000 finite samples within [-1, 1]. Encoded bytes are not PCM. Calls snapshot their input immediately, respect typed-array offsets and retain caller buffer ownership.

    The SDK rejects clips over 30 seconds; it does not split or truncate them. Keep an instance for repeated clips and dispose it when finished. Continuous STT, TTS, training and hosted APIs are outside this package's scope.