@node-webrtc-rust/voice-catalog 0.9.16

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.
@@ -0,0 +1,177 @@
1
+ {
2
+ "vendors": [
3
+ {
4
+ "id": "openai",
5
+ "label": "OpenAI",
6
+ "stt": true,
7
+ "tts": true,
8
+ "defaultSttModel": "whisper-1",
9
+ "defaultTtsModel": "tts-1",
10
+ "sttModels": [
11
+ "whisper-1",
12
+ "gpt-4o-mini-transcribe",
13
+ "gpt-4o-transcribe",
14
+ "gpt-4o-transcribe-diarize",
15
+ "gpt-transcribe",
16
+ "gpt-live-transcribe"
17
+ ],
18
+ "ttsModels": ["tts-1", "tts-1-hd", "gpt-4o-mini-tts", "gpt-4o-mini-tts-2025-12-15"],
19
+ "ttsVoices": [],
20
+ "home": "https://platform.openai.com/docs",
21
+ "sttDocs": "https://platform.openai.com/docs/guides/speech-to-text",
22
+ "ttsDocs": "https://platform.openai.com/docs/guides/text-to-speech",
23
+ "modelsDocs": "https://platform.openai.com/docs/models"
24
+ },
25
+ {
26
+ "id": "deepgram",
27
+ "label": "Deepgram",
28
+ "stt": true,
29
+ "tts": true,
30
+ "defaultSttModel": "nova-2",
31
+ "defaultTtsModel": "aura-asteria-en",
32
+ "sttModels": ["nova-2", "nova-3"],
33
+ "ttsModels": ["aura-asteria-en"],
34
+ "ttsVoices": [],
35
+ "home": "https://developers.deepgram.com/",
36
+ "sttDocs": "https://developers.deepgram.com/docs/live-streaming-audio",
37
+ "ttsDocs": "https://developers.deepgram.com/reference/text-to-speech/speak",
38
+ "modelsDocs": "https://developers.deepgram.com/docs/models"
39
+ },
40
+ {
41
+ "id": "elevenlabs",
42
+ "label": "ElevenLabs",
43
+ "stt": true,
44
+ "tts": true,
45
+ "defaultSttModel": "scribe_v2_realtime",
46
+ "defaultTtsModel": "eleven_multilingual_v2",
47
+ "sttModels": ["scribe_v2_realtime"],
48
+ "ttsModels": ["eleven_multilingual_v2", "eleven_v3", "eleven_flash_v2_5"],
49
+ "ttsVoices": [],
50
+ "home": "https://elevenlabs.io/docs",
51
+ "sttDocs": "https://elevenlabs.io/docs/api-reference/speech-to-text/v-1-speech-to-text-realtime",
52
+ "ttsDocs": "https://elevenlabs.io/docs/api-reference/text-to-speech/stream",
53
+ "modelsDocs": "https://elevenlabs.io/docs/voices"
54
+ },
55
+ {
56
+ "id": "cartesia",
57
+ "label": "Cartesia",
58
+ "stt": false,
59
+ "tts": true,
60
+ "defaultTtsModel": "sonic-3",
61
+ "sttModels": [],
62
+ "ttsModels": ["sonic-3.6", "sonic-3.5", "sonic-3", "sonic-latest"],
63
+ "ttsVoices": [],
64
+ "home": "https://docs.cartesia.ai/",
65
+ "ttsDocs": "https://docs.cartesia.ai/api-reference/tts/websocket",
66
+ "modelsDocs": "https://docs.cartesia.ai/models"
67
+ },
68
+ {
69
+ "id": "assemblyai",
70
+ "label": "AssemblyAI",
71
+ "stt": true,
72
+ "tts": false,
73
+ "defaultSttModel": "universal-streaming-english",
74
+ "sttModels": ["universal-3-6-pro", "universal-streaming-english"],
75
+ "ttsModels": [],
76
+ "ttsVoices": [],
77
+ "home": "https://www.assemblyai.com/docs",
78
+ "sttDocs": "https://www.assemblyai.com/docs/speech-to-text/streaming",
79
+ "modelsDocs": "https://www.assemblyai.com/docs/speech-to-text/pre-recorded-audio/select-the-speech-model"
80
+ },
81
+ {
82
+ "id": "google",
83
+ "label": "Google Cloud",
84
+ "stt": true,
85
+ "tts": true,
86
+ "defaultSttModel": "latest_long",
87
+ "defaultTtsVoice": "en-US-Neural2-A",
88
+ "sttModels": ["chirp_3", "chirp_2", "telephony", "latest_long"],
89
+ "ttsModels": [],
90
+ "ttsVoices": [],
91
+ "home": "https://cloud.google.com/speech-to-text",
92
+ "sttDocs": "https://docs.cloud.google.com/speech-to-text/docs/models/chirp-3",
93
+ "ttsDocs": "https://docs.cloud.google.com/text-to-speech/docs/create-audio-text-streaming",
94
+ "modelsDocs": "https://cloud.google.com/text-to-speech/docs/voices"
95
+ },
96
+ {
97
+ "id": "groq",
98
+ "label": "Groq",
99
+ "stt": true,
100
+ "tts": true,
101
+ "defaultSttModel": "whisper-large-v3-turbo",
102
+ "defaultTtsModel": "canopylabs/orpheus-v1-english",
103
+ "sttModels": ["whisper-large-v3-turbo", "whisper-large-v3"],
104
+ "ttsModels": ["canopylabs/orpheus-v1-english", "canopylabs/orpheus-arabic-saudi"],
105
+ "ttsVoices": [],
106
+ "home": "https://console.groq.com/docs",
107
+ "sttDocs": "https://console.groq.com/docs/speech-to-text",
108
+ "ttsDocs": "https://console.groq.com/docs/text-to-speech"
109
+ },
110
+ {
111
+ "id": "azure",
112
+ "label": "Azure AI Speech",
113
+ "stt": true,
114
+ "tts": true,
115
+ "defaultSttModel": "conversation",
116
+ "defaultTtsVoice": "en-US-JennyNeural",
117
+ "sttModels": ["conversation"],
118
+ "ttsModels": [],
119
+ "ttsVoices": [],
120
+ "ttsVoiceListFile": "azure-tts-voices.json",
121
+ "snapshotDate": "2026-09-28",
122
+ "home": "https://learn.microsoft.com/en-us/azure/ai-services/speech-service/",
123
+ "sttDocs": "https://learn.microsoft.com/en-us/azure/ai-services/speech-service/rest-speech-to-text-short",
124
+ "ttsDocs": "https://learn.microsoft.com/en-us/azure/ai-services/speech-service/rest-text-to-speech"
125
+ },
126
+ {
127
+ "id": "aws",
128
+ "label": "AWS (Transcribe + Polly)",
129
+ "stt": true,
130
+ "tts": true,
131
+ "defaultSttModel": "en-US",
132
+ "defaultTtsVoice": "Joanna",
133
+ "sttModels": [
134
+ "en-US",
135
+ "es-US",
136
+ "fr-FR",
137
+ "de-DE",
138
+ "pt-BR",
139
+ "ja-JP",
140
+ "ko-KR",
141
+ "zh-CN",
142
+ "it-IT",
143
+ "hi-IN"
144
+ ],
145
+ "ttsModels": [],
146
+ "ttsVoices": ["Joanna", "Matthew", "Amy", "Brian", "Ruth", "Stephen"],
147
+ "home": "https://docs.aws.amazon.com/transcribe/",
148
+ "sttDocs": "https://docs.aws.amazon.com/transcribe/latest/dg/streaming-setting-up.html",
149
+ "ttsDocs": "https://docs.aws.amazon.com/polly/latest/dg/API_SynthesizeSpeech.html"
150
+ },
151
+ {
152
+ "id": "local-sherpa",
153
+ "label": "Sherpa-ONNX (local)",
154
+ "stt": true,
155
+ "tts": true,
156
+ "defaultSttModel": "sherpa-onnx-streaming-zipformer-en-kroko-2025-08-06",
157
+ "defaultTtsModel": "vits-piper-en_US-amy-low",
158
+ "sttModels": [],
159
+ "ttsModels": [],
160
+ "ttsVoices": [],
161
+ "home": "https://github.com/k2-fsa/sherpa-onnx",
162
+ "sttDocs": "https://k2-fsa.github.io/sherpa/onnx/",
163
+ "ttsDocs": "https://k2-fsa.github.io/sherpa/onnx/tts/index.html",
164
+ "modelsDocs": "https://github.com/k2-fsa/sherpa-onnx/releases/tag/asr-models"
165
+ },
166
+ {
167
+ "id": "mock",
168
+ "label": "Mock (CI / local)",
169
+ "stt": true,
170
+ "tts": true,
171
+ "sttModels": [],
172
+ "ttsModels": [],
173
+ "ttsVoices": [],
174
+ "home": "https://github.com/akirilyuk/node-webrtc-rust/tree/main/crates/vendor-mock"
175
+ }
176
+ ]
177
+ }
@@ -0,0 +1 @@
1
+ {"type":"module"}
@@ -0,0 +1,56 @@
1
+ /** SDK `stt.provider` / `tts.provider` id (matches VoiceAgent vendor ids). */
2
+ export type VoiceVendorId = 'openai' | 'deepgram' | 'elevenlabs' | 'cartesia' | 'assemblyai' | 'google' | 'groq' | 'azure' | 'aws' | 'local-sherpa' | 'mock';
3
+ export interface VoiceVendorEntry {
4
+ id: VoiceVendorId;
5
+ label: string;
6
+ stt: boolean;
7
+ tts: boolean;
8
+ defaultSttModel?: string;
9
+ defaultTtsModel?: string;
10
+ defaultTtsVoice?: string;
11
+ sttModels: string[];
12
+ ttsModels: string[];
13
+ ttsVoices: string[];
14
+ /** Relative to `catalog/` — load via {@link azureTtsVoices}. */
15
+ ttsVoiceListFile?: string;
16
+ home: string;
17
+ sttDocs?: string;
18
+ ttsDocs?: string;
19
+ modelsDocs?: string;
20
+ snapshotDate?: string;
21
+ }
22
+ export interface AzureTtsVoicesCatalog {
23
+ snapshotDate: string;
24
+ source: string;
25
+ voicesListDoc: string;
26
+ voices: string[];
27
+ }
28
+ export interface VendorsCatalogFile {
29
+ vendors: VoiceVendorEntry[];
30
+ }
31
+ export declare const vendorsCatalogJson: VendorsCatalogFile;
32
+ export declare const azureTtsVoicesJson: AzureTtsVoicesCatalog;
33
+ /** All vendors from `catalog/vendors.json`. */
34
+ export declare const VOICE_VENDORS: readonly VoiceVendorEntry[];
35
+ /** Azure TTS ShortNames snapshot (`catalog/azure-tts-voices.json`). */
36
+ export declare const azureTtsVoices: readonly string[];
37
+ export declare function getVendor(id: string): VoiceVendorEntry | undefined;
38
+ export declare function allVendorIds(): VoiceVendorId[];
39
+ /** STT-capable providers for customer configuration (excludes `mock`). */
40
+ export declare function customerSttProviderIds(): VoiceVendorId[];
41
+ /** TTS-capable providers for customer configuration (excludes `mock`). */
42
+ export declare function customerTtsProviderIds(): VoiceVendorId[];
43
+ export declare function sttModelAllowlist(vendorId: string): readonly string[];
44
+ export declare function ttsModelAllowlist(vendorId: string): readonly string[];
45
+ export declare function ttsVoiceAllowlist(vendorId: string): readonly string[];
46
+ export type VoiceCatalogValidationKind = 'sttModel' | 'ttsModel' | 'ttsVoice';
47
+ export interface VoiceCatalogValidationError {
48
+ kind: VoiceCatalogValidationKind;
49
+ vendorId: string;
50
+ value: string;
51
+ message: string;
52
+ }
53
+ /** Returns `null` when the model/voice is in the published allowlist for that vendor. */
54
+ export declare function validateVoiceCatalogChoice(vendorId: string, kind: VoiceCatalogValidationKind, value: string): VoiceCatalogValidationError | null;
55
+ export { vendorsCatalogJson as loadVendorsCatalog, azureTtsVoicesJson as loadAzureTtsVoicesCatalog };
56
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAGA,8EAA8E;AAC9E,MAAM,MAAM,aAAa,GACrB,QAAQ,GACR,UAAU,GACV,YAAY,GACZ,UAAU,GACV,YAAY,GACZ,QAAQ,GACR,MAAM,GACN,OAAO,GACP,KAAK,GACL,cAAc,GACd,MAAM,CAAA;AAEV,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,aAAa,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,OAAO,CAAA;IACZ,GAAG,EAAE,OAAO,CAAA;IACZ,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,gEAAgE;IAChE,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE,MAAM,EAAE,CAAA;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,gBAAgB,EAAE,CAAA;CAC5B;AAED,eAAO,MAAM,kBAAkB,EAAE,kBAAyD,CAAA;AAC1F,eAAO,MAAM,kBAAkB,EAAE,qBACe,CAAA;AAEhD,+CAA+C;AAC/C,eAAO,MAAM,aAAa,EAAE,SAAS,gBAAgB,EAA+B,CAAA;AAEpF,uEAAuE;AACvE,eAAO,MAAM,cAAc,EAAE,SAAS,MAAM,EAA8B,CAAA;AAE1E,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAElE;AAED,wBAAgB,YAAY,IAAI,aAAa,EAAE,CAE9C;AAED,0EAA0E;AAC1E,wBAAgB,sBAAsB,IAAI,aAAa,EAAE,CAExD;AAED,0EAA0E;AAC1E,wBAAgB,sBAAsB,IAAI,aAAa,EAAE,CAExD;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAGrE;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAGrE;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAMrE;AAED,MAAM,MAAM,0BAA0B,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,CAAA;AAE7E,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,0BAA0B,CAAA;IAChC,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,yFAAyF;AACzF,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,0BAA0B,EAChC,KAAK,EAAE,MAAM,GACZ,2BAA2B,GAAG,IAAI,CA+DpC;AAED,OAAO,EAAE,kBAAkB,IAAI,kBAAkB,EAAE,kBAAkB,IAAI,yBAAyB,EAAE,CAAA"}
@@ -0,0 +1,100 @@
1
+ import vendorsCatalog from '../catalog/vendors.json';
2
+ import azureTtsVoicesCatalog from '../catalog/azure-tts-voices.json';
3
+ export const vendorsCatalogJson = vendorsCatalog;
4
+ export const azureTtsVoicesJson = azureTtsVoicesCatalog;
5
+ /** All vendors from `catalog/vendors.json`. */
6
+ export const VOICE_VENDORS = vendorsCatalogJson.vendors;
7
+ /** Azure TTS ShortNames snapshot (`catalog/azure-tts-voices.json`). */
8
+ export const azureTtsVoices = azureTtsVoicesJson.voices;
9
+ export function getVendor(id) {
10
+ return VOICE_VENDORS.find((entry) => entry.id === id);
11
+ }
12
+ export function allVendorIds() {
13
+ return VOICE_VENDORS.map((entry) => entry.id);
14
+ }
15
+ /** STT-capable providers for customer configuration (excludes `mock`). */
16
+ export function customerSttProviderIds() {
17
+ return VOICE_VENDORS.filter((entry) => entry.stt && entry.id !== 'mock').map((entry) => entry.id);
18
+ }
19
+ /** TTS-capable providers for customer configuration (excludes `mock`). */
20
+ export function customerTtsProviderIds() {
21
+ return VOICE_VENDORS.filter((entry) => entry.tts && entry.id !== 'mock').map((entry) => entry.id);
22
+ }
23
+ export function sttModelAllowlist(vendorId) {
24
+ const vendor = getVendor(vendorId);
25
+ return vendor?.sttModels ?? [];
26
+ }
27
+ export function ttsModelAllowlist(vendorId) {
28
+ const vendor = getVendor(vendorId);
29
+ return vendor?.ttsModels ?? [];
30
+ }
31
+ export function ttsVoiceAllowlist(vendorId) {
32
+ if (vendorId === 'azure') {
33
+ return azureTtsVoices;
34
+ }
35
+ const vendor = getVendor(vendorId);
36
+ return vendor?.ttsVoices ?? [];
37
+ }
38
+ /** Returns `null` when the model/voice is in the published allowlist for that vendor. */
39
+ export function validateVoiceCatalogChoice(vendorId, kind, value) {
40
+ const vendor = getVendor(vendorId);
41
+ if (!vendor) {
42
+ return {
43
+ kind,
44
+ vendorId,
45
+ value,
46
+ message: `unknown vendor id \`${vendorId}\``,
47
+ };
48
+ }
49
+ let allowlist;
50
+ switch (kind) {
51
+ case 'sttModel':
52
+ if (!vendor.stt) {
53
+ return {
54
+ kind,
55
+ vendorId,
56
+ value,
57
+ message: `vendor \`${vendorId}\` does not support STT`,
58
+ };
59
+ }
60
+ allowlist = sttModelAllowlist(vendorId);
61
+ break;
62
+ case 'ttsModel':
63
+ if (!vendor.tts) {
64
+ return {
65
+ kind,
66
+ vendorId,
67
+ value,
68
+ message: `vendor \`${vendorId}\` does not support TTS`,
69
+ };
70
+ }
71
+ allowlist = ttsModelAllowlist(vendorId);
72
+ break;
73
+ case 'ttsVoice':
74
+ if (!vendor.tts) {
75
+ return {
76
+ kind,
77
+ vendorId,
78
+ value,
79
+ message: `vendor \`${vendorId}\` does not support TTS`,
80
+ };
81
+ }
82
+ allowlist = ttsVoiceAllowlist(vendorId);
83
+ break;
84
+ }
85
+ if (allowlist.length === 0) {
86
+ // local-sherpa / google TTS voices / deepgram TTS models: no hardcoded zoo in catalog
87
+ return null;
88
+ }
89
+ if (!allowlist.includes(value)) {
90
+ return {
91
+ kind,
92
+ vendorId,
93
+ value,
94
+ message: `unsupported ${kind} \`${value}\` for vendor \`${vendorId}\``,
95
+ };
96
+ }
97
+ return null;
98
+ }
99
+ export { vendorsCatalogJson as loadVendorsCatalog, azureTtsVoicesJson as loadAzureTtsVoicesCatalog };
100
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,53 @@
1
+ {
2
+ "name": "@node-webrtc-rust/voice-catalog",
3
+ "version": "0.9.16",
4
+ "description": "Published STT/TTS vendor allowlists and documentation links for VoiceAgent providers",
5
+ "keywords": [
6
+ "webrtc",
7
+ "voice-agent",
8
+ "stt",
9
+ "tts",
10
+ "speech",
11
+ "catalog",
12
+ "typescript"
13
+ ],
14
+ "homepage": "https://github.com/akirilyuk/node-webrtc-rust#readme",
15
+ "bugs": {
16
+ "url": "https://github.com/akirilyuk/node-webrtc-rust/issues"
17
+ },
18
+ "repository": {
19
+ "type": "git",
20
+ "url": "git+https://github.com/akirilyuk/node-webrtc-rust.git",
21
+ "directory": "packages/voice-catalog"
22
+ },
23
+ "main": "dist/cjs/src/index.js",
24
+ "module": "dist/esm/src/index.js",
25
+ "types": "dist/cjs/src/index.d.ts",
26
+ "exports": {
27
+ ".": {
28
+ "types": "./dist/cjs/src/index.d.ts",
29
+ "import": "./dist/esm/src/index.js",
30
+ "require": "./dist/cjs/src/index.js"
31
+ },
32
+ "./catalog/vendors.json": "./catalog/vendors.json",
33
+ "./catalog/azure-tts-voices.json": "./catalog/azure-tts-voices.json"
34
+ },
35
+ "files": [
36
+ "dist",
37
+ "catalog"
38
+ ],
39
+ "scripts": {
40
+ "build": "tsc -p tsconfig.json && tsc -p tsconfig.esm.json && node -e \"require('fs').writeFileSync('dist/esm/package.json', '{\\\"type\\\":\\\"module\\\"}\\\\n')\"",
41
+ "typecheck": "tsc --noEmit -p tsconfig.json",
42
+ "test": "vitest run"
43
+ },
44
+ "devDependencies": {
45
+ "@types/node": "^22.10.0",
46
+ "typescript": "^5.7.0",
47
+ "vitest": "^2.1.8"
48
+ },
49
+ "license": "MIT",
50
+ "engines": {
51
+ "node": ">=18"
52
+ }
53
+ }