@whisper-cpp-node/core 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,160 +1,316 @@
1
- # @whisper-cpp-node/core
2
-
3
- Node.js bindings for [whisper.cpp](https://github.com/ggerganov/whisper.cpp) - fast speech-to-text on Apple Silicon with Core ML and Metal support.
4
-
5
- ## Features
6
-
7
- - **Fast**: Native whisper.cpp performance with Metal GPU acceleration
8
- - **Core ML**: Optional Apple Neural Engine support for 3x+ speedup
9
- - **Streaming VAD**: Built-in Silero voice activity detection
10
- - **TypeScript**: Full type definitions included
11
- - **Self-contained**: No external dependencies, just install and use
12
-
13
- ## Requirements
14
-
15
- - macOS 13.3+ (Ventura or later)
16
- - Apple Silicon (M1/M2/M3/M4)
17
- - Node.js 18+
18
-
19
- ## Installation
20
-
21
- ```bash
22
- npm install @whisper-cpp-node/core
23
- # or
24
- pnpm add @whisper-cpp-node/core
25
- ```
26
-
27
- The platform-specific binary (`@whisper-cpp-node/darwin-arm64`) is automatically installed.
28
-
29
- ## Quick Start
30
-
31
- ```typescript
32
- import {
33
- createWhisperContext,
34
- transcribeAsync,
35
- } from "@whisper-cpp-node/core";
36
-
37
- // Create a context with your model
38
- const ctx = createWhisperContext({
39
- model: "./models/ggml-base.en.bin",
40
- use_gpu: true,
41
- });
42
-
43
- // Transcribe audio
44
- const result = await transcribeAsync(ctx, {
45
- fname_inp: "./audio.wav",
46
- language: "en",
47
- });
48
-
49
- console.log(result.segments);
50
-
51
- // Clean up
52
- ctx.free();
53
- ```
54
-
55
- ## API
56
-
57
- ### `createWhisperContext(options)`
58
-
59
- Create a persistent context for transcription.
60
-
61
- ```typescript
62
- interface WhisperContextOptions {
63
- model: string; // Path to GGML model file (required)
64
- use_gpu?: boolean; // Enable GPU acceleration (default: true)
65
- use_coreml?: boolean; // Enable Core ML on macOS (default: false)
66
- flash_attn?: boolean; // Enable Flash Attention (default: false)
67
- gpu_device?: number; // GPU device index (default: 0)
68
- dtw?: string; // DTW preset for word timestamps
69
- no_prints?: boolean; // Suppress log output (default: false)
70
- }
71
- ```
72
-
73
- ### `transcribeAsync(context, options)`
74
-
75
- Transcribe audio file (Promise-based).
76
-
77
- ```typescript
78
- interface TranscribeOptions {
79
- fname_inp: string; // Path to audio file (required)
80
- language?: string; // Language code (e.g., 'en', 'zh', 'auto')
81
- translate?: boolean; // Translate to English
82
- n_threads?: number; // Number of threads
83
- no_timestamps?: boolean; // Disable timestamps
84
- // ... see types.ts for full options
85
- }
86
-
87
- interface TranscribeResult {
88
- segments: Array<{
89
- start: string; // "HH:MM:SS,mmm"
90
- end: string;
91
- text: string;
92
- }>;
93
- }
94
- ```
95
-
96
- ### `createVadContext(options)`
97
-
98
- Create a voice activity detection context.
99
-
100
- ```typescript
101
- interface VadContextOptions {
102
- model: string; // Path to Silero VAD model
103
- threshold?: number; // Speech threshold (default: 0.5)
104
- n_threads?: number; // Number of threads (default: 1)
105
- no_prints?: boolean; // Suppress log output
106
- }
107
-
108
- // Usage
109
- const vad = createVadContext({
110
- model: "./models/ggml-silero-v6.2.0.bin",
111
- });
112
-
113
- const samples = new Float32Array(vad.getWindowSamples());
114
- // ... fill samples with 16kHz audio
115
- const probability = vad.process(samples);
116
-
117
- vad.free();
118
- ```
119
-
120
- ## Core ML Acceleration
121
-
122
- For 3x+ faster encoding on Apple Silicon:
123
-
124
- 1. Generate a Core ML model:
125
- ```bash
126
- pip install ane_transformers openai-whisper coremltools
127
- ./models/generate-coreml-model.sh base.en
128
- ```
129
-
130
- 2. Place it next to your GGML model:
131
- ```
132
- models/ggml-base.en.bin
133
- models/ggml-base.en-encoder.mlmodelc/
134
- ```
135
-
136
- 3. Enable Core ML:
137
- ```typescript
138
- const ctx = createWhisperContext({
139
- model: "./models/ggml-base.en.bin",
140
- use_coreml: true,
141
- });
142
- ```
143
-
144
- ## Models
145
-
146
- Download models from [Hugging Face](https://huggingface.co/ggerganov/whisper.cpp):
147
-
148
- ```bash
149
- # Base English model (~150MB)
150
- curl -L -o models/ggml-base.en.bin \
151
- https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-base.en.bin
152
-
153
- # Large v3 Turbo quantized (~500MB)
154
- curl -L -o models/ggml-large-v3-turbo-q4_0.bin \
155
- https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-large-v3-turbo-q4_0.bin
156
- ```
157
-
158
- ## License
159
-
160
- MIT
1
+ # @whisper-cpp-node/core
2
+
3
+ Node.js bindings for [whisper.cpp](https://github.com/ggerganov/whisper.cpp) - fast speech-to-text with GPU acceleration.
4
+
5
+ ## Features
6
+
7
+ - **Fast**: Native whisper.cpp performance with GPU acceleration
8
+ - **Cross-platform**: macOS (Metal), Windows (Vulkan)
9
+ - **Core ML**: Optional Apple Neural Engine support for 3x+ speedup (macOS)
10
+ - **OpenVINO**: Optional Intel CPU/GPU encoder acceleration (Windows/Linux)
11
+ - **Streaming VAD**: Built-in Silero voice activity detection
12
+ - **TypeScript**: Full type definitions included
13
+ - **Self-contained**: No external dependencies, just install and use
14
+
15
+ ## Requirements
16
+
17
+ **macOS:**
18
+ - macOS 13.3+ (Ventura or later)
19
+ - Apple Silicon (M1/M2/M3/M4)
20
+ - Node.js 18+
21
+
22
+ **Windows:**
23
+ - Windows 10/11 (x64)
24
+ - Node.js 18+
25
+ - Vulkan-capable GPU (optional, for GPU acceleration)
26
+
27
+ ## Installation
28
+
29
+ ```bash
30
+ npm install @whisper-cpp-node/core
31
+ # or
32
+ pnpm add @whisper-cpp-node/core
33
+ ```
34
+
35
+ The platform-specific binary is automatically installed:
36
+ - macOS ARM64: `@whisper-cpp-node/darwin-arm64`
37
+ - Windows x64: `@whisper-cpp-node/win32-x64`
38
+
39
+ ## Quick Start
40
+
41
+ ### File-based transcription
42
+
43
+ ```typescript
44
+ import {
45
+ createWhisperContext,
46
+ transcribeAsync,
47
+ } from "@whisper-cpp-node/core";
48
+
49
+ // Create a context with your model
50
+ const ctx = createWhisperContext({
51
+ model: "./models/ggml-base.en.bin",
52
+ use_gpu: true,
53
+ });
54
+
55
+ // Transcribe audio file
56
+ const result = await transcribeAsync(ctx, {
57
+ fname_inp: "./audio.wav",
58
+ language: "en",
59
+ });
60
+
61
+ // Result: { segments: [["00:00:00,000", "00:00:02,500", " Hello world"], ...] }
62
+ for (const [start, end, text] of result.segments) {
63
+ console.log(`[${start} --> ${end}]${text}`);
64
+ }
65
+
66
+ // Clean up
67
+ ctx.free();
68
+ ```
69
+
70
+ ### Buffer-based transcription
71
+
72
+ ```typescript
73
+ import {
74
+ createWhisperContext,
75
+ transcribeAsync,
76
+ } from "@whisper-cpp-node/core";
77
+
78
+ const ctx = createWhisperContext({
79
+ model: "./models/ggml-base.en.bin",
80
+ use_gpu: true,
81
+ });
82
+
83
+ // Pass raw PCM audio (16kHz, mono, float32)
84
+ const pcmData = new Float32Array(/* your audio samples */);
85
+ const result = await transcribeAsync(ctx, {
86
+ pcmf32: pcmData,
87
+ language: "en",
88
+ });
89
+
90
+ for (const [start, end, text] of result.segments) {
91
+ console.log(`[${start} --> ${end}]${text}`);
92
+ }
93
+
94
+ ctx.free();
95
+ ```
96
+
97
+ ## API
98
+
99
+ ### `createWhisperContext(options)`
100
+
101
+ Create a persistent context for transcription.
102
+
103
+ ```typescript
104
+ interface WhisperContextOptions {
105
+ model: string; // Path to GGML model file (required)
106
+ use_gpu?: boolean; // Enable GPU acceleration (default: true)
107
+ // Uses Metal on macOS, Vulkan on Windows
108
+ use_coreml?: boolean; // Enable Core ML on macOS (default: false)
109
+ use_openvino?: boolean; // Enable OpenVINO encoder on Intel (default: false)
110
+ openvino_device?: string; // OpenVINO device: 'CPU', 'GPU', 'NPU' (default: 'CPU')
111
+ openvino_model_path?: string; // Path to OpenVINO encoder model (auto-derived)
112
+ openvino_cache_dir?: string; // Cache dir for compiled OpenVINO models
113
+ flash_attn?: boolean; // Enable Flash Attention (default: false)
114
+ gpu_device?: number; // GPU device index (default: 0)
115
+ dtw?: string; // DTW preset for word timestamps
116
+ no_prints?: boolean; // Suppress log output (default: false)
117
+ }
118
+ ```
119
+
120
+ ### `transcribeAsync(context, options)`
121
+
122
+ Transcribe audio (Promise-based). Accepts either a file path or PCM buffer.
123
+
124
+ ```typescript
125
+ // File input
126
+ interface TranscribeOptionsFile {
127
+ fname_inp: string; // Path to audio file
128
+ // ... common options
129
+ }
130
+
131
+ // Buffer input
132
+ interface TranscribeOptionsBuffer {
133
+ pcmf32: Float32Array; // Raw PCM (16kHz, mono, float32, -1.0 to 1.0)
134
+ // ... common options
135
+ }
136
+
137
+ // Common options (partial list - see types.ts for full options)
138
+ interface TranscribeOptionsBase {
139
+ // Language
140
+ language?: string; // Language code ('en', 'zh', 'auto')
141
+ translate?: boolean; // Translate to English
142
+ detect_language?: boolean; // Auto-detect language
143
+
144
+ // Threading
145
+ n_threads?: number; // CPU threads (default: 4)
146
+ n_processors?: number; // Parallel processors
147
+
148
+ // Audio processing
149
+ offset_ms?: number; // Start offset in ms
150
+ duration_ms?: number; // Duration to process (0 = all)
151
+
152
+ // Output control
153
+ no_timestamps?: boolean; // Disable timestamps
154
+ max_len?: number; // Max segment length (chars)
155
+ max_tokens?: number; // Max tokens per segment
156
+ split_on_word?: boolean; // Split on word boundaries
157
+ token_timestamps?: boolean; // Include token-level timestamps
158
+
159
+ // Sampling
160
+ temperature?: number; // Sampling temperature (0.0 = greedy)
161
+ beam_size?: number; // Beam search size (-1 = greedy)
162
+ best_of?: number; // Best-of-N sampling
163
+
164
+ // Thresholds
165
+ entropy_thold?: number; // Entropy threshold
166
+ logprob_thold?: number; // Log probability threshold
167
+ no_speech_thold?: number; // No-speech probability threshold
168
+
169
+ // Context
170
+ prompt?: string; // Initial prompt text
171
+ no_context?: boolean; // Don't use previous context
172
+
173
+ // VAD preprocessing
174
+ vad?: boolean; // Enable VAD preprocessing
175
+ vad_model?: string; // Path to VAD model
176
+ vad_threshold?: number; // VAD threshold (0.0-1.0)
177
+ vad_min_speech_duration_ms?: number;
178
+ vad_min_silence_duration_ms?: number;
179
+ vad_speech_pad_ms?: number;
180
+
181
+ // Callbacks
182
+ progress_callback?: (progress: number) => void;
183
+ }
184
+
185
+ // Result
186
+ interface TranscribeResult {
187
+ segments: TranscriptSegment[];
188
+ }
189
+
190
+ // Segment is a tuple: [start, end, text]
191
+ type TranscriptSegment = [string, string, string];
192
+ // Example: ["00:00:00,000", "00:00:02,500", " Hello world"]
193
+ ```
194
+
195
+ ### `createVadContext(options)`
196
+
197
+ Create a voice activity detection context for streaming audio.
198
+
199
+ ```typescript
200
+ interface VadContextOptions {
201
+ model: string; // Path to Silero VAD model
202
+ threshold?: number; // Speech threshold (default: 0.5)
203
+ n_threads?: number; // Number of threads (default: 1)
204
+ no_prints?: boolean; // Suppress log output
205
+ }
206
+
207
+ interface VadContext {
208
+ getWindowSamples(): number; // Returns 512 (32ms at 16kHz)
209
+ getSampleRate(): number; // Returns 16000
210
+ process(samples: Float32Array): number; // Returns probability 0.0-1.0
211
+ reset(): void; // Reset LSTM state
212
+ free(): void; // Release resources
213
+ }
214
+ ```
215
+
216
+ #### VAD Example
217
+
218
+ ```typescript
219
+ import { createVadContext } from "@whisper-cpp-node/core";
220
+
221
+ const vad = createVadContext({
222
+ model: "./models/ggml-silero-v6.2.0.bin",
223
+ threshold: 0.5,
224
+ });
225
+
226
+ const windowSize = vad.getWindowSamples(); // 512 samples
227
+
228
+ // Process audio in 32ms chunks
229
+ function processAudioChunk(samples: Float32Array) {
230
+ const probability = vad.process(samples);
231
+ if (probability >= 0.5) {
232
+ console.log("Speech detected!", probability);
233
+ }
234
+ }
235
+
236
+ // Reset when starting new audio stream
237
+ vad.reset();
238
+
239
+ // Clean up when done
240
+ vad.free();
241
+ ```
242
+
243
+ ## Core ML Acceleration (macOS)
244
+
245
+ For 3x+ faster encoding on Apple Silicon:
246
+
247
+ 1. Generate a Core ML model:
248
+ ```bash
249
+ pip install ane_transformers openai-whisper coremltools
250
+ ./models/generate-coreml-model.sh base.en
251
+ ```
252
+
253
+ 2. Place it next to your GGML model:
254
+ ```
255
+ models/ggml-base.en.bin
256
+ models/ggml-base.en-encoder.mlmodelc/
257
+ ```
258
+
259
+ 3. Enable Core ML:
260
+ ```typescript
261
+ const ctx = createWhisperContext({
262
+ model: "./models/ggml-base.en.bin",
263
+ use_coreml: true,
264
+ });
265
+ ```
266
+
267
+ ## OpenVINO Acceleration (Intel)
268
+
269
+ For faster encoder inference on Intel CPUs and GPUs (requires build with OpenVINO support):
270
+
271
+ 1. Install OpenVINO and convert the model:
272
+ ```bash
273
+ pip install openvino openvino-dev
274
+ python models/convert-whisper-to-openvino.py --model base.en
275
+ ```
276
+
277
+ 2. The OpenVINO model files are placed next to your GGML model:
278
+ ```
279
+ models/ggml-base.en.bin
280
+ models/ggml-base.en-encoder-openvino.xml
281
+ models/ggml-base.en-encoder-openvino.bin
282
+ ```
283
+
284
+ 3. Enable OpenVINO:
285
+ ```typescript
286
+ const ctx = createWhisperContext({
287
+ model: "./models/ggml-base.en.bin",
288
+ use_openvino: true,
289
+ openvino_device: "CPU", // or "GPU" for Intel iGPU
290
+ openvino_cache_dir: "./openvino_cache", // optional, speeds up init
291
+ });
292
+ ```
293
+
294
+ **Note:** OpenVINO support requires the addon to be built with `-DADDON_OPENVINO=ON`.
295
+
296
+ ## Models
297
+
298
+ Download models from [Hugging Face](https://huggingface.co/ggerganov/whisper.cpp):
299
+
300
+ ```bash
301
+ # Base English model (~150MB)
302
+ curl -L -o models/ggml-base.en.bin \
303
+ https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-base.en.bin
304
+
305
+ # Large v3 Turbo quantized (~500MB)
306
+ curl -L -o models/ggml-large-v3-turbo-q4_0.bin \
307
+ https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-large-v3-turbo-q4_0.bin
308
+
309
+ # Silero VAD model (for streaming VAD)
310
+ curl -L -o models/ggml-silero-v6.2.0.bin \
311
+ https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-silero-v6.2.0.bin
312
+ ```
313
+
314
+ ## License
315
+
316
+ MIT
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { WhisperContext, WhisperContextOptions, VadContext, VadContextOptions, TranscribeOptions, TranscribeResult } from "./types";
2
- export type { WhisperContextOptions, VadContextOptions, TranscribeOptions, TranscribeResult, TranscriptSegment, WhisperContext, VadContext, WhisperContextConstructor, VadContextConstructor, } from "./types";
2
+ export type { WhisperContextOptions, VadContextOptions, TranscribeOptions, TranscribeOptionsBase, TranscribeOptionsFile, TranscribeOptionsBuffer, TranscribeResult, TranscriptSegment, WhisperContext, VadContext, WhisperContextConstructor, VadContextConstructor, } from "./types";
3
3
  export declare const WhisperContextClass: import("./types").WhisperContextConstructor;
4
4
  export declare const VadContextClass: import("./types").VadContextConstructor;
5
5
  export declare const transcribe: (context: WhisperContext, options: TranscribeOptions, callback: import("./types").TranscribeCallback) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,cAAc,EACd,qBAAqB,EACrB,UAAU,EACV,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAGjB,YAAY,EACV,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,UAAU,EACV,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,SAAS,CAAC;AAMjB,eAAO,MAAM,mBAAmB,6CAAuB,CAAC;AACxD,eAAO,MAAM,eAAe,yCAAmB,CAAC;AAGhD,eAAO,MAAM,UAAU,+GAAmB,CAAC;AAG3C,eAAO,MAAM,eAAe,EAAkC,CAC5D,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,iBAAiB,KACvB,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAE/B;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,qBAAqB,GAC7B,cAAc,CAEhB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,UAAU,CAEvE;;;;;+BAhDU,cAAc,WACd,iBAAiB,KACvB,OAAO,CAAC,gBAAgB,CAAC;;;;AAiD9B,wBAOE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,cAAc,EACd,qBAAqB,EACrB,UAAU,EACV,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAGjB,YAAY,EACV,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,EACvB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,UAAU,EACV,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,SAAS,CAAC;AAMjB,eAAO,MAAM,mBAAmB,6CAAuB,CAAC;AACxD,eAAO,MAAM,eAAe,yCAAmB,CAAC;AAGhD,eAAO,MAAM,UAAU,+GAAmB,CAAC;AAG3C,eAAO,MAAM,eAAe,EAAkC,CAC5D,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,iBAAiB,KACvB,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAE/B;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,qBAAqB,GAC7B,cAAc,CAEhB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,UAAU,CAEvE;;;;;+BAhDU,cAAc,WACd,iBAAiB,KACvB,OAAO,CAAC,gBAAgB,CAAC;;;;AAiD9B,wBAOE"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AA6DA,oDAIC;AAkBD,4CAEC;AArFD,+BAAiC;AACjC,qCAA2C;AAwB3C,oBAAoB;AACpB,MAAM,KAAK,GAAiB,IAAA,wBAAe,GAAE,CAAC;AAE9C,oEAAoE;AACvD,QAAA,mBAAmB,GAAG,KAAK,CAAC,cAAc,CAAC;AAC3C,QAAA,eAAe,GAAG,KAAK,CAAC,UAAU,CAAC;AAEhD,qCAAqC;AACxB,QAAA,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;AAE3C,sCAAsC;AACzB,QAAA,eAAe,GAAG,IAAA,gBAAS,EAAC,KAAK,CAAC,UAAU,CAG3B,CAAC;AAE/B;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAgB,oBAAoB,CAClC,OAA8B;IAE9B,OAAO,IAAI,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;AAC3C,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,gBAAgB,CAAC,OAA0B;IACzD,OAAO,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC;AAED,wCAAwC;AACxC,kBAAe;IACb,cAAc,EAAE,KAAK,CAAC,cAAc;IACpC,UAAU,EAAE,KAAK,CAAC,UAAU;IAC5B,UAAU,EAAE,KAAK,CAAC,UAAU;IAC5B,eAAe,EAAf,uBAAe;IACf,oBAAoB;IACpB,gBAAgB;CACjB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAgEA,oDAIC;AAkBD,4CAEC;AAxFD,+BAAiC;AACjC,qCAA2C;AA2B3C,oBAAoB;AACpB,MAAM,KAAK,GAAiB,IAAA,wBAAe,GAAE,CAAC;AAE9C,oEAAoE;AACvD,QAAA,mBAAmB,GAAG,KAAK,CAAC,cAAc,CAAC;AAC3C,QAAA,eAAe,GAAG,KAAK,CAAC,UAAU,CAAC;AAEhD,qCAAqC;AACxB,QAAA,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;AAE3C,sCAAsC;AACzB,QAAA,eAAe,GAAG,IAAA,gBAAS,EAAC,KAAK,CAAC,UAAU,CAG3B,CAAC;AAE/B;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAgB,oBAAoB,CAClC,OAA8B;IAE9B,OAAO,IAAI,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;AAC3C,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,gBAAgB,CAAC,OAA0B;IACzD,OAAO,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC;AAED,wCAAwC;AACxC,kBAAe;IACb,cAAc,EAAE,KAAK,CAAC,cAAc;IACpC,UAAU,EAAE,KAAK,CAAC,UAAU;IAC5B,UAAU,EAAE,KAAK,CAAC,UAAU;IAC5B,eAAe,EAAf,uBAAe;IACf,oBAAoB;IACpB,gBAAgB;CACjB,CAAC"}
package/dist/loader.js CHANGED
@@ -9,10 +9,10 @@ const fs_1 = require("fs");
9
9
  */
10
10
  const SUPPORTED_PLATFORMS = {
11
11
  "darwin-arm64": "@whisper-cpp-node/darwin-arm64",
12
+ "win32-x64": "@whisper-cpp-node/win32-x64",
12
13
  // Future: add more platforms
13
14
  // "darwin-x64": "@whisper-cpp-node/darwin-x64",
14
15
  // "linux-x64": "@whisper-cpp-node/linux-x64",
15
- // "win32-x64": "@whisper-cpp-node/win32-x64",
16
16
  };
17
17
  /**
18
18
  * Get the platform key for current system
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":";;AAmEA,0CA4BC;AA/FD,2BAAoC;AACpC,+BAA4B;AAC5B,2BAAgC;AAGhC;;GAEG;AACH,MAAM,mBAAmB,GAA2B;IAClD,cAAc,EAAE,gCAAgC;IAChD,6BAA6B;IAC7B,gDAAgD;IAChD,8CAA8C;IAC9C,8CAA8C;CAC/C,CAAC;AAEF;;GAEG;AACH,SAAS,cAAc;IACrB,OAAO,GAAG,IAAA,aAAQ,GAAE,IAAI,IAAA,SAAI,GAAE,EAAE,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB;IACzB,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,WAAW,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAErD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9D,MAAM,IAAI,KAAK,CACb,yBAAyB,WAAW,IAAI;YACtC,wBAAwB,SAAS,EAAE,CACtC,CAAC;IACJ,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB;IACvB,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IAErC,4DAA4D;IAC5D,MAAM,aAAa,GAAG;QACpB,kDAAkD;QAClD,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,CAAC;QACxD,mEAAmE;QACnE,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,CAAC;KAC/D,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;QAC9B,IAAI,IAAA,eAAU,EAAC,CAAC,CAAC,EAAE,CAAC;YAClB,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe;IAC7B,MAAM,WAAW,GAAG,kBAAkB,EAAE,CAAC;IAEzC,wCAAwC;IACxC,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;IACzC,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,OAAO,CAAC,aAAa,CAAiB,CAAC;IAChD,CAAC;IAED,iCAAiC;IACjC,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,IAAA,WAAI,EAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC;QACtE,OAAO,OAAO,CAAC,UAAU,CAAiB,CAAC;IAC7C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,GAAG,GAAG,KAA8B,CAAC;QAE3C,IAAI,GAAG,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CACb,0CAA0C,WAAW,kBAAkB;gBACrE,4BAA4B,WAAW,IAAI;gBAC3C,mBAAmB,GAAG,CAAC,OAAO,EAAE,CACnC,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,KAAK,CACb,oCAAoC,WAAW,KAAK,GAAG,CAAC,OAAO,EAAE,CAClE,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":";;AAmEA,0CA4BC;AA/FD,2BAAoC;AACpC,+BAA4B;AAC5B,2BAAgC;AAGhC;;GAEG;AACH,MAAM,mBAAmB,GAA2B;IAClD,cAAc,EAAE,gCAAgC;IAChD,WAAW,EAAE,6BAA6B;IAC1C,6BAA6B;IAC7B,gDAAgD;IAChD,8CAA8C;CAC/C,CAAC;AAEF;;GAEG;AACH,SAAS,cAAc;IACrB,OAAO,GAAG,IAAA,aAAQ,GAAE,IAAI,IAAA,SAAI,GAAE,EAAE,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB;IACzB,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,WAAW,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAErD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9D,MAAM,IAAI,KAAK,CACb,yBAAyB,WAAW,IAAI;YACtC,wBAAwB,SAAS,EAAE,CACtC,CAAC;IACJ,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB;IACvB,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IAErC,4DAA4D;IAC5D,MAAM,aAAa,GAAG;QACpB,kDAAkD;QAClD,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,CAAC;QACxD,mEAAmE;QACnE,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,CAAC;KAC/D,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;QAC9B,IAAI,IAAA,eAAU,EAAC,CAAC,CAAC,EAAE,CAAC;YAClB,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe;IAC7B,MAAM,WAAW,GAAG,kBAAkB,EAAE,CAAC;IAEzC,wCAAwC;IACxC,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;IACzC,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,OAAO,CAAC,aAAa,CAAiB,CAAC;IAChD,CAAC;IAED,iCAAiC;IACjC,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,IAAA,WAAI,EAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC;QACtE,OAAO,OAAO,CAAC,UAAU,CAAiB,CAAC;IAC7C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,GAAG,GAAG,KAA8B,CAAC;QAE3C,IAAI,GAAG,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CACb,0CAA0C,WAAW,kBAAkB;gBACrE,4BAA4B,WAAW,IAAI;gBAC3C,mBAAmB,GAAG,CAAC,OAAO,EAAE,CACnC,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,KAAK,CACb,oCAAoC,WAAW,KAAK,GAAG,CAAC,OAAO,EAAE,CAClE,CAAC;IACJ,CAAC;AACH,CAAC"}
package/dist/types.d.ts CHANGED
@@ -12,54 +12,146 @@ export interface WhisperContextOptions {
12
12
  gpu_device?: number;
13
13
  /** Enable Core ML acceleration on macOS (default: false) */
14
14
  use_coreml?: boolean;
15
+ /**
16
+ * Enable OpenVINO encoder acceleration (Intel CPUs/GPUs, default: false)
17
+ * Requires build with -DADDON_OPENVINO=ON and OpenVINO runtime installed.
18
+ * The OpenVINO encoder model must exist alongside the GGML model
19
+ * (e.g., ggml-base.en-encoder-openvino.xml for ggml-base.en.bin)
20
+ */
21
+ use_openvino?: boolean;
22
+ /**
23
+ * Path to OpenVINO encoder model (optional)
24
+ * If not specified, derived from the GGML model path with "-encoder-openvino.xml" suffix
25
+ */
26
+ openvino_model_path?: string;
27
+ /**
28
+ * OpenVINO device to run encoder inference on (default: "CPU")
29
+ * Options: "CPU", "GPU", "NPU", etc.
30
+ */
31
+ openvino_device?: string;
32
+ /**
33
+ * OpenVINO cache directory for compiled models (optional)
34
+ * Can speed up init time, especially for GPU, by caching compiled 'blobs'
35
+ */
36
+ openvino_cache_dir?: string;
15
37
  /** DTW alignment preset for word-level timestamps (e.g., 'base.en', 'small', 'large.v3') */
16
38
  dtw?: string;
17
39
  /** Suppress whisper.cpp log output (default: false) */
18
40
  no_prints?: boolean;
19
41
  }
20
42
  /**
21
- * Options for transcription
43
+ * Base transcription options (shared between file and buffer input)
22
44
  */
23
- export interface TranscribeOptions {
24
- /** Path to the audio file */
25
- fname_inp: string;
45
+ export interface TranscribeOptionsBase {
26
46
  /** Language code (e.g., 'en', 'zh', 'auto') */
27
47
  language?: string;
28
48
  /** Translate to English */
29
49
  translate?: boolean;
50
+ /** Detect language automatically */
51
+ detect_language?: boolean;
30
52
  /** Number of threads to use */
31
53
  n_threads?: number;
32
- /** Number of processors */
54
+ /** Number of processors for parallel processing */
33
55
  n_processors?: number;
56
+ /** Start offset in milliseconds */
57
+ offset_ms?: number;
58
+ /** Duration to process in milliseconds (0 = all) */
59
+ duration_ms?: number;
60
+ /** Audio context size */
61
+ audio_ctx?: number;
34
62
  /** Disable timestamps in output */
35
63
  no_timestamps?: boolean;
36
- /** Detect language automatically */
37
- detect_language?: boolean;
38
64
  /** Single segment mode */
39
65
  single_segment?: boolean;
40
- /** Maximum segment length (0 = no limit) */
66
+ /** Maximum segment length in characters (0 = no limit) */
41
67
  max_len?: number;
42
68
  /** Maximum tokens per segment (0 = no limit) */
43
69
  max_tokens?: number;
44
70
  /** Maximum context size (-1 = default) */
45
71
  max_context?: number;
46
- /** Temperature for sampling */
72
+ /** Split segments on word boundaries */
73
+ split_on_word?: boolean;
74
+ /** Include token-level timestamps */
75
+ token_timestamps?: boolean;
76
+ /** Word timestamp threshold */
77
+ word_thold?: number;
78
+ /** Use comma in timestamp format (default: true) */
79
+ comma_in_time?: boolean;
80
+ /** Temperature for sampling (0.0 = greedy) */
47
81
  temperature?: number;
48
82
  /** Temperature increment for fallback */
49
83
  temperature_inc?: number;
50
- /** Best of N sampling */
84
+ /** Best of N sampling candidates */
51
85
  best_of?: number;
52
- /** Beam size (-1 = greedy) */
86
+ /** Beam size for beam search (-1 = greedy) */
53
87
  beam_size?: number;
54
- /** Entropy threshold */
88
+ /** Disable temperature fallback */
89
+ no_fallback?: boolean;
90
+ /** Entropy threshold for fallback */
55
91
  entropy_thold?: number;
56
92
  /** Log probability threshold */
57
93
  logprob_thold?: number;
58
- /** No speech threshold */
94
+ /** No speech probability threshold */
59
95
  no_speech_thold?: number;
60
- /** Initial prompt text */
96
+ /** Initial prompt text for context */
61
97
  prompt?: string;
98
+ /** Don't use previous context */
99
+ no_context?: boolean;
100
+ /** Suppress blank outputs */
101
+ suppress_blank?: boolean;
102
+ /** Suppress non-speech tokens */
103
+ suppress_nst?: boolean;
104
+ /** Enable speaker diarization */
105
+ diarize?: boolean;
106
+ /** Enable tinydiarize for speaker turn detection */
107
+ tinydiarize?: boolean;
108
+ /** Print special tokens */
109
+ print_special?: boolean;
110
+ /** Print progress */
111
+ print_progress?: boolean;
112
+ /** Print realtime output */
113
+ print_realtime?: boolean;
114
+ /** Print timestamps */
115
+ print_timestamps?: boolean;
116
+ /** Enable VAD preprocessing */
117
+ vad?: boolean;
118
+ /** Path to VAD model */
119
+ vad_model?: string;
120
+ /** VAD speech detection threshold (0.0-1.0) */
121
+ vad_threshold?: number;
122
+ /** Minimum speech duration in milliseconds */
123
+ vad_min_speech_duration_ms?: number;
124
+ /** Minimum silence duration in milliseconds */
125
+ vad_min_silence_duration_ms?: number;
126
+ /** Maximum speech duration in seconds */
127
+ vad_max_speech_duration_s?: number;
128
+ /** Speech padding in milliseconds */
129
+ vad_speech_pad_ms?: number;
130
+ /** VAD samples overlap ratio */
131
+ vad_samples_overlap?: number;
132
+ /** Progress callback function (progress: 0-100) */
133
+ progress_callback?: (progress: number) => void;
134
+ }
135
+ /**
136
+ * Transcription options with file input
137
+ */
138
+ export interface TranscribeOptionsFile extends TranscribeOptionsBase {
139
+ /** Path to the audio file */
140
+ fname_inp: string;
141
+ pcmf32?: never;
142
+ }
143
+ /**
144
+ * Transcription options with PCM buffer input
145
+ */
146
+ export interface TranscribeOptionsBuffer extends TranscribeOptionsBase {
147
+ /** Raw PCM audio samples (16kHz, mono, float32, values -1.0 to 1.0) */
148
+ pcmf32: Float32Array;
149
+ fname_inp?: never;
62
150
  }
151
+ /**
152
+ * Options for transcription - either file path or PCM buffer
153
+ */
154
+ export type TranscribeOptions = TranscribeOptionsFile | TranscribeOptionsBuffer;
63
155
  /**
64
156
  * Transcription result segment (tuple format)
65
157
  * [0]: Start time in format "HH:MM:SS,mmm"
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@whisper-cpp-node/core",
3
- "version": "0.1.1",
4
- "description": "Node.js bindings for whisper.cpp - fast speech-to-text on Apple Silicon",
3
+ "version": "0.2.0",
4
+ "description": "Node.js bindings for whisper.cpp - fast speech-to-text with GPU acceleration",
5
5
  "license": "MIT",
6
6
  "repository": {
7
7
  "type": "git",
@@ -21,7 +21,8 @@
21
21
  "dist"
22
22
  ],
23
23
  "optionalDependencies": {
24
- "@whisper-cpp-node/darwin-arm64": "0.1.0"
24
+ "@whisper-cpp-node/darwin-arm64": "0.1.1",
25
+ "@whisper-cpp-node/win32-x64": "0.2.0"
25
26
  },
26
27
  "devDependencies": {
27
28
  "@types/node": "^20.0.0",
@@ -39,7 +40,12 @@
39
40
  "asr",
40
41
  "apple-silicon",
41
42
  "coreml",
42
- "metal"
43
+ "metal",
44
+ "windows",
45
+ "vulkan",
46
+ "openvino",
47
+ "gpu",
48
+ "intel"
43
49
  ],
44
50
  "publishConfig": {
45
51
  "access": "public"