@storyteller-platform/ghost-story 0.1.7 → 0.1.9
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/dist/api/APIOptions.d.cts +7 -3
- package/dist/api/APIOptions.d.ts +7 -3
- package/dist/api/Recognition.d.cts +77 -8
- package/dist/api/Recognition.d.ts +77 -8
- package/dist/audio/AudioConverter.d.cts +3 -5
- package/dist/audio/AudioConverter.d.ts +3 -5
- package/dist/audio/AudioFormat.d.cts +92 -8
- package/dist/audio/AudioFormat.d.ts +92 -8
- package/dist/audio/AudioSource.d.cts +34 -8
- package/dist/audio/AudioSource.d.ts +34 -8
- package/dist/audio/index.d.cts +3 -5
- package/dist/audio/index.d.ts +3 -5
- package/dist/cli/bin.cjs +11 -10
- package/dist/cli/bin.js +3 -1
- package/dist/cli/config.cjs +12 -133
- package/dist/cli/config.d.cts +2 -12
- package/dist/cli/config.d.ts +2 -12
- package/dist/cli/config.js +6 -113
- package/dist/cli/install.cjs +3 -2
- package/dist/cli/install.d.cts +1 -2
- package/dist/cli/install.d.ts +1 -2
- package/dist/cli/install.js +3 -1
- package/dist/cli/whisper-server.d.cts +1 -2
- package/dist/cli/whisper-server.d.ts +1 -2
- package/dist/constants.cjs +250 -0
- package/dist/constants.d.cts +18 -0
- package/dist/constants.d.ts +18 -0
- package/dist/constants.js +217 -0
- package/dist/convert.d.cts +2 -8
- package/dist/convert.d.ts +2 -8
- package/dist/index.cjs +0 -11
- package/dist/index.d.cts +8 -2
- package/dist/index.d.ts +8 -2
- package/dist/index.js +0 -10
- package/dist/recognition/AmazonTranscribeSTT.d.cts +3 -4
- package/dist/recognition/AmazonTranscribeSTT.d.ts +3 -4
- package/dist/recognition/AzureCognitiveServicesSTT.d.cts +3 -4
- package/dist/recognition/AzureCognitiveServicesSTT.d.ts +3 -4
- package/dist/recognition/DeepgramSTT.d.cts +3 -3
- package/dist/recognition/DeepgramSTT.d.ts +3 -3
- package/dist/recognition/GoogleCloudSTT.d.cts +3 -4
- package/dist/recognition/GoogleCloudSTT.d.ts +3 -4
- package/dist/recognition/OpenAICloudSTT.d.cts +28 -6
- package/dist/recognition/OpenAICloudSTT.d.ts +28 -6
- package/dist/recognition/WhisperCppSTT.cjs +0 -103
- package/dist/recognition/WhisperCppSTT.d.cts +36 -6
- package/dist/recognition/WhisperCppSTT.d.ts +36 -6
- package/dist/recognition/WhisperCppSTT.js +0 -102
- package/dist/recognition/WhisperServerSTT.d.cts +26 -6
- package/dist/recognition/WhisperServerSTT.d.ts +26 -6
- package/package.json +9 -1
- package/dist/AudioFormat-BJuNZJlT.d.ts +0 -260
- package/dist/AudioFormat-CKxAQAj2.d.cts +0 -260
|
@@ -1,11 +1,15 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { RecognitionOptions } from './Recognition.cjs';
|
|
2
2
|
import 'node:fs';
|
|
3
3
|
import 'node:stream';
|
|
4
|
+
import '../audio/AudioFormat.cjs';
|
|
5
|
+
import '../constants.cjs';
|
|
6
|
+
import '../audio/AudioSource.cjs';
|
|
4
7
|
import '../config.cjs';
|
|
8
|
+
import '../recognition/OpenAICloudSTT.cjs';
|
|
5
9
|
import '../utilities/Timeline.cjs';
|
|
6
10
|
import '../utilities/Timing.cjs';
|
|
7
|
-
import '../
|
|
8
|
-
import '
|
|
11
|
+
import '../recognition/WhisperCppSTT.cjs';
|
|
12
|
+
import '../recognition/WhisperServerSTT.cjs';
|
|
9
13
|
|
|
10
14
|
interface APIOptions {
|
|
11
15
|
RecognitionOptions: RecognitionOptions;
|
package/dist/api/APIOptions.d.ts
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { RecognitionOptions } from './Recognition.js';
|
|
2
2
|
import 'node:fs';
|
|
3
3
|
import 'node:stream';
|
|
4
|
+
import '../audio/AudioFormat.js';
|
|
5
|
+
import '../constants.js';
|
|
6
|
+
import '../audio/AudioSource.js';
|
|
4
7
|
import '../config.js';
|
|
8
|
+
import '../recognition/OpenAICloudSTT.js';
|
|
5
9
|
import '../utilities/Timeline.js';
|
|
6
10
|
import '../utilities/Timing.js';
|
|
7
|
-
import '../
|
|
8
|
-
import '
|
|
11
|
+
import '../recognition/WhisperCppSTT.js';
|
|
12
|
+
import '../recognition/WhisperServerSTT.js';
|
|
9
13
|
|
|
10
14
|
interface APIOptions {
|
|
11
15
|
RecognitionOptions: RecognitionOptions;
|
|
@@ -1,8 +1,77 @@
|
|
|
1
|
-
import 'node:fs';
|
|
2
|
-
import 'node:stream';
|
|
3
|
-
|
|
4
|
-
import '../
|
|
5
|
-
import '../
|
|
6
|
-
import '../
|
|
7
|
-
import '../
|
|
8
|
-
import '
|
|
1
|
+
import { ReadStream } from 'node:fs';
|
|
2
|
+
import { Readable } from 'node:stream';
|
|
3
|
+
import { AudioFormat } from '../audio/AudioFormat.cjs';
|
|
4
|
+
import { AudioSource } from '../audio/AudioSource.cjs';
|
|
5
|
+
import { ConversionMode } from '../config.cjs';
|
|
6
|
+
import { RecognitionEngine } from '../constants.cjs';
|
|
7
|
+
import { OpenAICloudSTTOptions } from '../recognition/OpenAICloudSTT.cjs';
|
|
8
|
+
import { WhisperCppOptions } from '../recognition/WhisperCppSTT.cjs';
|
|
9
|
+
import { WhisperServerOptions } from '../recognition/WhisperServerSTT.cjs';
|
|
10
|
+
import { Timeline } from '../utilities/Timeline.cjs';
|
|
11
|
+
import { TimingSummary } from '../utilities/Timing.cjs';
|
|
12
|
+
|
|
13
|
+
type AudioInput = Readable | ReadStream | string | AudioSource;
|
|
14
|
+
type Audio = AudioInput;
|
|
15
|
+
declare function recognize(input: AudioInput, options: RecognitionOptions): Promise<RecognitionResult>;
|
|
16
|
+
interface RecognitionResult {
|
|
17
|
+
transcript: string;
|
|
18
|
+
timeline: Timeline;
|
|
19
|
+
language: string;
|
|
20
|
+
timing: TimingSummary;
|
|
21
|
+
}
|
|
22
|
+
interface BaseRecognitionOptions {
|
|
23
|
+
language: string;
|
|
24
|
+
signal?: AbortSignal | null | undefined;
|
|
25
|
+
inputFormat?: AudioFormat;
|
|
26
|
+
conversionMode?: ConversionMode | undefined;
|
|
27
|
+
}
|
|
28
|
+
type RecognitionOptions = (BaseRecognitionOptions & {
|
|
29
|
+
engine: "whisper.cpp";
|
|
30
|
+
options: WhisperCppOptions;
|
|
31
|
+
}) | (BaseRecognitionOptions & {
|
|
32
|
+
engine: "whisper-server";
|
|
33
|
+
options: WhisperServerOptions;
|
|
34
|
+
}) | (BaseRecognitionOptions & {
|
|
35
|
+
engine: "openai-cloud";
|
|
36
|
+
options: OpenAICloudSTTOptions;
|
|
37
|
+
}) | (BaseRecognitionOptions & {
|
|
38
|
+
engine: "google-cloud";
|
|
39
|
+
options: {
|
|
40
|
+
apiKey: string;
|
|
41
|
+
alternativeLanguageCodes?: string[];
|
|
42
|
+
profanityFilter?: boolean;
|
|
43
|
+
autoPunctuation?: boolean;
|
|
44
|
+
useEnhancedModel?: boolean;
|
|
45
|
+
};
|
|
46
|
+
}) | (BaseRecognitionOptions & {
|
|
47
|
+
engine: "microsoft-azure";
|
|
48
|
+
options: {
|
|
49
|
+
subscriptionKey: string;
|
|
50
|
+
serviceRegion: string;
|
|
51
|
+
};
|
|
52
|
+
}) | (BaseRecognitionOptions & {
|
|
53
|
+
engine: "amazon-transcribe";
|
|
54
|
+
options: {
|
|
55
|
+
region: string;
|
|
56
|
+
accessKeyId: string;
|
|
57
|
+
secretAccessKey: string;
|
|
58
|
+
bucketName: string;
|
|
59
|
+
};
|
|
60
|
+
}) | (BaseRecognitionOptions & {
|
|
61
|
+
engine: "deepgram";
|
|
62
|
+
options: {
|
|
63
|
+
apiKey: string;
|
|
64
|
+
model: string;
|
|
65
|
+
punctuate: boolean;
|
|
66
|
+
};
|
|
67
|
+
});
|
|
68
|
+
declare const recognitionEngines: {
|
|
69
|
+
id: RecognitionEngine;
|
|
70
|
+
name: string;
|
|
71
|
+
description: string;
|
|
72
|
+
type: "local" | "cloud" | "server";
|
|
73
|
+
acceptsFormats: AudioFormat[];
|
|
74
|
+
preferredFormat: AudioFormat;
|
|
75
|
+
}[];
|
|
76
|
+
|
|
77
|
+
export { type Audio, type AudioInput, type RecognitionOptions, type RecognitionResult, recognitionEngines, recognize };
|
|
@@ -1,8 +1,77 @@
|
|
|
1
|
-
import 'node:fs';
|
|
2
|
-
import 'node:stream';
|
|
3
|
-
|
|
4
|
-
import '../
|
|
5
|
-
import '../
|
|
6
|
-
import '../
|
|
7
|
-
import '../
|
|
8
|
-
import '
|
|
1
|
+
import { ReadStream } from 'node:fs';
|
|
2
|
+
import { Readable } from 'node:stream';
|
|
3
|
+
import { AudioFormat } from '../audio/AudioFormat.js';
|
|
4
|
+
import { AudioSource } from '../audio/AudioSource.js';
|
|
5
|
+
import { ConversionMode } from '../config.js';
|
|
6
|
+
import { RecognitionEngine } from '../constants.js';
|
|
7
|
+
import { OpenAICloudSTTOptions } from '../recognition/OpenAICloudSTT.js';
|
|
8
|
+
import { WhisperCppOptions } from '../recognition/WhisperCppSTT.js';
|
|
9
|
+
import { WhisperServerOptions } from '../recognition/WhisperServerSTT.js';
|
|
10
|
+
import { Timeline } from '../utilities/Timeline.js';
|
|
11
|
+
import { TimingSummary } from '../utilities/Timing.js';
|
|
12
|
+
|
|
13
|
+
type AudioInput = Readable | ReadStream | string | AudioSource;
|
|
14
|
+
type Audio = AudioInput;
|
|
15
|
+
declare function recognize(input: AudioInput, options: RecognitionOptions): Promise<RecognitionResult>;
|
|
16
|
+
interface RecognitionResult {
|
|
17
|
+
transcript: string;
|
|
18
|
+
timeline: Timeline;
|
|
19
|
+
language: string;
|
|
20
|
+
timing: TimingSummary;
|
|
21
|
+
}
|
|
22
|
+
interface BaseRecognitionOptions {
|
|
23
|
+
language: string;
|
|
24
|
+
signal?: AbortSignal | null | undefined;
|
|
25
|
+
inputFormat?: AudioFormat;
|
|
26
|
+
conversionMode?: ConversionMode | undefined;
|
|
27
|
+
}
|
|
28
|
+
type RecognitionOptions = (BaseRecognitionOptions & {
|
|
29
|
+
engine: "whisper.cpp";
|
|
30
|
+
options: WhisperCppOptions;
|
|
31
|
+
}) | (BaseRecognitionOptions & {
|
|
32
|
+
engine: "whisper-server";
|
|
33
|
+
options: WhisperServerOptions;
|
|
34
|
+
}) | (BaseRecognitionOptions & {
|
|
35
|
+
engine: "openai-cloud";
|
|
36
|
+
options: OpenAICloudSTTOptions;
|
|
37
|
+
}) | (BaseRecognitionOptions & {
|
|
38
|
+
engine: "google-cloud";
|
|
39
|
+
options: {
|
|
40
|
+
apiKey: string;
|
|
41
|
+
alternativeLanguageCodes?: string[];
|
|
42
|
+
profanityFilter?: boolean;
|
|
43
|
+
autoPunctuation?: boolean;
|
|
44
|
+
useEnhancedModel?: boolean;
|
|
45
|
+
};
|
|
46
|
+
}) | (BaseRecognitionOptions & {
|
|
47
|
+
engine: "microsoft-azure";
|
|
48
|
+
options: {
|
|
49
|
+
subscriptionKey: string;
|
|
50
|
+
serviceRegion: string;
|
|
51
|
+
};
|
|
52
|
+
}) | (BaseRecognitionOptions & {
|
|
53
|
+
engine: "amazon-transcribe";
|
|
54
|
+
options: {
|
|
55
|
+
region: string;
|
|
56
|
+
accessKeyId: string;
|
|
57
|
+
secretAccessKey: string;
|
|
58
|
+
bucketName: string;
|
|
59
|
+
};
|
|
60
|
+
}) | (BaseRecognitionOptions & {
|
|
61
|
+
engine: "deepgram";
|
|
62
|
+
options: {
|
|
63
|
+
apiKey: string;
|
|
64
|
+
model: string;
|
|
65
|
+
punctuate: boolean;
|
|
66
|
+
};
|
|
67
|
+
});
|
|
68
|
+
declare const recognitionEngines: {
|
|
69
|
+
id: RecognitionEngine;
|
|
70
|
+
name: string;
|
|
71
|
+
description: string;
|
|
72
|
+
type: "local" | "cloud" | "server";
|
|
73
|
+
acceptsFormats: AudioFormat[];
|
|
74
|
+
preferredFormat: AudioFormat;
|
|
75
|
+
}[];
|
|
76
|
+
|
|
77
|
+
export { type Audio, type AudioInput, type RecognitionOptions, type RecognitionResult, recognitionEngines, recognize };
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AudioFormat } from './AudioFormat.cjs';
|
|
2
|
+
import { AudioSource } from './AudioSource.cjs';
|
|
2
3
|
import { Readable } from 'node:stream';
|
|
3
4
|
import { ConversionMode } from '../config.cjs';
|
|
5
|
+
import { RecognitionEngine } from '../constants.cjs';
|
|
4
6
|
import 'node:fs';
|
|
5
|
-
import '../utilities/Timeline.cjs';
|
|
6
|
-
import '../utilities/Timing.cjs';
|
|
7
|
-
import '../cli/config.cjs';
|
|
8
|
-
import 'zod';
|
|
9
7
|
|
|
10
8
|
interface ConversionOptions {
|
|
11
9
|
targetFormat: AudioFormat;
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AudioFormat } from './AudioFormat.js';
|
|
2
|
+
import { AudioSource } from './AudioSource.js';
|
|
2
3
|
import { Readable } from 'node:stream';
|
|
3
4
|
import { ConversionMode } from '../config.js';
|
|
5
|
+
import { RecognitionEngine } from '../constants.js';
|
|
4
6
|
import 'node:fs';
|
|
5
|
-
import '../utilities/Timeline.js';
|
|
6
|
-
import '../utilities/Timing.js';
|
|
7
|
-
import '../cli/config.js';
|
|
8
|
-
import 'zod';
|
|
9
7
|
|
|
10
8
|
interface ConversionOptions {
|
|
11
9
|
targetFormat: AudioFormat;
|
|
@@ -1,8 +1,92 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import { RECOGNITION_ENGINES } from '../constants.cjs';
|
|
2
|
+
|
|
3
|
+
type AudioFormat = "unknown" | "wav" | "flac" | "opus" | "ogg" | "mp3" | "webm" | "m4a" | "aac" | "pcm" | "mp4";
|
|
4
|
+
type RecognitionEngine = (typeof RECOGNITION_ENGINES)[number];
|
|
5
|
+
type AudioEncoding = "pcm_s16le" | "flac" | "opus" | "mp3" | "aac";
|
|
6
|
+
interface AudioFormatInfo {
|
|
7
|
+
format: AudioFormat;
|
|
8
|
+
sampleRate?: number;
|
|
9
|
+
channels?: number;
|
|
10
|
+
bitDepth?: number;
|
|
11
|
+
}
|
|
12
|
+
declare function formatFromExtension(filepath: string): AudioFormat | null;
|
|
13
|
+
declare function formatToExtension(format: AudioFormat): string;
|
|
14
|
+
interface ServiceCapabilities {
|
|
15
|
+
acceptsFormats: AudioFormat[];
|
|
16
|
+
preferredFormat: AudioFormat;
|
|
17
|
+
requiresFile: boolean;
|
|
18
|
+
supportsStreaming: boolean;
|
|
19
|
+
requiresBase64: boolean;
|
|
20
|
+
maxSampleRate?: number;
|
|
21
|
+
preferredSampleRate?: number;
|
|
22
|
+
preferredChannels?: number;
|
|
23
|
+
}
|
|
24
|
+
declare const serviceCapabilities: {
|
|
25
|
+
readonly "whisper.cpp": {
|
|
26
|
+
readonly acceptsFormats: ["wav", "flac", "ogg", "mp3"];
|
|
27
|
+
readonly preferredFormat: "wav";
|
|
28
|
+
readonly requiresFile: true;
|
|
29
|
+
readonly supportsStreaming: false;
|
|
30
|
+
readonly requiresBase64: false;
|
|
31
|
+
readonly preferredSampleRate: 16000;
|
|
32
|
+
readonly preferredChannels: 1;
|
|
33
|
+
};
|
|
34
|
+
readonly "whisper-server": {
|
|
35
|
+
readonly acceptsFormats: ["wav"];
|
|
36
|
+
readonly preferredFormat: "wav";
|
|
37
|
+
readonly requiresFile: true;
|
|
38
|
+
readonly supportsStreaming: false;
|
|
39
|
+
readonly requiresBase64: false;
|
|
40
|
+
readonly preferredSampleRate: 16000;
|
|
41
|
+
readonly preferredChannels: 1;
|
|
42
|
+
};
|
|
43
|
+
readonly "openai-cloud": {
|
|
44
|
+
readonly acceptsFormats: ["wav", "flac", "mp3", "m4a", "ogg", "webm", "mp4"];
|
|
45
|
+
readonly preferredFormat: "wav";
|
|
46
|
+
readonly requiresFile: false;
|
|
47
|
+
readonly preferredSampleRate: 16000;
|
|
48
|
+
readonly preferredChannels: 1;
|
|
49
|
+
readonly supportsStreaming: true;
|
|
50
|
+
readonly requiresBase64: false;
|
|
51
|
+
};
|
|
52
|
+
readonly "google-cloud": {
|
|
53
|
+
readonly acceptsFormats: ["wav", "flac", "mp3", "ogg", "opus", "webm"];
|
|
54
|
+
readonly preferredFormat: "flac";
|
|
55
|
+
readonly requiresFile: false;
|
|
56
|
+
readonly supportsStreaming: false;
|
|
57
|
+
readonly requiresBase64: true;
|
|
58
|
+
readonly preferredSampleRate: 16000;
|
|
59
|
+
readonly preferredChannels: 1;
|
|
60
|
+
};
|
|
61
|
+
readonly "microsoft-azure": {
|
|
62
|
+
readonly acceptsFormats: ["wav"];
|
|
63
|
+
readonly preferredFormat: "wav";
|
|
64
|
+
readonly requiresFile: false;
|
|
65
|
+
readonly supportsStreaming: true;
|
|
66
|
+
readonly requiresBase64: false;
|
|
67
|
+
readonly preferredSampleRate: 16000;
|
|
68
|
+
readonly preferredChannels: 1;
|
|
69
|
+
};
|
|
70
|
+
readonly "amazon-transcribe": {
|
|
71
|
+
readonly acceptsFormats: ["flac", "opus", "ogg"];
|
|
72
|
+
readonly preferredFormat: "flac";
|
|
73
|
+
readonly requiresFile: false;
|
|
74
|
+
readonly supportsStreaming: true;
|
|
75
|
+
readonly requiresBase64: false;
|
|
76
|
+
readonly preferredSampleRate: 16000;
|
|
77
|
+
readonly preferredChannels: 1;
|
|
78
|
+
};
|
|
79
|
+
readonly deepgram: {
|
|
80
|
+
readonly acceptsFormats: ["wav", "flac", "mp3", "opus", "ogg", "webm", "m4a"];
|
|
81
|
+
readonly preferredFormat: "wav";
|
|
82
|
+
readonly preferredSampleRate: 16000;
|
|
83
|
+
readonly preferredChannels: 1;
|
|
84
|
+
readonly requiresFile: false;
|
|
85
|
+
readonly supportsStreaming: true;
|
|
86
|
+
readonly requiresBase64: false;
|
|
87
|
+
};
|
|
88
|
+
};
|
|
89
|
+
declare function needsConversion(inputFormat: AudioFormat, service: RecognitionEngine): boolean;
|
|
90
|
+
declare function getTargetFormat(inputFormat: AudioFormat, service: RecognitionEngine): AudioFormat;
|
|
91
|
+
|
|
92
|
+
export { type AudioEncoding, type AudioFormat, type AudioFormatInfo, type RecognitionEngine, type ServiceCapabilities, formatFromExtension, formatToExtension, getTargetFormat, needsConversion, serviceCapabilities };
|
|
@@ -1,8 +1,92 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import { RECOGNITION_ENGINES } from '../constants.js';
|
|
2
|
+
|
|
3
|
+
type AudioFormat = "unknown" | "wav" | "flac" | "opus" | "ogg" | "mp3" | "webm" | "m4a" | "aac" | "pcm" | "mp4";
|
|
4
|
+
type RecognitionEngine = (typeof RECOGNITION_ENGINES)[number];
|
|
5
|
+
type AudioEncoding = "pcm_s16le" | "flac" | "opus" | "mp3" | "aac";
|
|
6
|
+
interface AudioFormatInfo {
|
|
7
|
+
format: AudioFormat;
|
|
8
|
+
sampleRate?: number;
|
|
9
|
+
channels?: number;
|
|
10
|
+
bitDepth?: number;
|
|
11
|
+
}
|
|
12
|
+
declare function formatFromExtension(filepath: string): AudioFormat | null;
|
|
13
|
+
declare function formatToExtension(format: AudioFormat): string;
|
|
14
|
+
interface ServiceCapabilities {
|
|
15
|
+
acceptsFormats: AudioFormat[];
|
|
16
|
+
preferredFormat: AudioFormat;
|
|
17
|
+
requiresFile: boolean;
|
|
18
|
+
supportsStreaming: boolean;
|
|
19
|
+
requiresBase64: boolean;
|
|
20
|
+
maxSampleRate?: number;
|
|
21
|
+
preferredSampleRate?: number;
|
|
22
|
+
preferredChannels?: number;
|
|
23
|
+
}
|
|
24
|
+
declare const serviceCapabilities: {
|
|
25
|
+
readonly "whisper.cpp": {
|
|
26
|
+
readonly acceptsFormats: ["wav", "flac", "ogg", "mp3"];
|
|
27
|
+
readonly preferredFormat: "wav";
|
|
28
|
+
readonly requiresFile: true;
|
|
29
|
+
readonly supportsStreaming: false;
|
|
30
|
+
readonly requiresBase64: false;
|
|
31
|
+
readonly preferredSampleRate: 16000;
|
|
32
|
+
readonly preferredChannels: 1;
|
|
33
|
+
};
|
|
34
|
+
readonly "whisper-server": {
|
|
35
|
+
readonly acceptsFormats: ["wav"];
|
|
36
|
+
readonly preferredFormat: "wav";
|
|
37
|
+
readonly requiresFile: true;
|
|
38
|
+
readonly supportsStreaming: false;
|
|
39
|
+
readonly requiresBase64: false;
|
|
40
|
+
readonly preferredSampleRate: 16000;
|
|
41
|
+
readonly preferredChannels: 1;
|
|
42
|
+
};
|
|
43
|
+
readonly "openai-cloud": {
|
|
44
|
+
readonly acceptsFormats: ["wav", "flac", "mp3", "m4a", "ogg", "webm", "mp4"];
|
|
45
|
+
readonly preferredFormat: "wav";
|
|
46
|
+
readonly requiresFile: false;
|
|
47
|
+
readonly preferredSampleRate: 16000;
|
|
48
|
+
readonly preferredChannels: 1;
|
|
49
|
+
readonly supportsStreaming: true;
|
|
50
|
+
readonly requiresBase64: false;
|
|
51
|
+
};
|
|
52
|
+
readonly "google-cloud": {
|
|
53
|
+
readonly acceptsFormats: ["wav", "flac", "mp3", "ogg", "opus", "webm"];
|
|
54
|
+
readonly preferredFormat: "flac";
|
|
55
|
+
readonly requiresFile: false;
|
|
56
|
+
readonly supportsStreaming: false;
|
|
57
|
+
readonly requiresBase64: true;
|
|
58
|
+
readonly preferredSampleRate: 16000;
|
|
59
|
+
readonly preferredChannels: 1;
|
|
60
|
+
};
|
|
61
|
+
readonly "microsoft-azure": {
|
|
62
|
+
readonly acceptsFormats: ["wav"];
|
|
63
|
+
readonly preferredFormat: "wav";
|
|
64
|
+
readonly requiresFile: false;
|
|
65
|
+
readonly supportsStreaming: true;
|
|
66
|
+
readonly requiresBase64: false;
|
|
67
|
+
readonly preferredSampleRate: 16000;
|
|
68
|
+
readonly preferredChannels: 1;
|
|
69
|
+
};
|
|
70
|
+
readonly "amazon-transcribe": {
|
|
71
|
+
readonly acceptsFormats: ["flac", "opus", "ogg"];
|
|
72
|
+
readonly preferredFormat: "flac";
|
|
73
|
+
readonly requiresFile: false;
|
|
74
|
+
readonly supportsStreaming: true;
|
|
75
|
+
readonly requiresBase64: false;
|
|
76
|
+
readonly preferredSampleRate: 16000;
|
|
77
|
+
readonly preferredChannels: 1;
|
|
78
|
+
};
|
|
79
|
+
readonly deepgram: {
|
|
80
|
+
readonly acceptsFormats: ["wav", "flac", "mp3", "opus", "ogg", "webm", "m4a"];
|
|
81
|
+
readonly preferredFormat: "wav";
|
|
82
|
+
readonly preferredSampleRate: 16000;
|
|
83
|
+
readonly preferredChannels: 1;
|
|
84
|
+
readonly requiresFile: false;
|
|
85
|
+
readonly supportsStreaming: true;
|
|
86
|
+
readonly requiresBase64: false;
|
|
87
|
+
};
|
|
88
|
+
};
|
|
89
|
+
declare function needsConversion(inputFormat: AudioFormat, service: RecognitionEngine): boolean;
|
|
90
|
+
declare function getTargetFormat(inputFormat: AudioFormat, service: RecognitionEngine): AudioFormat;
|
|
91
|
+
|
|
92
|
+
export { type AudioEncoding, type AudioFormat, type AudioFormatInfo, type RecognitionEngine, type ServiceCapabilities, formatFromExtension, formatToExtension, getTargetFormat, needsConversion, serviceCapabilities };
|
|
@@ -1,8 +1,34 @@
|
|
|
1
|
-
import 'node:fs';
|
|
2
|
-
import 'node:stream';
|
|
3
|
-
|
|
4
|
-
import '../
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import { ReadStream } from 'node:fs';
|
|
2
|
+
import { Readable } from 'node:stream';
|
|
3
|
+
import { AudioFormat, AudioFormatInfo } from './AudioFormat.cjs';
|
|
4
|
+
import '../constants.cjs';
|
|
5
|
+
|
|
6
|
+
type RawAudioInput = Readable | ReadStream | string;
|
|
7
|
+
interface AudioSourceFromFile {
|
|
8
|
+
type: "file";
|
|
9
|
+
path: string;
|
|
10
|
+
format: AudioFormat;
|
|
11
|
+
}
|
|
12
|
+
interface AudioSourceFromStream {
|
|
13
|
+
type: "stream";
|
|
14
|
+
stream: Readable | ReadStream;
|
|
15
|
+
format: AudioFormat;
|
|
16
|
+
}
|
|
17
|
+
interface AudioSourceFromBuffer {
|
|
18
|
+
type: "buffer";
|
|
19
|
+
buffer: Buffer;
|
|
20
|
+
format: AudioFormat;
|
|
21
|
+
}
|
|
22
|
+
type AudioSource = AudioSourceFromFile | AudioSourceFromStream | AudioSourceFromBuffer;
|
|
23
|
+
declare function audioSourceFromFile(path: string, format?: AudioFormat): AudioSourceFromFile;
|
|
24
|
+
declare function audioSourceFromStream(stream: Readable | ReadStream, format: AudioFormat): AudioSourceFromStream;
|
|
25
|
+
declare function audioSourceFromBuffer(buffer: Buffer, format: AudioFormat): AudioSourceFromBuffer;
|
|
26
|
+
declare function normalizeToAudioSource(input: RawAudioInput, format?: AudioFormat): AudioSource;
|
|
27
|
+
declare function isAudioSource(input: unknown): input is AudioSource;
|
|
28
|
+
declare function toReadStream(source: AudioSource): Readable | ReadStream;
|
|
29
|
+
declare function toBuffer(source: AudioSource): Promise<Buffer>;
|
|
30
|
+
declare function toFilePath(source: AudioSource): string | null;
|
|
31
|
+
declare function getFormat(source: AudioSource): AudioFormat;
|
|
32
|
+
declare function getFormatInfo(source: AudioSource): AudioFormatInfo;
|
|
33
|
+
|
|
34
|
+
export { type AudioSource, type AudioSourceFromBuffer, type AudioSourceFromFile, type AudioSourceFromStream, type RawAudioInput, audioSourceFromBuffer, audioSourceFromFile, audioSourceFromStream, getFormat, getFormatInfo, isAudioSource, normalizeToAudioSource, toBuffer, toFilePath, toReadStream };
|
|
@@ -1,8 +1,34 @@
|
|
|
1
|
-
import 'node:fs';
|
|
2
|
-
import 'node:stream';
|
|
3
|
-
|
|
4
|
-
import '../
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import { ReadStream } from 'node:fs';
|
|
2
|
+
import { Readable } from 'node:stream';
|
|
3
|
+
import { AudioFormat, AudioFormatInfo } from './AudioFormat.js';
|
|
4
|
+
import '../constants.js';
|
|
5
|
+
|
|
6
|
+
type RawAudioInput = Readable | ReadStream | string;
|
|
7
|
+
interface AudioSourceFromFile {
|
|
8
|
+
type: "file";
|
|
9
|
+
path: string;
|
|
10
|
+
format: AudioFormat;
|
|
11
|
+
}
|
|
12
|
+
interface AudioSourceFromStream {
|
|
13
|
+
type: "stream";
|
|
14
|
+
stream: Readable | ReadStream;
|
|
15
|
+
format: AudioFormat;
|
|
16
|
+
}
|
|
17
|
+
interface AudioSourceFromBuffer {
|
|
18
|
+
type: "buffer";
|
|
19
|
+
buffer: Buffer;
|
|
20
|
+
format: AudioFormat;
|
|
21
|
+
}
|
|
22
|
+
type AudioSource = AudioSourceFromFile | AudioSourceFromStream | AudioSourceFromBuffer;
|
|
23
|
+
declare function audioSourceFromFile(path: string, format?: AudioFormat): AudioSourceFromFile;
|
|
24
|
+
declare function audioSourceFromStream(stream: Readable | ReadStream, format: AudioFormat): AudioSourceFromStream;
|
|
25
|
+
declare function audioSourceFromBuffer(buffer: Buffer, format: AudioFormat): AudioSourceFromBuffer;
|
|
26
|
+
declare function normalizeToAudioSource(input: RawAudioInput, format?: AudioFormat): AudioSource;
|
|
27
|
+
declare function isAudioSource(input: unknown): input is AudioSource;
|
|
28
|
+
declare function toReadStream(source: AudioSource): Readable | ReadStream;
|
|
29
|
+
declare function toBuffer(source: AudioSource): Promise<Buffer>;
|
|
30
|
+
declare function toFilePath(source: AudioSource): string | null;
|
|
31
|
+
declare function getFormat(source: AudioSource): AudioFormat;
|
|
32
|
+
declare function getFormatInfo(source: AudioSource): AudioFormatInfo;
|
|
33
|
+
|
|
34
|
+
export { type AudioSource, type AudioSourceFromBuffer, type AudioSourceFromFile, type AudioSourceFromStream, type RawAudioInput, audioSourceFromBuffer, audioSourceFromFile, audioSourceFromStream, getFormat, getFormatInfo, isAudioSource, normalizeToAudioSource, toBuffer, toFilePath, toReadStream };
|
package/dist/audio/index.d.cts
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { AudioEncoding, AudioFormat, AudioFormatInfo, ServiceCapabilities, formatFromExtension, formatToExtension, getTargetFormat, needsConversion, serviceCapabilities } from './AudioFormat.cjs';
|
|
2
|
+
export { AudioSource, AudioSourceFromBuffer, AudioSourceFromFile, AudioSourceFromStream, RawAudioInput, audioSourceFromBuffer, audioSourceFromFile, audioSourceFromStream, getFormat, getFormatInfo, isAudioSource, normalizeToAudioSource, toBuffer, toFilePath, toReadStream } from './AudioSource.cjs';
|
|
2
3
|
export { ConversionOptions, PrepareForServiceOptions, PreparedAudio, StreamForUploadOptions, StreamForUploadResult, convertToBuffer, convertToFile, convertToStream, createStreamForUpload, createStreamingConversion, getAudioDuration, prepareForService, prepareWavForService } from './AudioConverter.cjs';
|
|
4
|
+
import '../constants.cjs';
|
|
3
5
|
import 'node:fs';
|
|
4
6
|
import 'node:stream';
|
|
5
7
|
import '../config.cjs';
|
|
6
|
-
import '../utilities/Timeline.cjs';
|
|
7
|
-
import '../utilities/Timing.cjs';
|
|
8
|
-
import '../cli/config.cjs';
|
|
9
|
-
import 'zod';
|
package/dist/audio/index.d.ts
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { AudioEncoding, AudioFormat, AudioFormatInfo, ServiceCapabilities, formatFromExtension, formatToExtension, getTargetFormat, needsConversion, serviceCapabilities } from './AudioFormat.js';
|
|
2
|
+
export { AudioSource, AudioSourceFromBuffer, AudioSourceFromFile, AudioSourceFromStream, RawAudioInput, audioSourceFromBuffer, audioSourceFromFile, audioSourceFromStream, getFormat, getFormatInfo, isAudioSource, normalizeToAudioSource, toBuffer, toFilePath, toReadStream } from './AudioSource.js';
|
|
2
3
|
export { ConversionOptions, PrepareForServiceOptions, PreparedAudio, StreamForUploadOptions, StreamForUploadResult, convertToBuffer, convertToFile, convertToStream, createStreamForUpload, createStreamingConversion, getAudioDuration, prepareForService, prepareWavForService } from './AudioConverter.js';
|
|
4
|
+
import '../constants.js';
|
|
3
5
|
import 'node:fs';
|
|
4
6
|
import 'node:stream';
|
|
5
7
|
import '../config.js';
|
|
6
|
-
import '../utilities/Timeline.js';
|
|
7
|
-
import '../utilities/Timing.js';
|
|
8
|
-
import '../cli/config.js';
|
|
9
|
-
import 'zod';
|
package/dist/cli/bin.cjs
CHANGED
|
@@ -26,12 +26,13 @@ var import_zli = require("@robingenz/zli");
|
|
|
26
26
|
var import_cli_progress = require("cli-progress");
|
|
27
27
|
var import_fs_extra = require("fs-extra");
|
|
28
28
|
var import_zod = require("zod");
|
|
29
|
+
var import_constants = require("../constants.cjs");
|
|
29
30
|
var import_config = require("./config.cjs");
|
|
30
31
|
var import_install = require("./install.cjs");
|
|
31
32
|
var import_whisper_server = require("./whisper-server.cjs");
|
|
32
|
-
const recognitionEngineSchema = import_zod.z.enum(
|
|
33
|
-
const whisperModelSchema = import_zod.z.enum(
|
|
34
|
-
const buildVariantSchema = import_zod.z.enum(
|
|
33
|
+
const recognitionEngineSchema = import_zod.z.enum(import_constants.RECOGNITION_ENGINES);
|
|
34
|
+
const whisperModelSchema = import_zod.z.enum(import_constants.WHISPER_MODELS);
|
|
35
|
+
const buildVariantSchema = import_zod.z.enum(import_constants.BUILD_VARIANTS);
|
|
35
36
|
function isInstallTarget(value) {
|
|
36
37
|
return ["binary", "model", "vad", "all"].includes(value);
|
|
37
38
|
}
|
|
@@ -67,7 +68,7 @@ Usage:
|
|
|
67
68
|
if (target === "binary") {
|
|
68
69
|
console.log("Available binary variants:");
|
|
69
70
|
const compatible = (0, import_config.getCompatibleVariants)();
|
|
70
|
-
for (const variant of
|
|
71
|
+
for (const variant of import_constants.BUILD_VARIANTS) {
|
|
71
72
|
const isCompatible = compatible.includes(variant);
|
|
72
73
|
const marker = isCompatible ? "(compatible)" : "";
|
|
73
74
|
console.log(` ${variant} ${marker}`);
|
|
@@ -80,7 +81,7 @@ Usage:
|
|
|
80
81
|
}
|
|
81
82
|
if (target === "model") {
|
|
82
83
|
console.log("Available whisper models:");
|
|
83
|
-
for (const model of
|
|
84
|
+
for (const model of import_constants.WHISPER_MODELS) {
|
|
84
85
|
console.log(` ${model}`);
|
|
85
86
|
}
|
|
86
87
|
return;
|
|
@@ -104,7 +105,7 @@ Usage:
|
|
|
104
105
|
"Model name required. Usage: ghost-story install model <model>"
|
|
105
106
|
);
|
|
106
107
|
console.error("\nAvailable models:");
|
|
107
|
-
for (const m of
|
|
108
|
+
for (const m of import_constants.WHISPER_MODELS) {
|
|
108
109
|
console.log(` ${m}`);
|
|
109
110
|
}
|
|
110
111
|
process.exit(1);
|
|
@@ -112,7 +113,7 @@ Usage:
|
|
|
112
113
|
if (!(0, import_config.isValidModel)(argument)) {
|
|
113
114
|
console.error(`Unknown model: ${argument}`);
|
|
114
115
|
console.error("\nAvailable models:");
|
|
115
|
-
for (const m of
|
|
116
|
+
for (const m of import_constants.WHISPER_MODELS) {
|
|
116
117
|
console.log(` ${m}`);
|
|
117
118
|
}
|
|
118
119
|
process.exit(1);
|
|
@@ -121,7 +122,7 @@ Usage:
|
|
|
121
122
|
}
|
|
122
123
|
if (target === "all") {
|
|
123
124
|
console.log("\nInstalling all whisper models...");
|
|
124
|
-
for (const m of
|
|
125
|
+
for (const m of import_constants.WHISPER_MODELS) {
|
|
125
126
|
await (0, import_install.installModel)({ model: m, force, printOutput: true });
|
|
126
127
|
}
|
|
127
128
|
}
|
|
@@ -344,8 +345,8 @@ VAD segments written to ${options.output}`);
|
|
|
344
345
|
const config = (0, import_zli.defineConfig)({
|
|
345
346
|
meta: {
|
|
346
347
|
name: "ghost-story",
|
|
347
|
-
version:
|
|
348
|
-
description: `Whisper.cpp management CLI (v${
|
|
348
|
+
version: import_constants.WHISPER_CPP_VERSION,
|
|
349
|
+
description: `Whisper.cpp management CLI (v${import_constants.WHISPER_CPP_VERSION})`
|
|
349
350
|
},
|
|
350
351
|
commands: {
|
|
351
352
|
install: installCommand,
|