pyannote-cpp-node 0.1.0 → 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 +277 -582
- package/dist/Pipeline.d.ts +12 -0
- package/dist/Pipeline.d.ts.map +1 -0
- package/dist/Pipeline.js +48 -0
- package/dist/Pipeline.js.map +1 -0
- package/dist/PipelineSession.d.ts +18 -0
- package/dist/PipelineSession.d.ts.map +1 -0
- package/dist/PipelineSession.js +38 -0
- package/dist/PipelineSession.js.map +1 -0
- package/dist/binding.d.ts +9 -10
- package/dist/binding.d.ts.map +1 -1
- package/dist/binding.js +3 -3
- package/dist/binding.js.map +1 -1
- package/dist/index.d.ts +5 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +65 -10
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { PipelineSession } from './PipelineSession.js';
|
|
2
|
+
import type { ModelConfig, TranscriptionResult } from './types.js';
|
|
3
|
+
export declare class Pipeline {
|
|
4
|
+
private native;
|
|
5
|
+
private constructor();
|
|
6
|
+
static load(config: ModelConfig): Promise<Pipeline>;
|
|
7
|
+
transcribe(audio: Float32Array): Promise<TranscriptionResult>;
|
|
8
|
+
createSession(): PipelineSession;
|
|
9
|
+
close(): void;
|
|
10
|
+
get isClosed(): boolean;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=Pipeline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Pipeline.d.ts","sourceRoot":"","sources":["../src/Pipeline.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEnE,qBAAa,QAAQ;IACnB,OAAO,CAAC,MAAM,CAAsB;IAEpC,OAAO;WAIM,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC;IAiBnD,UAAU,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAOnE,aAAa,IAAI,eAAe;IAUhC,KAAK,IAAI,IAAI;IACb,IAAI,QAAQ,IAAI,OAAO,CAAiC;CACzD"}
|
package/dist/Pipeline.js
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { accessSync } from 'node:fs';
|
|
2
|
+
import { getBinding } from './binding.js';
|
|
3
|
+
import { PipelineSession } from './PipelineSession.js';
|
|
4
|
+
export class Pipeline {
|
|
5
|
+
native;
|
|
6
|
+
constructor(native) {
|
|
7
|
+
this.native = native;
|
|
8
|
+
}
|
|
9
|
+
static async load(config) {
|
|
10
|
+
const requiredPaths = [
|
|
11
|
+
config.segModelPath,
|
|
12
|
+
config.embModelPath,
|
|
13
|
+
config.pldaPath,
|
|
14
|
+
config.coremlPath,
|
|
15
|
+
config.segCoremlPath,
|
|
16
|
+
config.whisperModelPath,
|
|
17
|
+
];
|
|
18
|
+
for (const path of requiredPaths)
|
|
19
|
+
accessSync(path);
|
|
20
|
+
if (config.vadModelPath)
|
|
21
|
+
accessSync(config.vadModelPath);
|
|
22
|
+
const binding = getBinding();
|
|
23
|
+
const native = new binding.PipelineModel(config);
|
|
24
|
+
return new Pipeline(native);
|
|
25
|
+
}
|
|
26
|
+
async transcribe(audio) {
|
|
27
|
+
if (this.native.isClosed)
|
|
28
|
+
throw new Error('Pipeline is closed');
|
|
29
|
+
if (!(audio instanceof Float32Array))
|
|
30
|
+
throw new TypeError('Expected Float32Array');
|
|
31
|
+
if (audio.length === 0)
|
|
32
|
+
throw new Error('Audio must not be empty');
|
|
33
|
+
return this.native.transcribe(audio);
|
|
34
|
+
}
|
|
35
|
+
createSession() {
|
|
36
|
+
if (this.native.isClosed)
|
|
37
|
+
throw new Error('Pipeline is closed');
|
|
38
|
+
const session = new PipelineSession();
|
|
39
|
+
const nativeSession = this.native.createSession((segments, audio) => {
|
|
40
|
+
session._onNativeCallback(segments, audio);
|
|
41
|
+
});
|
|
42
|
+
session._setNative(nativeSession);
|
|
43
|
+
return session;
|
|
44
|
+
}
|
|
45
|
+
close() { this.native.close(); }
|
|
46
|
+
get isClosed() { return this.native.isClosed; }
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=Pipeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Pipeline.js","sourceRoot":"","sources":["../src/Pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,UAAU,EAA4B,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD,MAAM,OAAO,QAAQ;IACX,MAAM,CAAsB;IAEpC,YAAoB,MAA2B;QAC7C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAmB;QACnC,MAAM,aAAa,GAAG;YACpB,MAAM,CAAC,YAAY;YACnB,MAAM,CAAC,YAAY;YACnB,MAAM,CAAC,QAAQ;YACf,MAAM,CAAC,UAAU;YACjB,MAAM,CAAC,aAAa;YACpB,MAAM,CAAC,gBAAgB;SACxB,CAAC;QACF,KAAK,MAAM,IAAI,IAAI,aAAa;YAAE,UAAU,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,MAAM,CAAC,YAAY;YAAE,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAEzD,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACjD,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAmB;QAClC,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAChE,IAAI,CAAC,CAAC,KAAK,YAAY,YAAY,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,uBAAuB,CAAC,CAAC;QACnF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,aAAa;QACX,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAChE,MAAM,OAAO,GAAG,IAAI,eAAe,EAAE,CAAC;QACtC,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,QAAe,EAAE,KAAmB,EAAE,EAAE;YACvF,OAAO,CAAC,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAClC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,KAAW,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACtC,IAAI,QAAQ,KAAc,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;CACzD"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { EventEmitter } from 'node:events';
|
|
2
|
+
import type { NativePipelineSession } from './binding.js';
|
|
3
|
+
import type { AlignedSegment, TranscriptionResult } from './types.js';
|
|
4
|
+
export interface PipelineSessionEvents {
|
|
5
|
+
segments: [segments: AlignedSegment[], audio: Float32Array];
|
|
6
|
+
error: [error: Error];
|
|
7
|
+
}
|
|
8
|
+
export declare class PipelineSession extends EventEmitter {
|
|
9
|
+
private native;
|
|
10
|
+
constructor();
|
|
11
|
+
_setNative(native: NativePipelineSession): void;
|
|
12
|
+
_onNativeCallback(segments: any[], audio: Float32Array): void;
|
|
13
|
+
push(audio: Float32Array): Promise<boolean[]>;
|
|
14
|
+
finalize(): Promise<TranscriptionResult>;
|
|
15
|
+
close(): void;
|
|
16
|
+
get isClosed(): boolean;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=PipelineSession.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PipelineSession.d.ts","sourceRoot":"","sources":["../src/PipelineSession.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtE,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;IAC5D,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;CACvB;AAED,qBAAa,eAAgB,SAAQ,YAAY;IAC/C,OAAO,CAAC,MAAM,CAAsC;;IAMpD,UAAU,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI;IAI/C,iBAAiB,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI;IAKvD,IAAI,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAW7C,QAAQ,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAQ9C,KAAK,IAAI,IAAI;IAMb,IAAI,QAAQ,IAAI,OAAO,CAEtB;CACF"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { EventEmitter } from 'node:events';
|
|
2
|
+
export class PipelineSession extends EventEmitter {
|
|
3
|
+
native = null;
|
|
4
|
+
constructor() {
|
|
5
|
+
super();
|
|
6
|
+
}
|
|
7
|
+
_setNative(native) {
|
|
8
|
+
this.native = native;
|
|
9
|
+
}
|
|
10
|
+
_onNativeCallback(segments, audio) {
|
|
11
|
+
const typedSegments = segments;
|
|
12
|
+
this.emit('segments', typedSegments, audio);
|
|
13
|
+
}
|
|
14
|
+
async push(audio) {
|
|
15
|
+
if (!this.native || this.native.isClosed) {
|
|
16
|
+
throw new Error('Session is closed');
|
|
17
|
+
}
|
|
18
|
+
if (!(audio instanceof Float32Array)) {
|
|
19
|
+
throw new TypeError('Expected Float32Array');
|
|
20
|
+
}
|
|
21
|
+
return this.native.push(audio);
|
|
22
|
+
}
|
|
23
|
+
async finalize() {
|
|
24
|
+
if (!this.native || this.native.isClosed) {
|
|
25
|
+
throw new Error('Session is closed');
|
|
26
|
+
}
|
|
27
|
+
return this.native.finalize();
|
|
28
|
+
}
|
|
29
|
+
close() {
|
|
30
|
+
if (this.native) {
|
|
31
|
+
this.native.close();
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
get isClosed() {
|
|
35
|
+
return !this.native || this.native.isClosed;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=PipelineSession.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PipelineSession.js","sourceRoot":"","sources":["../src/PipelineSession.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAU3C,MAAM,OAAO,eAAgB,SAAQ,YAAY;IACvC,MAAM,GAAiC,IAAI,CAAC;IAEpD;QACE,KAAK,EAAE,CAAC;IACV,CAAC;IAED,UAAU,CAAC,MAA6B;QACtC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,iBAAiB,CAAC,QAAe,EAAE,KAAmB;QACpD,MAAM,aAAa,GAAqB,QAA4B,CAAC;QACrE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,KAAmB;QAC5B,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;QACD,IAAI,CAAC,CAAC,KAAK,YAAY,YAAY,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,SAAS,CAAC,uBAAuB,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;IAChC,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC9C,CAAC;CACF"}
|
package/dist/binding.d.ts
CHANGED
|
@@ -1,20 +1,19 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export interface
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import type { ModelConfig, TranscriptionResult } from './types.js';
|
|
2
|
+
export interface NativePipelineModel {
|
|
3
|
+
transcribe(audio: Float32Array): Promise<TranscriptionResult>;
|
|
4
|
+
createSession(callback: (segments: any[], audio: Float32Array) => void): NativePipelineSession;
|
|
5
5
|
close(): void;
|
|
6
6
|
isClosed: boolean;
|
|
7
7
|
}
|
|
8
|
-
export interface
|
|
9
|
-
push(audio: Float32Array): Promise<
|
|
10
|
-
|
|
11
|
-
finalize(): Promise<DiarizationResult>;
|
|
8
|
+
export interface NativePipelineSession {
|
|
9
|
+
push(audio: Float32Array): Promise<boolean[]>;
|
|
10
|
+
finalize(): Promise<TranscriptionResult>;
|
|
12
11
|
close(): void;
|
|
13
12
|
isClosed: boolean;
|
|
14
13
|
}
|
|
15
14
|
export interface NativeBinding {
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
PipelineModel: new (config: ModelConfig) => NativePipelineModel;
|
|
16
|
+
PipelineSession: new (...args: unknown[]) => NativePipelineSession;
|
|
18
17
|
}
|
|
19
18
|
export declare function getBinding(): NativeBinding;
|
|
20
19
|
//# sourceMappingURL=binding.d.ts.map
|
package/dist/binding.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binding.d.ts","sourceRoot":"","sources":["../src/binding.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"binding.d.ts","sourceRoot":"","sources":["../src/binding.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAInE,MAAM,WAAW,mBAAmB;IAClC,UAAU,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC9D,aAAa,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,qBAAqB,CAAC;IAC/F,KAAK,IAAI,IAAI,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAC9C,QAAQ,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACzC,KAAK,IAAI,IAAI,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,KAAK,MAAM,EAAE,WAAW,KAAK,mBAAmB,CAAC;IAChE,eAAe,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,qBAAqB,CAAC;CACpE;AAoCD,wBAAgB,UAAU,IAAI,aAAa,CAyB1C"}
|
package/dist/binding.js
CHANGED
|
@@ -18,8 +18,8 @@ function isNativeBinding(value) {
|
|
|
18
18
|
return false;
|
|
19
19
|
}
|
|
20
20
|
const candidate = value;
|
|
21
|
-
return (typeof candidate.
|
|
22
|
-
typeof candidate.
|
|
21
|
+
return (typeof candidate.PipelineModel === 'function' &&
|
|
22
|
+
typeof candidate.PipelineSession === 'function');
|
|
23
23
|
}
|
|
24
24
|
export function getBinding() {
|
|
25
25
|
if (cachedBinding !== null) {
|
|
@@ -35,7 +35,7 @@ export function getBinding() {
|
|
|
35
35
|
throw new Error(`Failed to load native module '${packageName}'. Ensure the platform package is installed. Original error: ${message}`);
|
|
36
36
|
}
|
|
37
37
|
if (!isNativeBinding(loaded)) {
|
|
38
|
-
throw new Error(`Invalid native module export from '${packageName}'. Expected
|
|
38
|
+
throw new Error(`Invalid native module export from '${packageName}'. Expected PipelineModel and PipelineSession constructors.`);
|
|
39
39
|
}
|
|
40
40
|
cachedBinding = loaded;
|
|
41
41
|
return cachedBinding;
|
package/dist/binding.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"binding.js","sourceRoot":"","sources":["../src/binding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAIvC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"binding.js","sourceRoot":"","sources":["../src/binding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAIvC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAqB/C,IAAI,aAAa,GAAyB,IAAI,CAAC;AAE/C,SAAS,cAAc;IACrB,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CACb,yBAAyB,OAAO,CAAC,QAAQ,oDAAoD,CAC9F,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC7B,OAAO,iCAAiC,CAAC;IAC3C,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QAC3B,OAAO,+BAA+B,CAAC;IACzC,CAAC;IAED,MAAM,IAAI,KAAK,CACb,sCAAsC,OAAO,CAAC,IAAI,8CAA8C,CACjG,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,SAAS,GAAG,KAAgC,CAAC;IACnD,OAAO,CACL,OAAO,SAAS,CAAC,aAAa,KAAK,UAAU;QAC7C,OAAO,SAAS,CAAC,eAAe,KAAK,UAAU,CAChD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;QAC3B,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IAErC,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,IAAI,KAAK,CACb,iCAAiC,WAAW,gEAAgE,OAAO,EAAE,CACtH,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,sCAAsC,WAAW,6DAA6D,CAC/G,CAAC;IACJ,CAAC;IAED,aAAa,GAAG,MAAM,CAAC;IACvB,OAAO,aAAa,CAAC;AACvB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
3
|
-
export type {
|
|
1
|
+
export { Pipeline } from './Pipeline.js';
|
|
2
|
+
export { PipelineSession } from './PipelineSession.js';
|
|
3
|
+
export type { AlignedSegment, AlignedWord, ModelConfig, TranscriptionResult, } from './types.js';
|
|
4
|
+
export type { NativePipelineModel, NativePipelineSession, NativeBinding, } from './binding.js';
|
|
5
|
+
export { getBinding } from './binding.js';
|
|
4
6
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EACV,cAAc,EACd,WAAW,EACX,WAAW,EACX,mBAAmB,GACpB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,mBAAmB,EACnB,qBAAqB,EACrB,aAAa,GACd,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
1
|
+
export { Pipeline } from './Pipeline.js';
|
|
2
|
+
export { PipelineSession } from './PipelineSession.js';
|
|
3
|
+
export { getBinding } from './binding.js';
|
|
3
4
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAYvD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,23 +1,78 @@
|
|
|
1
1
|
export interface ModelConfig {
|
|
2
|
+
/** Path to segmentation GGUF model */
|
|
2
3
|
segModelPath: string;
|
|
4
|
+
/** Path to embedding GGUF model */
|
|
3
5
|
embModelPath: string;
|
|
6
|
+
/** Path to PLDA GGUF model */
|
|
4
7
|
pldaPath: string;
|
|
8
|
+
/** Path to embedding CoreML .mlpackage directory */
|
|
5
9
|
coremlPath: string;
|
|
10
|
+
/** Path to segmentation CoreML .mlpackage directory */
|
|
6
11
|
segCoremlPath: string;
|
|
12
|
+
/** Path to Whisper GGUF model */
|
|
13
|
+
whisperModelPath: string;
|
|
14
|
+
/** Path to Silero VAD model (optional, enables silence compression) */
|
|
15
|
+
vadModelPath?: string;
|
|
16
|
+
/** Enable GPU acceleration (default: true) */
|
|
17
|
+
useGpu?: boolean;
|
|
18
|
+
/** Enable Flash Attention (default: true) */
|
|
19
|
+
flashAttn?: boolean;
|
|
20
|
+
/** GPU device index (default: 0) */
|
|
21
|
+
gpuDevice?: number;
|
|
22
|
+
/**
|
|
23
|
+
* Enable CoreML acceleration for Whisper encoder on macOS (default: false).
|
|
24
|
+
* The CoreML model must be placed next to the GGUF model with naming convention:
|
|
25
|
+
* e.g., ggml-base.en.bin -> ggml-base.en-encoder.mlmodelc/
|
|
26
|
+
*/
|
|
27
|
+
useCoreml?: boolean;
|
|
28
|
+
/** Suppress whisper.cpp log output (default: false) */
|
|
29
|
+
noPrints?: boolean;
|
|
30
|
+
/** Number of threads for Whisper inference (default: 4) */
|
|
31
|
+
nThreads?: number;
|
|
32
|
+
/** Language code (e.g., 'en', 'zh'). Omit for auto-detect. (default: 'en') */
|
|
33
|
+
language?: string;
|
|
34
|
+
/** Translate non-English speech to English (default: false) */
|
|
35
|
+
translate?: boolean;
|
|
36
|
+
/** Auto-detect spoken language. Overrides 'language' when true. (default: false) */
|
|
37
|
+
detectLanguage?: boolean;
|
|
38
|
+
/** Sampling temperature. 0.0 = greedy deterministic. (default: 0.0) */
|
|
39
|
+
temperature?: number;
|
|
40
|
+
/** Temperature increment for fallback retries (default: 0.2) */
|
|
41
|
+
temperatureInc?: number;
|
|
42
|
+
/** Disable temperature fallback. If true, temperatureInc is ignored. (default: false) */
|
|
43
|
+
noFallback?: boolean;
|
|
44
|
+
/** Beam search size. -1 uses greedy decoding. >1 enables beam search. (default: -1) */
|
|
45
|
+
beamSize?: number;
|
|
46
|
+
/** Best-of-N sampling candidates for greedy decoding (default: 5) */
|
|
47
|
+
bestOf?: number;
|
|
48
|
+
/** Entropy threshold for decoder fallback (default: 2.4) */
|
|
49
|
+
entropyThold?: number;
|
|
50
|
+
/** Log probability threshold for decoder fallback (default: -1.0) */
|
|
51
|
+
logprobThold?: number;
|
|
52
|
+
/** No-speech probability threshold (default: 0.6) */
|
|
53
|
+
noSpeechThold?: number;
|
|
54
|
+
/** Initial prompt text to condition the decoder (default: none) */
|
|
55
|
+
prompt?: string;
|
|
56
|
+
/** Don't use previous segment as context for next segment (default: true) */
|
|
57
|
+
noContext?: boolean;
|
|
58
|
+
/** Suppress blank outputs at the beginning of segments (default: true) */
|
|
59
|
+
suppressBlank?: boolean;
|
|
60
|
+
/** Suppress non-speech tokens (default: false) */
|
|
61
|
+
suppressNst?: boolean;
|
|
7
62
|
}
|
|
8
|
-
export interface
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
numFrames: number;
|
|
13
|
-
vad: Float32Array;
|
|
63
|
+
export interface AlignedWord {
|
|
64
|
+
text: string;
|
|
65
|
+
start: number;
|
|
66
|
+
end: number;
|
|
14
67
|
}
|
|
15
|
-
export interface
|
|
68
|
+
export interface AlignedSegment {
|
|
69
|
+
speaker: string;
|
|
16
70
|
start: number;
|
|
17
71
|
duration: number;
|
|
18
|
-
|
|
72
|
+
text: string;
|
|
73
|
+
words: AlignedWord[];
|
|
19
74
|
}
|
|
20
|
-
export interface
|
|
21
|
-
segments:
|
|
75
|
+
export interface TranscriptionResult {
|
|
76
|
+
segments: AlignedSegment[];
|
|
22
77
|
}
|
|
23
78
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAE1B,sCAAsC;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,mCAAmC;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,oDAAoD;IACpD,UAAU,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,aAAa,EAAE,MAAM,CAAC;IACtB,iCAAiC;IACjC,gBAAgB,EAAE,MAAM,CAAC;IAGzB,uEAAuE;IACvE,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,8CAA8C;IAC9C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oCAAoC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;IAGnB,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oFAAoF;IACpF,cAAc,CAAC,EAAE,OAAO,CAAC;IAGzB,uEAAuE;IACvE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gEAAgE;IAChE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yFAAyF;IACzF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,uFAAuF;IACvF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,4DAA4D;IAC5D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,0EAA0E;IAC1E,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,kDAAkD;IAClD,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pyannote-cpp-node",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
"access": "public"
|
|
18
18
|
},
|
|
19
19
|
"optionalDependencies": {
|
|
20
|
-
"@pyannote-cpp-node/darwin-arm64": "0.
|
|
21
|
-
"@pyannote-cpp-node/darwin-x64": "0.
|
|
20
|
+
"@pyannote-cpp-node/darwin-arm64": "0.2.0",
|
|
21
|
+
"@pyannote-cpp-node/darwin-x64": "0.2.0"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
24
|
"typescript": "^5.7.0"
|