@stll/ai-catalog 0.8.2 → 0.9.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 +4 -2
- package/dist/benchmarks.d.ts +1 -1
- package/dist/transcription.d.ts +374 -0
- package/dist/transcription.js +154 -0
- package/package.json +7 -2
package/README.md
CHANGED
|
@@ -39,8 +39,10 @@ one refresh pull request for both snapshots.
|
|
|
39
39
|
`gen:capabilities --refresh` rejects before fetching or writing: rates owns the
|
|
40
40
|
shared upstream refresh, and capabilities reads those refreshed inputs.
|
|
41
41
|
The snapshot covers text input/output, cache reads/writes, and context tiers.
|
|
42
|
-
|
|
43
|
-
|
|
42
|
+
The text-model snapshot excludes audio rates; an unknown models.dev cost field
|
|
43
|
+
fails generation. `@stll/ai-catalog/transcription` owns the separately curated
|
|
44
|
+
transcription catalog, with dated public sources, rational duration rates, and
|
|
45
|
+
explicit capability and regional-availability evidence.
|
|
44
46
|
|
|
45
47
|
## Install
|
|
46
48
|
|
package/dist/benchmarks.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { w as OfferedBYOKModelId } from "./index-COmyIxMN.js";
|
|
2
1
|
import { ModelBenchmarkMeasurement } from "./benchmark-frontier.js";
|
|
2
|
+
import { w as OfferedBYOKModelId } from "./index-COmyIxMN.js";
|
|
3
3
|
//#region src/benchmark-sources.d.ts
|
|
4
4
|
export declare const MODEL_BENCHMARK_NAME = "Text Arena";
|
|
5
5
|
export declare const MODEL_BENCHMARK_LICENCE = "CC BY 4.0";
|
|
@@ -0,0 +1,374 @@
|
|
|
1
|
+
//#region src/transcription.d.ts
|
|
2
|
+
type TranscriptionDurationPrice = {
|
|
3
|
+
kind: "audio-second";
|
|
4
|
+
usdNumerator: number;
|
|
5
|
+
secondsDenominator: number;
|
|
6
|
+
};
|
|
7
|
+
type TranscriptionRegionalAvailability = {
|
|
8
|
+
status: "available";
|
|
9
|
+
price: TranscriptionDurationPrice;
|
|
10
|
+
} | {
|
|
11
|
+
status: "unavailable" | "unknown";
|
|
12
|
+
};
|
|
13
|
+
type TranscriptionModelMetadata = {
|
|
14
|
+
displayName: string;
|
|
15
|
+
price: TranscriptionDurationPrice;
|
|
16
|
+
languageClaim: string;
|
|
17
|
+
/** Granularities supported by the cited evidence; word includes segments. */
|
|
18
|
+
timestamps: "none" | "segment" | "word";
|
|
19
|
+
vocabularyMechanism: "none" | "groq-prompt" | "azure-phrase-list" | "context-hint";
|
|
20
|
+
diarization: "supported" | "unconfirmed";
|
|
21
|
+
residency: Record<"eu" | "us", TranscriptionRegionalAvailability>;
|
|
22
|
+
source: {
|
|
23
|
+
url: string;
|
|
24
|
+
checkedAt: string;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
export declare const TRANSCRIPTION_MODELS: {
|
|
28
|
+
readonly "openai/whisper-large-v3-turbo": {
|
|
29
|
+
readonly displayName: "Whisper Large V3 Turbo";
|
|
30
|
+
readonly price: {
|
|
31
|
+
readonly kind: "audio-second";
|
|
32
|
+
readonly usdNumerator: 3;
|
|
33
|
+
readonly secondsDenominator: 1000000;
|
|
34
|
+
};
|
|
35
|
+
readonly languageClaim: "99+ languages";
|
|
36
|
+
readonly timestamps: "none";
|
|
37
|
+
readonly vocabularyMechanism: "groq-prompt";
|
|
38
|
+
readonly diarization: "unconfirmed";
|
|
39
|
+
readonly residency: {
|
|
40
|
+
readonly eu: {
|
|
41
|
+
readonly status: "unavailable";
|
|
42
|
+
};
|
|
43
|
+
readonly us: {
|
|
44
|
+
readonly status: "unknown";
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
readonly source: {
|
|
48
|
+
readonly url: "https://openrouter.ai/openai/whisper-large-v3-turbo";
|
|
49
|
+
readonly checkedAt: "2026-10-29";
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
readonly "openai/whisper-large-v3": {
|
|
53
|
+
readonly displayName: "Whisper Large V3";
|
|
54
|
+
readonly price: {
|
|
55
|
+
readonly kind: "audio-second";
|
|
56
|
+
readonly usdNumerator: 8;
|
|
57
|
+
readonly secondsDenominator: 1000000;
|
|
58
|
+
};
|
|
59
|
+
readonly languageClaim: "99+ languages";
|
|
60
|
+
readonly timestamps: "word";
|
|
61
|
+
readonly vocabularyMechanism: "groq-prompt";
|
|
62
|
+
readonly diarization: "unconfirmed";
|
|
63
|
+
readonly residency: {
|
|
64
|
+
readonly eu: {
|
|
65
|
+
readonly status: "unavailable";
|
|
66
|
+
};
|
|
67
|
+
readonly us: {
|
|
68
|
+
readonly status: "unknown";
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
readonly source: {
|
|
72
|
+
readonly url: "https://openrouter.ai/openai/whisper-large-v3";
|
|
73
|
+
readonly checkedAt: "2026-10-29";
|
|
74
|
+
};
|
|
75
|
+
};
|
|
76
|
+
readonly "nvidia/parakeet-tdt-0.6b-v3": {
|
|
77
|
+
readonly displayName: "Parakeet TDT 0.6B v3";
|
|
78
|
+
readonly price: {
|
|
79
|
+
readonly kind: "audio-second";
|
|
80
|
+
readonly usdNumerator: 25;
|
|
81
|
+
readonly secondsDenominator: 1000000;
|
|
82
|
+
};
|
|
83
|
+
readonly languageClaim: "All official EU languages";
|
|
84
|
+
readonly timestamps: "segment";
|
|
85
|
+
readonly vocabularyMechanism: "none";
|
|
86
|
+
readonly diarization: "unconfirmed";
|
|
87
|
+
readonly residency: {
|
|
88
|
+
readonly eu: {
|
|
89
|
+
readonly status: "unavailable";
|
|
90
|
+
};
|
|
91
|
+
readonly us: {
|
|
92
|
+
readonly status: "unknown";
|
|
93
|
+
};
|
|
94
|
+
};
|
|
95
|
+
readonly source: {
|
|
96
|
+
readonly url: "https://openrouter.ai/nvidia/parakeet-tdt-0.6b-v3";
|
|
97
|
+
readonly checkedAt: "2026-10-29";
|
|
98
|
+
};
|
|
99
|
+
};
|
|
100
|
+
readonly "microsoft/mai-transcribe-2": {
|
|
101
|
+
readonly displayName: "MAI-Transcribe 2";
|
|
102
|
+
readonly price: {
|
|
103
|
+
readonly kind: "audio-second";
|
|
104
|
+
readonly usdNumerator: 1;
|
|
105
|
+
readonly secondsDenominator: 36000;
|
|
106
|
+
};
|
|
107
|
+
readonly languageClaim: "60 languages";
|
|
108
|
+
readonly timestamps: "word";
|
|
109
|
+
readonly vocabularyMechanism: "azure-phrase-list";
|
|
110
|
+
readonly diarization: "supported";
|
|
111
|
+
readonly residency: {
|
|
112
|
+
readonly eu: {
|
|
113
|
+
readonly status: "unavailable";
|
|
114
|
+
};
|
|
115
|
+
readonly us: {
|
|
116
|
+
readonly status: "unknown";
|
|
117
|
+
};
|
|
118
|
+
};
|
|
119
|
+
readonly source: {
|
|
120
|
+
readonly url: "https://openrouter.ai/microsoft/mai-transcribe-2";
|
|
121
|
+
readonly checkedAt: "2026-10-29";
|
|
122
|
+
};
|
|
123
|
+
};
|
|
124
|
+
readonly "elevenlabs/scribe-v2": {
|
|
125
|
+
readonly displayName: "Scribe v2";
|
|
126
|
+
readonly price: {
|
|
127
|
+
readonly kind: "audio-second";
|
|
128
|
+
readonly usdNumerator: 61;
|
|
129
|
+
readonly secondsDenominator: 1000000;
|
|
130
|
+
};
|
|
131
|
+
readonly languageClaim: "90+ languages";
|
|
132
|
+
readonly timestamps: "word";
|
|
133
|
+
readonly vocabularyMechanism: "none";
|
|
134
|
+
readonly diarization: "supported";
|
|
135
|
+
readonly residency: {
|
|
136
|
+
readonly eu: {
|
|
137
|
+
readonly status: "unavailable";
|
|
138
|
+
};
|
|
139
|
+
readonly us: {
|
|
140
|
+
readonly status: "unknown";
|
|
141
|
+
};
|
|
142
|
+
};
|
|
143
|
+
readonly source: {
|
|
144
|
+
readonly url: "https://openrouter.ai/elevenlabs/scribe-v2";
|
|
145
|
+
readonly checkedAt: "2026-10-29";
|
|
146
|
+
};
|
|
147
|
+
};
|
|
148
|
+
readonly "mistralai/voxtral-mini-transcribe": {
|
|
149
|
+
readonly displayName: "Voxtral Mini Transcribe";
|
|
150
|
+
readonly price: {
|
|
151
|
+
readonly kind: "audio-second";
|
|
152
|
+
readonly usdNumerator: 50;
|
|
153
|
+
readonly secondsDenominator: 1000000;
|
|
154
|
+
};
|
|
155
|
+
readonly languageClaim: "Not specified";
|
|
156
|
+
readonly timestamps: "none";
|
|
157
|
+
readonly vocabularyMechanism: "none";
|
|
158
|
+
readonly diarization: "unconfirmed";
|
|
159
|
+
readonly residency: {
|
|
160
|
+
readonly eu: {
|
|
161
|
+
readonly status: "available";
|
|
162
|
+
readonly price: {
|
|
163
|
+
readonly kind: "audio-second";
|
|
164
|
+
readonly usdNumerator: 55;
|
|
165
|
+
readonly secondsDenominator: 1000000;
|
|
166
|
+
};
|
|
167
|
+
};
|
|
168
|
+
readonly us: {
|
|
169
|
+
readonly status: "unknown";
|
|
170
|
+
};
|
|
171
|
+
};
|
|
172
|
+
readonly source: {
|
|
173
|
+
readonly url: "https://openrouter.ai/mistralai/voxtral-mini-transcribe";
|
|
174
|
+
readonly checkedAt: "2026-10-29";
|
|
175
|
+
};
|
|
176
|
+
};
|
|
177
|
+
readonly "openai/gpt-transcribe": {
|
|
178
|
+
readonly displayName: "GPT Transcribe";
|
|
179
|
+
readonly price: {
|
|
180
|
+
readonly kind: "audio-second";
|
|
181
|
+
readonly usdNumerator: 75;
|
|
182
|
+
readonly secondsDenominator: 1000000;
|
|
183
|
+
};
|
|
184
|
+
readonly languageClaim: "Multilingual; language count not specified";
|
|
185
|
+
readonly timestamps: "none";
|
|
186
|
+
readonly vocabularyMechanism: "context-hint";
|
|
187
|
+
readonly diarization: "unconfirmed";
|
|
188
|
+
readonly residency: {
|
|
189
|
+
readonly eu: {
|
|
190
|
+
readonly status: "unavailable";
|
|
191
|
+
};
|
|
192
|
+
readonly us: {
|
|
193
|
+
readonly status: "unknown";
|
|
194
|
+
};
|
|
195
|
+
};
|
|
196
|
+
readonly source: {
|
|
197
|
+
readonly url: "https://openrouter.ai/openai/gpt-transcribe";
|
|
198
|
+
readonly checkedAt: "2026-10-29";
|
|
199
|
+
};
|
|
200
|
+
};
|
|
201
|
+
};
|
|
202
|
+
export type TranscriptionModelId = keyof typeof TRANSCRIPTION_MODELS;
|
|
203
|
+
export type TranscriptionModel = (typeof TRANSCRIPTION_MODELS)[TranscriptionModelId];
|
|
204
|
+
export type TranscriptionVocabularyMechanism = TranscriptionModelMetadata["vocabularyMechanism"];
|
|
205
|
+
export declare const isTranscriptionModelId: (modelId: string) => modelId is TranscriptionModelId;
|
|
206
|
+
export declare const getTranscriptionModel: (modelId: string) => {
|
|
207
|
+
readonly displayName: "Whisper Large V3 Turbo";
|
|
208
|
+
readonly price: {
|
|
209
|
+
readonly kind: "audio-second";
|
|
210
|
+
readonly usdNumerator: 3;
|
|
211
|
+
readonly secondsDenominator: 1000000;
|
|
212
|
+
};
|
|
213
|
+
readonly languageClaim: "99+ languages";
|
|
214
|
+
readonly timestamps: "none";
|
|
215
|
+
readonly vocabularyMechanism: "groq-prompt";
|
|
216
|
+
readonly diarization: "unconfirmed";
|
|
217
|
+
readonly residency: {
|
|
218
|
+
readonly eu: {
|
|
219
|
+
readonly status: "unavailable";
|
|
220
|
+
};
|
|
221
|
+
readonly us: {
|
|
222
|
+
readonly status: "unknown";
|
|
223
|
+
};
|
|
224
|
+
};
|
|
225
|
+
readonly source: {
|
|
226
|
+
readonly url: "https://openrouter.ai/openai/whisper-large-v3-turbo";
|
|
227
|
+
readonly checkedAt: "2026-10-29";
|
|
228
|
+
};
|
|
229
|
+
} | {
|
|
230
|
+
readonly displayName: "Whisper Large V3";
|
|
231
|
+
readonly price: {
|
|
232
|
+
readonly kind: "audio-second";
|
|
233
|
+
readonly usdNumerator: 8;
|
|
234
|
+
readonly secondsDenominator: 1000000;
|
|
235
|
+
};
|
|
236
|
+
readonly languageClaim: "99+ languages";
|
|
237
|
+
readonly timestamps: "word";
|
|
238
|
+
readonly vocabularyMechanism: "groq-prompt";
|
|
239
|
+
readonly diarization: "unconfirmed";
|
|
240
|
+
readonly residency: {
|
|
241
|
+
readonly eu: {
|
|
242
|
+
readonly status: "unavailable";
|
|
243
|
+
};
|
|
244
|
+
readonly us: {
|
|
245
|
+
readonly status: "unknown";
|
|
246
|
+
};
|
|
247
|
+
};
|
|
248
|
+
readonly source: {
|
|
249
|
+
readonly url: "https://openrouter.ai/openai/whisper-large-v3";
|
|
250
|
+
readonly checkedAt: "2026-10-29";
|
|
251
|
+
};
|
|
252
|
+
} | {
|
|
253
|
+
readonly displayName: "Parakeet TDT 0.6B v3";
|
|
254
|
+
readonly price: {
|
|
255
|
+
readonly kind: "audio-second";
|
|
256
|
+
readonly usdNumerator: 25;
|
|
257
|
+
readonly secondsDenominator: 1000000;
|
|
258
|
+
};
|
|
259
|
+
readonly languageClaim: "All official EU languages";
|
|
260
|
+
readonly timestamps: "segment";
|
|
261
|
+
readonly vocabularyMechanism: "none";
|
|
262
|
+
readonly diarization: "unconfirmed";
|
|
263
|
+
readonly residency: {
|
|
264
|
+
readonly eu: {
|
|
265
|
+
readonly status: "unavailable";
|
|
266
|
+
};
|
|
267
|
+
readonly us: {
|
|
268
|
+
readonly status: "unknown";
|
|
269
|
+
};
|
|
270
|
+
};
|
|
271
|
+
readonly source: {
|
|
272
|
+
readonly url: "https://openrouter.ai/nvidia/parakeet-tdt-0.6b-v3";
|
|
273
|
+
readonly checkedAt: "2026-10-29";
|
|
274
|
+
};
|
|
275
|
+
} | {
|
|
276
|
+
readonly displayName: "MAI-Transcribe 2";
|
|
277
|
+
readonly price: {
|
|
278
|
+
readonly kind: "audio-second";
|
|
279
|
+
readonly usdNumerator: 1;
|
|
280
|
+
readonly secondsDenominator: 36000;
|
|
281
|
+
};
|
|
282
|
+
readonly languageClaim: "60 languages";
|
|
283
|
+
readonly timestamps: "word";
|
|
284
|
+
readonly vocabularyMechanism: "azure-phrase-list";
|
|
285
|
+
readonly diarization: "supported";
|
|
286
|
+
readonly residency: {
|
|
287
|
+
readonly eu: {
|
|
288
|
+
readonly status: "unavailable";
|
|
289
|
+
};
|
|
290
|
+
readonly us: {
|
|
291
|
+
readonly status: "unknown";
|
|
292
|
+
};
|
|
293
|
+
};
|
|
294
|
+
readonly source: {
|
|
295
|
+
readonly url: "https://openrouter.ai/microsoft/mai-transcribe-2";
|
|
296
|
+
readonly checkedAt: "2026-10-29";
|
|
297
|
+
};
|
|
298
|
+
} | {
|
|
299
|
+
readonly displayName: "Scribe v2";
|
|
300
|
+
readonly price: {
|
|
301
|
+
readonly kind: "audio-second";
|
|
302
|
+
readonly usdNumerator: 61;
|
|
303
|
+
readonly secondsDenominator: 1000000;
|
|
304
|
+
};
|
|
305
|
+
readonly languageClaim: "90+ languages";
|
|
306
|
+
readonly timestamps: "word";
|
|
307
|
+
readonly vocabularyMechanism: "none";
|
|
308
|
+
readonly diarization: "supported";
|
|
309
|
+
readonly residency: {
|
|
310
|
+
readonly eu: {
|
|
311
|
+
readonly status: "unavailable";
|
|
312
|
+
};
|
|
313
|
+
readonly us: {
|
|
314
|
+
readonly status: "unknown";
|
|
315
|
+
};
|
|
316
|
+
};
|
|
317
|
+
readonly source: {
|
|
318
|
+
readonly url: "https://openrouter.ai/elevenlabs/scribe-v2";
|
|
319
|
+
readonly checkedAt: "2026-10-29";
|
|
320
|
+
};
|
|
321
|
+
} | {
|
|
322
|
+
readonly displayName: "Voxtral Mini Transcribe";
|
|
323
|
+
readonly price: {
|
|
324
|
+
readonly kind: "audio-second";
|
|
325
|
+
readonly usdNumerator: 50;
|
|
326
|
+
readonly secondsDenominator: 1000000;
|
|
327
|
+
};
|
|
328
|
+
readonly languageClaim: "Not specified";
|
|
329
|
+
readonly timestamps: "none";
|
|
330
|
+
readonly vocabularyMechanism: "none";
|
|
331
|
+
readonly diarization: "unconfirmed";
|
|
332
|
+
readonly residency: {
|
|
333
|
+
readonly eu: {
|
|
334
|
+
readonly status: "available";
|
|
335
|
+
readonly price: {
|
|
336
|
+
readonly kind: "audio-second";
|
|
337
|
+
readonly usdNumerator: 55;
|
|
338
|
+
readonly secondsDenominator: 1000000;
|
|
339
|
+
};
|
|
340
|
+
};
|
|
341
|
+
readonly us: {
|
|
342
|
+
readonly status: "unknown";
|
|
343
|
+
};
|
|
344
|
+
};
|
|
345
|
+
readonly source: {
|
|
346
|
+
readonly url: "https://openrouter.ai/mistralai/voxtral-mini-transcribe";
|
|
347
|
+
readonly checkedAt: "2026-10-29";
|
|
348
|
+
};
|
|
349
|
+
} | {
|
|
350
|
+
readonly displayName: "GPT Transcribe";
|
|
351
|
+
readonly price: {
|
|
352
|
+
readonly kind: "audio-second";
|
|
353
|
+
readonly usdNumerator: 75;
|
|
354
|
+
readonly secondsDenominator: 1000000;
|
|
355
|
+
};
|
|
356
|
+
readonly languageClaim: "Multilingual; language count not specified";
|
|
357
|
+
readonly timestamps: "none";
|
|
358
|
+
readonly vocabularyMechanism: "context-hint";
|
|
359
|
+
readonly diarization: "unconfirmed";
|
|
360
|
+
readonly residency: {
|
|
361
|
+
readonly eu: {
|
|
362
|
+
readonly status: "unavailable";
|
|
363
|
+
};
|
|
364
|
+
readonly us: {
|
|
365
|
+
readonly status: "unknown";
|
|
366
|
+
};
|
|
367
|
+
};
|
|
368
|
+
readonly source: {
|
|
369
|
+
readonly url: "https://openrouter.ai/openai/gpt-transcribe";
|
|
370
|
+
readonly checkedAt: "2026-10-29";
|
|
371
|
+
};
|
|
372
|
+
} | undefined;
|
|
373
|
+
//#endregion
|
|
374
|
+
export {};
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
//#region src/transcription.ts
|
|
2
|
+
const TRANSCRIPTION_MODELS = {
|
|
3
|
+
"openai/whisper-large-v3-turbo": {
|
|
4
|
+
displayName: "Whisper Large V3 Turbo",
|
|
5
|
+
price: {
|
|
6
|
+
kind: "audio-second",
|
|
7
|
+
usdNumerator: 3,
|
|
8
|
+
secondsDenominator: 1e6
|
|
9
|
+
},
|
|
10
|
+
languageClaim: "99+ languages",
|
|
11
|
+
timestamps: "none",
|
|
12
|
+
vocabularyMechanism: "groq-prompt",
|
|
13
|
+
diarization: "unconfirmed",
|
|
14
|
+
residency: {
|
|
15
|
+
eu: { status: "unavailable" },
|
|
16
|
+
us: { status: "unknown" }
|
|
17
|
+
},
|
|
18
|
+
source: {
|
|
19
|
+
url: "https://openrouter.ai/openai/whisper-large-v3-turbo",
|
|
20
|
+
checkedAt: "2026-10-29"
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"openai/whisper-large-v3": {
|
|
24
|
+
displayName: "Whisper Large V3",
|
|
25
|
+
price: {
|
|
26
|
+
kind: "audio-second",
|
|
27
|
+
usdNumerator: 8,
|
|
28
|
+
secondsDenominator: 1e6
|
|
29
|
+
},
|
|
30
|
+
languageClaim: "99+ languages",
|
|
31
|
+
timestamps: "word",
|
|
32
|
+
vocabularyMechanism: "groq-prompt",
|
|
33
|
+
diarization: "unconfirmed",
|
|
34
|
+
residency: {
|
|
35
|
+
eu: { status: "unavailable" },
|
|
36
|
+
us: { status: "unknown" }
|
|
37
|
+
},
|
|
38
|
+
source: {
|
|
39
|
+
url: "https://openrouter.ai/openai/whisper-large-v3",
|
|
40
|
+
checkedAt: "2026-10-29"
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"nvidia/parakeet-tdt-0.6b-v3": {
|
|
44
|
+
displayName: "Parakeet TDT 0.6B v3",
|
|
45
|
+
price: {
|
|
46
|
+
kind: "audio-second",
|
|
47
|
+
usdNumerator: 25,
|
|
48
|
+
secondsDenominator: 1e6
|
|
49
|
+
},
|
|
50
|
+
languageClaim: "All official EU languages",
|
|
51
|
+
timestamps: "segment",
|
|
52
|
+
vocabularyMechanism: "none",
|
|
53
|
+
diarization: "unconfirmed",
|
|
54
|
+
residency: {
|
|
55
|
+
eu: { status: "unavailable" },
|
|
56
|
+
us: { status: "unknown" }
|
|
57
|
+
},
|
|
58
|
+
source: {
|
|
59
|
+
url: "https://openrouter.ai/nvidia/parakeet-tdt-0.6b-v3",
|
|
60
|
+
checkedAt: "2026-10-29"
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
"microsoft/mai-transcribe-2": {
|
|
64
|
+
displayName: "MAI-Transcribe 2",
|
|
65
|
+
price: {
|
|
66
|
+
kind: "audio-second",
|
|
67
|
+
usdNumerator: 1,
|
|
68
|
+
secondsDenominator: 36e3
|
|
69
|
+
},
|
|
70
|
+
languageClaim: "60 languages",
|
|
71
|
+
timestamps: "word",
|
|
72
|
+
vocabularyMechanism: "azure-phrase-list",
|
|
73
|
+
diarization: "supported",
|
|
74
|
+
residency: {
|
|
75
|
+
eu: { status: "unavailable" },
|
|
76
|
+
us: { status: "unknown" }
|
|
77
|
+
},
|
|
78
|
+
source: {
|
|
79
|
+
url: "https://openrouter.ai/microsoft/mai-transcribe-2",
|
|
80
|
+
checkedAt: "2026-10-29"
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
"elevenlabs/scribe-v2": {
|
|
84
|
+
displayName: "Scribe v2",
|
|
85
|
+
price: {
|
|
86
|
+
kind: "audio-second",
|
|
87
|
+
usdNumerator: 61,
|
|
88
|
+
secondsDenominator: 1e6
|
|
89
|
+
},
|
|
90
|
+
languageClaim: "90+ languages",
|
|
91
|
+
timestamps: "word",
|
|
92
|
+
vocabularyMechanism: "none",
|
|
93
|
+
diarization: "supported",
|
|
94
|
+
residency: {
|
|
95
|
+
eu: { status: "unavailable" },
|
|
96
|
+
us: { status: "unknown" }
|
|
97
|
+
},
|
|
98
|
+
source: {
|
|
99
|
+
url: "https://openrouter.ai/elevenlabs/scribe-v2",
|
|
100
|
+
checkedAt: "2026-10-29"
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
"mistralai/voxtral-mini-transcribe": {
|
|
104
|
+
displayName: "Voxtral Mini Transcribe",
|
|
105
|
+
price: {
|
|
106
|
+
kind: "audio-second",
|
|
107
|
+
usdNumerator: 50,
|
|
108
|
+
secondsDenominator: 1e6
|
|
109
|
+
},
|
|
110
|
+
languageClaim: "Not specified",
|
|
111
|
+
timestamps: "none",
|
|
112
|
+
vocabularyMechanism: "none",
|
|
113
|
+
diarization: "unconfirmed",
|
|
114
|
+
residency: {
|
|
115
|
+
eu: {
|
|
116
|
+
status: "available",
|
|
117
|
+
price: {
|
|
118
|
+
kind: "audio-second",
|
|
119
|
+
usdNumerator: 55,
|
|
120
|
+
secondsDenominator: 1e6
|
|
121
|
+
}
|
|
122
|
+
},
|
|
123
|
+
us: { status: "unknown" }
|
|
124
|
+
},
|
|
125
|
+
source: {
|
|
126
|
+
url: "https://openrouter.ai/mistralai/voxtral-mini-transcribe",
|
|
127
|
+
checkedAt: "2026-10-29"
|
|
128
|
+
}
|
|
129
|
+
},
|
|
130
|
+
"openai/gpt-transcribe": {
|
|
131
|
+
displayName: "GPT Transcribe",
|
|
132
|
+
price: {
|
|
133
|
+
kind: "audio-second",
|
|
134
|
+
usdNumerator: 75,
|
|
135
|
+
secondsDenominator: 1e6
|
|
136
|
+
},
|
|
137
|
+
languageClaim: "Multilingual; language count not specified",
|
|
138
|
+
timestamps: "none",
|
|
139
|
+
vocabularyMechanism: "context-hint",
|
|
140
|
+
diarization: "unconfirmed",
|
|
141
|
+
residency: {
|
|
142
|
+
eu: { status: "unavailable" },
|
|
143
|
+
us: { status: "unknown" }
|
|
144
|
+
},
|
|
145
|
+
source: {
|
|
146
|
+
url: "https://openrouter.ai/openai/gpt-transcribe",
|
|
147
|
+
checkedAt: "2026-10-29"
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
};
|
|
151
|
+
const isTranscriptionModelId = (modelId) => Object.hasOwn(TRANSCRIPTION_MODELS, modelId);
|
|
152
|
+
const getTranscriptionModel = (modelId) => Object.hasOwn(TRANSCRIPTION_MODELS, modelId) && isTranscriptionModelId(modelId) ? TRANSCRIPTION_MODELS[modelId] : void 0;
|
|
153
|
+
//#endregion
|
|
154
|
+
export { TRANSCRIPTION_MODELS, getTranscriptionModel, isTranscriptionModelId };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stll/ai-catalog",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"description": "Provider-neutral AI model roles, capabilities, and curated model metadata.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ai",
|
|
@@ -40,6 +40,10 @@
|
|
|
40
40
|
"./model-defaults-ledger": {
|
|
41
41
|
"types": "./dist/model-defaults-ledger.d.ts",
|
|
42
42
|
"import": "./dist/model-defaults-ledger.js"
|
|
43
|
+
},
|
|
44
|
+
"./transcription": {
|
|
45
|
+
"types": "./dist/transcription.d.ts",
|
|
46
|
+
"import": "./dist/transcription.js"
|
|
43
47
|
}
|
|
44
48
|
},
|
|
45
49
|
"publishConfig": {
|
|
@@ -75,7 +79,8 @@
|
|
|
75
79
|
"@tanstack/ai-openrouter": "0.21.1",
|
|
76
80
|
"bun-types": "1.4.4",
|
|
77
81
|
"fast-check": "^4.10.2",
|
|
78
|
-
"tsdown": "0.23.
|
|
82
|
+
"tsdown": "0.23.1",
|
|
83
|
+
"tsrs": "0.18.0-ts7.1.0-dev.20260929"
|
|
79
84
|
},
|
|
80
85
|
"main": "./dist/index.js",
|
|
81
86
|
"types": "./dist/index.d.ts"
|