---
url: >-
  https://adk.nht.io/api/@nhtio/adk/batteries/classes/TransformersJsSttAdapter.md
description: >-
  STT adapter for transformers.js's automatic-speech-recognition
  (Whisper-family) pipeline.
---

# Class: TransformersJsSttAdapter

Defined in: [src/batteries/specialists/stt/transformers\_js/adapter.ts:76](https://github.com/NHTIO/ADK/blob/v1.20260713.1/src/src/batteries/specialists/stt/transformers_js/adapter.ts#L76)

STT adapter for transformers.js's automatic-speech-recognition (Whisper-family) pipeline.

## Remarks

Reusable: construct once, call [TransformersJsSttAdapter.transcribe](#transcribe) as many times as needed.
The pipeline is resolved lazily on first use (or via [preload](#preload)) and cached with single-flight
semantics so concurrent calls share one load.

## Constructors

### Constructor

```ts
new TransformersJsSttAdapter(options: unknown): TransformersJsSttAdapter;
```

Defined in: [src/batteries/specialists/stt/transformers\_js/adapter.ts:93](https://github.com/NHTIO/ADK/blob/v1.20260713.1/src/src/batteries/specialists/stt/transformers_js/adapter.ts#L93)

#### Parameters

| Parameter | Type      | Description                             |
| --------- | --------- | --------------------------------------- |
| `options` | `unknown` | Constructor options. Validated eagerly. |

#### Returns

`TransformersJsSttAdapter`

#### Throws

[@nhtio/adk/batteries!E\_INVALID\_TRANSFORMERS\_JS\_STT\_OPTIONS](../variables/E_INVALID_TRANSFORMERS_JS_STT_OPTIONS.md) when invalid.

## Methods

### dispose()

```ts
dispose(): Promise<void>;
```

Defined in: [src/batteries/specialists/stt/transformers\_js/adapter.ts:123](https://github.com/NHTIO/ADK/blob/v1.20260713.1/src/src/batteries/specialists/stt/transformers_js/adapter.ts#L123)

Release the loaded model's ONNX sessions + GPU/wasm buffers, then drop the cached pipeline.

#### Returns

`Promise`<`void`>

#### Remarks

`reset()` only nulls the JS reference; the native ONNX Runtime sessions and WebGPU/wasm device
memory stay alive until GC. `AutomaticSpeechRecognitionPipeline` extends `Pipeline`, which exposes
`dispose()` — this awaits it so the memory is reclaimed between loads, swallows a disposal error
(teardown must not throw), and finishes with `reset()`. Idempotent.

***

### isAvailable()

```ts
isAvailable(): boolean;
```

Defined in: [src/batteries/specialists/stt/transformers\_js/adapter.ts:99](https://github.com/NHTIO/ADK/blob/v1.20260713.1/src/src/batteries/specialists/stt/transformers_js/adapter.ts#L99)

Instance availability probe (honours an injected `isAvailable`).

#### Returns

`boolean`

***

### preload()

```ts
preload(): Promise<void>;
```

Defined in: [src/batteries/specialists/stt/transformers\_js/adapter.ts:104](https://github.com/NHTIO/ADK/blob/v1.20260713.1/src/src/batteries/specialists/stt/transformers_js/adapter.ts#L104)

Eagerly loads (and caches) the pipeline so the first `transcribe` call is fast. Idempotent.

#### Returns

`Promise`<`void`>

***

### reset()

```ts
reset(): void;
```

Defined in: [src/batteries/specialists/stt/transformers\_js/adapter.ts:109](https://github.com/NHTIO/ADK/blob/v1.20260713.1/src/src/batteries/specialists/stt/transformers_js/adapter.ts#L109)

Drops the cached pipeline and in-flight load so the next call reloads.

#### Returns

`void`

***

### transcribe()

```ts
transcribe(input: SpecialistAudioInput, opts?: TranscribeOptions): Promise<TranscribeResult>;
```

Defined in: [src/batteries/specialists/stt/transformers\_js/adapter.ts:222](https://github.com/NHTIO/ADK/blob/v1.20260713.1/src/src/batteries/specialists/stt/transformers_js/adapter.ts#L222)

Transcribes an audio clip.

#### Parameters

| Parameter | Type                                                                                  | Description                                                                                                                                                                                           |
| --------- | ------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `input`   | [`SpecialistAudioInput`](../specialists/_shared/type-aliases/SpecialistAudioInput.md) | The audio input, in any [@nhtio/adk/batteries/specialists/\_shared!SpecialistAudioInput](../specialists/_shared/type-aliases/SpecialistAudioInput.md) form (pre-decoded PCM or an encoded container). |
| `opts?`   | [`TranscribeOptions`](../interfaces/TranscribeOptions.md)                             | Per-call transcription options (language / translate / timestamps).                                                                                                                                   |

#### Returns

`Promise`<[`TranscribeResult`](../interfaces/TranscribeResult.md)>

The recognized text, plus per-segment timing when `opts.timestamps` was set.

#### Throws

[@nhtio/adk/batteries!E\_TRANSFORMERS\_JS\_STT\_ENGINE\_ERROR](../variables/E_TRANSFORMERS_JS_STT_ENGINE_ERROR.md) when the pipeline fails to
load or the transcription call fails.

***

### isAvailable()

```ts
static isAvailable(): boolean;
```

Defined in: [src/batteries/specialists/stt/transformers\_js/adapter.ts:85](https://github.com/NHTIO/ADK/blob/v1.20260713.1/src/src/batteries/specialists/stt/transformers_js/adapter.ts#L85)

Whether this battery is available. transformers.js is environment-neutral (Node + browser), so
this is `true` whenever the runtime can import the peer — there is no WebGPU requirement.

#### Returns

`boolean`
