@happyvertical/speech 0.96.0 → 0.97.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/AGENT.md +14 -1
- package/README.md +59 -2
- package/dist/adapters/openai-compatible-transcriber.d.ts +23 -0
- package/dist/adapters/openai-compatible-transcriber.d.ts.map +1 -0
- package/dist/adapters/studio-server.d.ts.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +581 -54
- package/dist/index.js.map +1 -1
- package/dist/shared/audio.d.ts +47 -0
- package/dist/shared/audio.d.ts.map +1 -0
- package/dist/shared/env.d.ts +70 -0
- package/dist/shared/env.d.ts.map +1 -0
- package/dist/shared/errors.d.ts +3 -0
- package/dist/shared/errors.d.ts.map +1 -1
- package/dist/shared/factory.d.ts +1 -4
- package/dist/shared/factory.d.ts.map +1 -1
- package/dist/shared/http.d.ts +29 -3
- package/dist/shared/http.d.ts.map +1 -1
- package/dist/shared/retry.d.ts +31 -0
- package/dist/shared/retry.d.ts.map +1 -0
- package/dist/shared/types.d.ts +65 -5
- package/dist/shared/types.d.ts.map +1 -1
- package/dist/shared/usage.d.ts +35 -0
- package/dist/shared/usage.d.ts.map +1 -0
- package/metadata.json +1 -0
- package/package.json +1 -1
package/dist/shared/types.d.ts
CHANGED
|
@@ -1,13 +1,24 @@
|
|
|
1
|
+
import { SpeechRetryOptions } from './retry.js';
|
|
2
|
+
import { SpeechUsage, SpeechUsageCallback } from './usage.js';
|
|
3
|
+
export type { SpeechRetryOptions } from './retry.js';
|
|
4
|
+
export type { SpeechOperation, SpeechUsage, SpeechUsageCallback, } from './usage.js';
|
|
1
5
|
export type SpeechAdapterType = 'studio-server' | 'qwen3-tts' | 'openai-compatible';
|
|
2
|
-
export type TranscriberType = 'studio-server';
|
|
6
|
+
export type TranscriberType = 'studio-server' | 'openai-compatible';
|
|
3
7
|
export type SpeechSynthesizerType = 'studio-server' | 'qwen3-tts' | 'openai-compatible';
|
|
4
8
|
export interface SpeechAdapterAvailability {
|
|
5
9
|
transcribers: TranscriberType[];
|
|
6
10
|
synthesizers: SpeechSynthesizerType[];
|
|
7
11
|
}
|
|
8
12
|
export type AudioBytes = ArrayBuffer | Uint8Array | Blob;
|
|
13
|
+
/**
|
|
14
|
+
* Raw audio accepted by transcribers. `Buffer` is a `Uint8Array` subclass.
|
|
15
|
+
* Streams are buffered (bounded by `maxBytes`) before upload.
|
|
16
|
+
*/
|
|
17
|
+
export type AudioSource = AudioBytes | ReadableStream<Uint8Array>;
|
|
9
18
|
export interface AudioInput {
|
|
10
|
-
data:
|
|
19
|
+
data: AudioSource;
|
|
20
|
+
/** MIME type, e.g. `audio/webm;codecs=opus`. Alias of `contentType`. */
|
|
21
|
+
mimeType?: string;
|
|
11
22
|
contentType?: string;
|
|
12
23
|
filename?: string;
|
|
13
24
|
sampleRate?: number;
|
|
@@ -37,15 +48,30 @@ export interface TranscriptResult {
|
|
|
37
48
|
provider?: string;
|
|
38
49
|
model?: string;
|
|
39
50
|
raw?: unknown;
|
|
51
|
+
/** Usage for billing/attribution, when the adapter reports it. */
|
|
52
|
+
usage?: SpeechUsage;
|
|
40
53
|
}
|
|
54
|
+
export type TranscriptionResponseFormat = 'json' | 'text' | 'verbose_json';
|
|
55
|
+
export type TimestampGranularity = 'word' | 'segment';
|
|
41
56
|
export interface TranscriptionRequest {
|
|
42
|
-
|
|
57
|
+
/** Audio wrapper, or a bare Blob/Buffer/Uint8Array/ArrayBuffer/ReadableStream. */
|
|
58
|
+
audio: AudioInput | AudioSource;
|
|
59
|
+
/** MIME type for bare audio sources; wins over `AudioInput` and Blob types. */
|
|
60
|
+
mimeType?: string;
|
|
43
61
|
signal?: AbortSignal;
|
|
44
62
|
language?: string;
|
|
45
63
|
model?: string;
|
|
46
64
|
prompt?: string;
|
|
47
65
|
temperature?: number;
|
|
48
|
-
responseFormat?:
|
|
66
|
+
responseFormat?: TranscriptionResponseFormat;
|
|
67
|
+
/** Requested timestamp detail (OpenAI `timestamp_granularities[]`). */
|
|
68
|
+
timestampGranularities?: TimestampGranularity[];
|
|
69
|
+
/** Per-request headers, merged over adapter headers (e.g. a per-tenant `x-bf-vk`). */
|
|
70
|
+
headers?: HeadersInit;
|
|
71
|
+
/** Per-request byte limit; overrides the adapter `maxBytes`. */
|
|
72
|
+
maxBytes?: number;
|
|
73
|
+
/** Per-request usage callback, invoked after any adapter-level `onUsage`. */
|
|
74
|
+
onUsage?: SpeechUsageCallback;
|
|
49
75
|
metadata?: Record<string, unknown>;
|
|
50
76
|
}
|
|
51
77
|
export interface SpeechVoice {
|
|
@@ -109,6 +135,28 @@ export interface StudioServerTranscriberOptions extends HttpSpeechOptions {
|
|
|
109
135
|
type?: 'studio-server';
|
|
110
136
|
transcribePath?: string;
|
|
111
137
|
}
|
|
138
|
+
/**
|
|
139
|
+
* Options for the OpenAI-compatible transcriber (`POST /audio/transcriptions`).
|
|
140
|
+
* Server-side only: the adapter holds the API key.
|
|
141
|
+
*/
|
|
142
|
+
export interface OpenAICompatibleTranscriberOptions extends HttpSpeechOptions {
|
|
143
|
+
type: 'openai-compatible';
|
|
144
|
+
/**
|
|
145
|
+
* Server root (`https://api.openai.com`), API root (`http://gateway/stt/v1`),
|
|
146
|
+
* or the full endpoint (`.../audio/transcriptions`).
|
|
147
|
+
*/
|
|
148
|
+
baseUrl: string;
|
|
149
|
+
/** Default model. Default `whisper-1`. */
|
|
150
|
+
model?: string;
|
|
151
|
+
/** Default response format. Default `verbose_json` (or `json` for json-only models). */
|
|
152
|
+
responseFormat?: TranscriptionResponseFormat;
|
|
153
|
+
/** Upload limit in bytes. Default 25 MB; `Infinity` disables it. */
|
|
154
|
+
maxBytes?: number;
|
|
155
|
+
/** Retry policy for 429/5xx. Default 2 retries; `false` disables. */
|
|
156
|
+
retry?: SpeechRetryOptions | false;
|
|
157
|
+
/** Called with usage after every successful transcription. */
|
|
158
|
+
onUsage?: SpeechUsageCallback;
|
|
159
|
+
}
|
|
112
160
|
export interface StudioServerSpeechSynthesizerOptions extends HttpSpeechOptions {
|
|
113
161
|
type: 'studio-server';
|
|
114
162
|
synthesizePath?: string;
|
|
@@ -126,8 +174,20 @@ export interface OpenAICompatibleSpeechSynthesizerOptions extends HttpSpeechOpti
|
|
|
126
174
|
defaultModel?: string;
|
|
127
175
|
defaultVoice?: string;
|
|
128
176
|
}
|
|
129
|
-
export interface GetTranscriberOptions extends Partial<
|
|
177
|
+
export interface GetTranscriberOptions extends Partial<HttpSpeechOptions> {
|
|
130
178
|
type?: TranscriberType;
|
|
179
|
+
/** Studio Server only. */
|
|
180
|
+
transcribePath?: string;
|
|
181
|
+
/** OpenAI-compatible only. */
|
|
182
|
+
model?: string;
|
|
183
|
+
/** OpenAI-compatible only. */
|
|
184
|
+
responseFormat?: TranscriptionResponseFormat;
|
|
185
|
+
/** OpenAI-compatible only. */
|
|
186
|
+
maxBytes?: number;
|
|
187
|
+
/** OpenAI-compatible only. */
|
|
188
|
+
retry?: SpeechRetryOptions | false;
|
|
189
|
+
/** OpenAI-compatible only. */
|
|
190
|
+
onUsage?: SpeechUsageCallback;
|
|
131
191
|
}
|
|
132
192
|
export interface GetSpeechSynthesizerOptions extends Partial<HttpSpeechOptions> {
|
|
133
193
|
type?: SpeechSynthesizerType;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GACzB,eAAe,GACf,WAAW,GACX,mBAAmB,CAAC;AAExB,MAAM,MAAM,eAAe,GAAG,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Usage reporting shared by speech adapters.
|
|
3
|
+
*
|
|
4
|
+
* Adapters attach a {@link SpeechUsage} record to their results and call the
|
|
5
|
+
* optional {@link SpeechUsageCallback} so callers can attribute each provider
|
|
6
|
+
* call (for example to a tenant for billing).
|
|
7
|
+
*/
|
|
8
|
+
export type SpeechOperation = 'transcription' | 'synthesis';
|
|
9
|
+
export interface SpeechUsage {
|
|
10
|
+
/** Operation that produced this usage record. */
|
|
11
|
+
operation: SpeechOperation;
|
|
12
|
+
/** Adapter type that made the provider call, e.g. `openai-compatible`. */
|
|
13
|
+
provider: string;
|
|
14
|
+
/** Model identifier sent to (or reported by) the provider. */
|
|
15
|
+
model?: string;
|
|
16
|
+
/** Audio duration in seconds, when the provider or caller reports it. */
|
|
17
|
+
audioSeconds?: number;
|
|
18
|
+
/** Size of the audio payload in bytes (uploaded for STT, received for TTS). */
|
|
19
|
+
bytes?: number;
|
|
20
|
+
/** Provider usage block, passed through untouched (e.g. OpenAI `usage`). */
|
|
21
|
+
providerUsage?: Record<string, unknown>;
|
|
22
|
+
}
|
|
23
|
+
export type SpeechUsageCallback = (usage: SpeechUsage) => void | Promise<void>;
|
|
24
|
+
/**
|
|
25
|
+
* Invokes every configured usage callback in order (adapter-level first, then
|
|
26
|
+
* request-level). Callback errors propagate to the caller so that billing
|
|
27
|
+
* hooks never fail silently.
|
|
28
|
+
*/
|
|
29
|
+
export declare function reportSpeechUsage(usage: SpeechUsage, ...callbacks: Array<SpeechUsageCallback | undefined>): Promise<void>;
|
|
30
|
+
/**
|
|
31
|
+
* Extracts audio seconds from an OpenAI-style `usage` block
|
|
32
|
+
* (`{ type: 'duration', seconds }`).
|
|
33
|
+
*/
|
|
34
|
+
export declare function audioSecondsFromProviderUsage(providerUsage: Record<string, unknown> | undefined): number | undefined;
|
|
35
|
+
//# sourceMappingURL=usage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../../src/shared/usage.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,MAAM,eAAe,GAAG,eAAe,GAAG,WAAW,CAAC;AAE5D,MAAM,WAAW,WAAW;IAC1B,iDAAiD;IACjD,SAAS,EAAE,eAAe,CAAC;IAC3B,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,CAAC;IACjB,8DAA8D;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yEAAyE;IACzE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+EAA+E;IAC/E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACzC;AAED,MAAM,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE/E;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,WAAW,EAClB,GAAG,SAAS,EAAE,KAAK,CAAC,mBAAmB,GAAG,SAAS,CAAC,GACnD,OAAO,CAAC,IAAI,CAAC,CAMf;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAC3C,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACjD,MAAM,GAAG,SAAS,CASpB"}
|
package/metadata.json
CHANGED