@loonylabs/tts-middleware 0.1.1
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/LICENSE +21 -0
- package/README.md +201 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +39 -0
- package/dist/index.js.map +1 -0
- package/dist/middleware/services/tts/index.d.ts +30 -0
- package/dist/middleware/services/tts/index.d.ts.map +1 -0
- package/dist/middleware/services/tts/index.js +69 -0
- package/dist/middleware/services/tts/index.js.map +1 -0
- package/dist/middleware/services/tts/providers/azure-provider.d.ts +131 -0
- package/dist/middleware/services/tts/providers/azure-provider.d.ts.map +1 -0
- package/dist/middleware/services/tts/providers/azure-provider.js +375 -0
- package/dist/middleware/services/tts/providers/azure-provider.js.map +1 -0
- package/dist/middleware/services/tts/providers/base-tts-provider.d.ts +204 -0
- package/dist/middleware/services/tts/providers/base-tts-provider.d.ts.map +1 -0
- package/dist/middleware/services/tts/providers/base-tts-provider.js +267 -0
- package/dist/middleware/services/tts/providers/base-tts-provider.js.map +1 -0
- package/dist/middleware/services/tts/providers/edenai-provider.d.ts +112 -0
- package/dist/middleware/services/tts/providers/edenai-provider.d.ts.map +1 -0
- package/dist/middleware/services/tts/providers/edenai-provider.js +289 -0
- package/dist/middleware/services/tts/providers/edenai-provider.js.map +1 -0
- package/dist/middleware/services/tts/providers/index.d.ts +9 -0
- package/dist/middleware/services/tts/providers/index.d.ts.map +1 -0
- package/dist/middleware/services/tts/providers/index.js +29 -0
- package/dist/middleware/services/tts/providers/index.js.map +1 -0
- package/dist/middleware/services/tts/tts.service.d.ts +175 -0
- package/dist/middleware/services/tts/tts.service.d.ts.map +1 -0
- package/dist/middleware/services/tts/tts.service.js +287 -0
- package/dist/middleware/services/tts/tts.service.js.map +1 -0
- package/dist/middleware/services/tts/types/common.types.d.ts +303 -0
- package/dist/middleware/services/tts/types/common.types.d.ts.map +1 -0
- package/dist/middleware/services/tts/types/common.types.js +42 -0
- package/dist/middleware/services/tts/types/common.types.js.map +1 -0
- package/dist/middleware/services/tts/types/index.d.ts +22 -0
- package/dist/middleware/services/tts/types/index.d.ts.map +1 -0
- package/dist/middleware/services/tts/types/index.js +46 -0
- package/dist/middleware/services/tts/types/index.js.map +1 -0
- package/dist/middleware/services/tts/types/provider-options.types.d.ts +414 -0
- package/dist/middleware/services/tts/types/provider-options.types.d.ts.map +1 -0
- package/dist/middleware/services/tts/types/provider-options.types.js +71 -0
- package/dist/middleware/services/tts/types/provider-options.types.js.map +1 -0
- package/dist/middleware/services/tts/utils/character-counter.utils.d.ts +160 -0
- package/dist/middleware/services/tts/utils/character-counter.utils.d.ts.map +1 -0
- package/dist/middleware/services/tts/utils/character-counter.utils.js +205 -0
- package/dist/middleware/services/tts/utils/character-counter.utils.js.map +1 -0
- package/dist/middleware/services/tts/utils/index.d.ts +9 -0
- package/dist/middleware/services/tts/utils/index.d.ts.map +1 -0
- package/dist/middleware/services/tts/utils/index.js +25 -0
- package/dist/middleware/services/tts/utils/index.js.map +1 -0
- package/dist/middleware/services/tts/utils/logger.utils.d.ts +116 -0
- package/dist/middleware/services/tts/utils/logger.utils.d.ts.map +1 -0
- package/dist/middleware/services/tts/utils/logger.utils.js +186 -0
- package/dist/middleware/services/tts/utils/logger.utils.js.map +1 -0
- package/dist/middleware/shared/config/tts.config.d.ts +147 -0
- package/dist/middleware/shared/config/tts.config.d.ts.map +1 -0
- package/dist/middleware/shared/config/tts.config.js +162 -0
- package/dist/middleware/shared/config/tts.config.js.map +1 -0
- package/package.json +94 -0
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Common types and interfaces for TTS Middleware
|
|
3
|
+
*
|
|
4
|
+
* These types form the contract between the TTS middleware and consuming applications.
|
|
5
|
+
* All provider parameters are pre-typed to prevent breaking API changes when adding new providers.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Supported TTS providers
|
|
9
|
+
*
|
|
10
|
+
* @MVP ✅ AZURE - Microsoft Azure Speech Services (EU-compliant, free tier)
|
|
11
|
+
* @Current ✅ EDENAI - EdenAI multi-provider aggregator
|
|
12
|
+
* @Future 🔮 OPENAI - OpenAI TTS API
|
|
13
|
+
* @Future 🔮 ELEVENLABS - ElevenLabs TTS API
|
|
14
|
+
* @Future 🔮 GOOGLE - Google Cloud Text-to-Speech
|
|
15
|
+
* @Future 🔮 DEEPGRAM - Deepgram TTS API
|
|
16
|
+
*/
|
|
17
|
+
export declare enum TTSProvider {
|
|
18
|
+
AZURE = "azure",
|
|
19
|
+
EDENAI = "edenai",
|
|
20
|
+
OPENAI = "openai",
|
|
21
|
+
ELEVENLABS = "elevenlabs",
|
|
22
|
+
GOOGLE = "google",
|
|
23
|
+
DEEPGRAM = "deepgram"
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Audio format options supported across providers
|
|
27
|
+
*
|
|
28
|
+
* @MVP ✅ mp3, wav, opus - Supported by Azure
|
|
29
|
+
* @Future 🔮 aac, flac - Additional formats for other providers
|
|
30
|
+
*/
|
|
31
|
+
export type AudioFormat = 'mp3' | 'wav' | 'opus' | 'aac' | 'flac';
|
|
32
|
+
/**
|
|
33
|
+
* Audio configuration options
|
|
34
|
+
*/
|
|
35
|
+
export interface AudioOptions {
|
|
36
|
+
/**
|
|
37
|
+
* Audio output format
|
|
38
|
+
* @MVP ✅ Implemented: mp3, wav, opus
|
|
39
|
+
* @Future 🔮 aac, flac
|
|
40
|
+
* @default 'mp3'
|
|
41
|
+
*/
|
|
42
|
+
format?: AudioFormat;
|
|
43
|
+
/**
|
|
44
|
+
* Speech speed multiplier
|
|
45
|
+
* @MVP ✅ Implemented (Azure)
|
|
46
|
+
* @range 0.5 - 2.0
|
|
47
|
+
* @default 1.0
|
|
48
|
+
* @providers All providers support this
|
|
49
|
+
*/
|
|
50
|
+
speed?: number;
|
|
51
|
+
/**
|
|
52
|
+
* Pitch adjustment in semitones
|
|
53
|
+
* @Future 🔮 Google, Azure
|
|
54
|
+
* @range -20 to 20
|
|
55
|
+
* @default 0
|
|
56
|
+
*/
|
|
57
|
+
pitch?: number;
|
|
58
|
+
/**
|
|
59
|
+
* Volume gain in decibels
|
|
60
|
+
* @Future 🔮 Google
|
|
61
|
+
* @range -96 to 16
|
|
62
|
+
* @default 0
|
|
63
|
+
*/
|
|
64
|
+
volumeGainDb?: number;
|
|
65
|
+
/**
|
|
66
|
+
* Audio sample rate in Hz
|
|
67
|
+
* @MVP ✅ Implemented (Azure)
|
|
68
|
+
* @options 8000, 16000, 24000, 48000
|
|
69
|
+
* @default 24000
|
|
70
|
+
*/
|
|
71
|
+
sampleRate?: number;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Voice configuration
|
|
75
|
+
*/
|
|
76
|
+
export interface VoiceConfig {
|
|
77
|
+
/**
|
|
78
|
+
* Voice identifier (provider-specific)
|
|
79
|
+
* @MVP ✅ Implemented
|
|
80
|
+
* @example Azure: 'de-DE-KatjaNeural', 'en-US-JennyNeural'
|
|
81
|
+
* @example OpenAI: 'alloy', 'echo', 'fable', 'onyx', 'nova', 'shimmer'
|
|
82
|
+
* @example ElevenLabs: 'voice_xyz123'
|
|
83
|
+
*/
|
|
84
|
+
id: string;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* TTS synthesis request
|
|
88
|
+
*
|
|
89
|
+
* @description Request object for converting text to speech
|
|
90
|
+
*
|
|
91
|
+
* @example
|
|
92
|
+
* ```typescript
|
|
93
|
+
* const request: TTSSynthesizeRequest = {
|
|
94
|
+
* text: "Hello, how are you?",
|
|
95
|
+
* provider: TTSProvider.AZURE,
|
|
96
|
+
* voice: { id: 'en-US-JennyNeural' },
|
|
97
|
+
* audio: { speed: 1.0, format: 'mp3' }
|
|
98
|
+
* };
|
|
99
|
+
* ```
|
|
100
|
+
*/
|
|
101
|
+
export interface TTSSynthesizeRequest {
|
|
102
|
+
/**
|
|
103
|
+
* Input text to synthesize
|
|
104
|
+
* @MVP ✅ Implemented
|
|
105
|
+
* @example "Hello, how are you?"
|
|
106
|
+
*/
|
|
107
|
+
text: string;
|
|
108
|
+
/**
|
|
109
|
+
* TTS provider to use
|
|
110
|
+
* @MVP ✅ Implemented
|
|
111
|
+
* @optional Uses default provider if not specified
|
|
112
|
+
* @default TTSProvider.AZURE
|
|
113
|
+
*/
|
|
114
|
+
provider?: TTSProvider;
|
|
115
|
+
/**
|
|
116
|
+
* Voice configuration
|
|
117
|
+
* @MVP ✅ Implemented
|
|
118
|
+
*/
|
|
119
|
+
voice: VoiceConfig;
|
|
120
|
+
/**
|
|
121
|
+
* Audio output options
|
|
122
|
+
* @MVP ✅ Implemented (Azure supports format, speed, sampleRate)
|
|
123
|
+
* @Future 🔮 pitch, volumeGainDb
|
|
124
|
+
*/
|
|
125
|
+
audio?: AudioOptions;
|
|
126
|
+
/**
|
|
127
|
+
* Provider-specific options
|
|
128
|
+
* @MVP ✅ Implemented (Azure: emotion, style)
|
|
129
|
+
* @Future 🔮 OpenAI, ElevenLabs, Google, Deepgram options
|
|
130
|
+
*
|
|
131
|
+
* @description Use this for provider-specific parameters that don't fit
|
|
132
|
+
* into the universal interface. See provider-options.types.ts for
|
|
133
|
+
* typed options per provider.
|
|
134
|
+
*
|
|
135
|
+
* @example Azure
|
|
136
|
+
* ```typescript
|
|
137
|
+
* providerOptions: { emotion: 'cheerful', style: 'chat' }
|
|
138
|
+
* ```
|
|
139
|
+
*
|
|
140
|
+
* @example ElevenLabs
|
|
141
|
+
* ```typescript
|
|
142
|
+
* providerOptions: { stability: 0.5, similarity_boost: 0.75 }
|
|
143
|
+
* ```
|
|
144
|
+
*/
|
|
145
|
+
providerOptions?: Record<string, unknown>;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* TTS response metadata
|
|
149
|
+
*/
|
|
150
|
+
export interface TTSResponseMetadata {
|
|
151
|
+
/**
|
|
152
|
+
* Provider that generated the audio
|
|
153
|
+
* @MVP ✅ Implemented
|
|
154
|
+
*/
|
|
155
|
+
provider: string;
|
|
156
|
+
/**
|
|
157
|
+
* Voice ID that was used
|
|
158
|
+
* @MVP ✅ Implemented
|
|
159
|
+
*/
|
|
160
|
+
voice: string;
|
|
161
|
+
/**
|
|
162
|
+
* Audio duration in milliseconds
|
|
163
|
+
* @MVP ✅ Implemented
|
|
164
|
+
*/
|
|
165
|
+
duration: number;
|
|
166
|
+
/**
|
|
167
|
+
* Audio format of the output
|
|
168
|
+
* @MVP ✅ Implemented
|
|
169
|
+
*/
|
|
170
|
+
audioFormat: string;
|
|
171
|
+
/**
|
|
172
|
+
* Sample rate in Hz
|
|
173
|
+
* @MVP ✅ Implemented
|
|
174
|
+
*/
|
|
175
|
+
sampleRate: number;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Billing information for the TTS request
|
|
179
|
+
*
|
|
180
|
+
* @description Consumer application uses this to calculate costs based on
|
|
181
|
+
* their provider rates. Middleware does not calculate costs.
|
|
182
|
+
*/
|
|
183
|
+
export interface TTSBillingInfo {
|
|
184
|
+
/**
|
|
185
|
+
* Number of characters in the input text
|
|
186
|
+
* @MVP ✅ Implemented
|
|
187
|
+
*
|
|
188
|
+
* @description This count excludes SSML markup (for providers that use SSML internally).
|
|
189
|
+
* The count includes spaces, punctuation, and newlines.
|
|
190
|
+
*
|
|
191
|
+
* Consumer apps calculate cost as:
|
|
192
|
+
* - Azure: (characters / 1_000_000) * $16
|
|
193
|
+
* - OpenAI: (characters / 1_000_000) * $15
|
|
194
|
+
* - ElevenLabs: (characters / 1_000_000) * $150-200
|
|
195
|
+
*/
|
|
196
|
+
characters: number;
|
|
197
|
+
/**
|
|
198
|
+
* Number of tokens used (for token-based providers)
|
|
199
|
+
* @Future 🔮 OpenAI gpt-4o-mini-tts
|
|
200
|
+
*
|
|
201
|
+
* @description Only populated for token-based providers like OpenAI's newer models.
|
|
202
|
+
* Most providers use character-based billing, so this will be undefined.
|
|
203
|
+
*/
|
|
204
|
+
tokensUsed?: number;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* TTS synthesis response
|
|
208
|
+
*
|
|
209
|
+
* @description Response from TTS synthesis containing audio data,
|
|
210
|
+
* metadata, and billing information
|
|
211
|
+
*/
|
|
212
|
+
export interface TTSResponse {
|
|
213
|
+
/**
|
|
214
|
+
* Raw audio data as Buffer
|
|
215
|
+
* @MVP ✅ Implemented
|
|
216
|
+
*
|
|
217
|
+
* @description Binary audio data in the requested format (MP3, WAV, etc.)
|
|
218
|
+
*
|
|
219
|
+
* @example
|
|
220
|
+
* ```typescript
|
|
221
|
+
* import fs from 'fs';
|
|
222
|
+
* fs.writeFileSync('output.mp3', response.audio);
|
|
223
|
+
* ```
|
|
224
|
+
*/
|
|
225
|
+
audio: Buffer;
|
|
226
|
+
/**
|
|
227
|
+
* Metadata about the synthesis
|
|
228
|
+
* @MVP ✅ Implemented
|
|
229
|
+
*/
|
|
230
|
+
metadata: TTSResponseMetadata;
|
|
231
|
+
/**
|
|
232
|
+
* Billing information for cost calculation
|
|
233
|
+
* @MVP ✅ Implemented
|
|
234
|
+
*/
|
|
235
|
+
billing: TTSBillingInfo;
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Voice information (for future voice catalog feature)
|
|
239
|
+
*
|
|
240
|
+
* @Future 🔮 Not implemented in MVP - used for listVoices() API
|
|
241
|
+
*/
|
|
242
|
+
export interface TTSVoice {
|
|
243
|
+
/**
|
|
244
|
+
* Unique voice identifier
|
|
245
|
+
*/
|
|
246
|
+
id: string;
|
|
247
|
+
/**
|
|
248
|
+
* Human-readable voice name
|
|
249
|
+
*/
|
|
250
|
+
name: string;
|
|
251
|
+
/**
|
|
252
|
+
* Language code (e.g., 'en-US', 'de-DE')
|
|
253
|
+
*/
|
|
254
|
+
language: string;
|
|
255
|
+
/**
|
|
256
|
+
* Voice gender
|
|
257
|
+
*/
|
|
258
|
+
gender: 'male' | 'female' | 'neutral';
|
|
259
|
+
/**
|
|
260
|
+
* Provider that offers this voice
|
|
261
|
+
*/
|
|
262
|
+
provider: TTSProvider;
|
|
263
|
+
/**
|
|
264
|
+
* Additional provider-specific metadata
|
|
265
|
+
*/
|
|
266
|
+
metadata?: TTSVoiceMetadata;
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Provider-specific voice metadata
|
|
270
|
+
*
|
|
271
|
+
* @Future 🔮 Not implemented in MVP
|
|
272
|
+
*/
|
|
273
|
+
export interface TTSVoiceMetadata {
|
|
274
|
+
/**
|
|
275
|
+
* Voice quality/tier (e.g., 'standard', 'neural', 'premium')
|
|
276
|
+
*/
|
|
277
|
+
quality?: string;
|
|
278
|
+
/**
|
|
279
|
+
* Supported styles (Azure-specific)
|
|
280
|
+
*/
|
|
281
|
+
styles?: string[];
|
|
282
|
+
/**
|
|
283
|
+
* Supported emotions (Azure-specific)
|
|
284
|
+
*/
|
|
285
|
+
emotions?: string[];
|
|
286
|
+
/**
|
|
287
|
+
* Additional properties
|
|
288
|
+
*/
|
|
289
|
+
[key: string]: unknown;
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* Error codes for TTS operations
|
|
293
|
+
*/
|
|
294
|
+
export declare enum TTSErrorCode {
|
|
295
|
+
INVALID_CONFIG = "INVALID_CONFIG",
|
|
296
|
+
INVALID_VOICE = "INVALID_VOICE",
|
|
297
|
+
QUOTA_EXCEEDED = "QUOTA_EXCEEDED",
|
|
298
|
+
PROVIDER_UNAVAILABLE = "PROVIDER_UNAVAILABLE",
|
|
299
|
+
SYNTHESIS_FAILED = "SYNTHESIS_FAILED",
|
|
300
|
+
NETWORK_ERROR = "NETWORK_ERROR",
|
|
301
|
+
UNKNOWN_ERROR = "UNKNOWN_ERROR"
|
|
302
|
+
}
|
|
303
|
+
//# sourceMappingURL=common.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.types.d.ts","sourceRoot":"","sources":["../../../../../src/middleware/services/tts/types/common.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Common types and interfaces for TTS Middleware
|
|
4
|
+
*
|
|
5
|
+
* These types form the contract between the TTS middleware and consuming applications.
|
|
6
|
+
* All provider parameters are pre-typed to prevent breaking API changes when adding new providers.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.TTSErrorCode = exports.TTSProvider = void 0;
|
|
10
|
+
/**
|
|
11
|
+
* Supported TTS providers
|
|
12
|
+
*
|
|
13
|
+
* @MVP ✅ AZURE - Microsoft Azure Speech Services (EU-compliant, free tier)
|
|
14
|
+
* @Current ✅ EDENAI - EdenAI multi-provider aggregator
|
|
15
|
+
* @Future 🔮 OPENAI - OpenAI TTS API
|
|
16
|
+
* @Future 🔮 ELEVENLABS - ElevenLabs TTS API
|
|
17
|
+
* @Future 🔮 GOOGLE - Google Cloud Text-to-Speech
|
|
18
|
+
* @Future 🔮 DEEPGRAM - Deepgram TTS API
|
|
19
|
+
*/
|
|
20
|
+
var TTSProvider;
|
|
21
|
+
(function (TTSProvider) {
|
|
22
|
+
TTSProvider["AZURE"] = "azure";
|
|
23
|
+
TTSProvider["EDENAI"] = "edenai";
|
|
24
|
+
TTSProvider["OPENAI"] = "openai";
|
|
25
|
+
TTSProvider["ELEVENLABS"] = "elevenlabs";
|
|
26
|
+
TTSProvider["GOOGLE"] = "google";
|
|
27
|
+
TTSProvider["DEEPGRAM"] = "deepgram";
|
|
28
|
+
})(TTSProvider || (exports.TTSProvider = TTSProvider = {}));
|
|
29
|
+
/**
|
|
30
|
+
* Error codes for TTS operations
|
|
31
|
+
*/
|
|
32
|
+
var TTSErrorCode;
|
|
33
|
+
(function (TTSErrorCode) {
|
|
34
|
+
TTSErrorCode["INVALID_CONFIG"] = "INVALID_CONFIG";
|
|
35
|
+
TTSErrorCode["INVALID_VOICE"] = "INVALID_VOICE";
|
|
36
|
+
TTSErrorCode["QUOTA_EXCEEDED"] = "QUOTA_EXCEEDED";
|
|
37
|
+
TTSErrorCode["PROVIDER_UNAVAILABLE"] = "PROVIDER_UNAVAILABLE";
|
|
38
|
+
TTSErrorCode["SYNTHESIS_FAILED"] = "SYNTHESIS_FAILED";
|
|
39
|
+
TTSErrorCode["NETWORK_ERROR"] = "NETWORK_ERROR";
|
|
40
|
+
TTSErrorCode["UNKNOWN_ERROR"] = "UNKNOWN_ERROR";
|
|
41
|
+
})(TTSErrorCode || (exports.TTSErrorCode = TTSErrorCode = {}));
|
|
42
|
+
//# sourceMappingURL=common.types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.types.js","sourceRoot":"","sources":["../../../../../src/middleware/services/tts/types/common.types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH;;;;;;;;;GASG;AACH,IAAY,WAOX;AAPD,WAAY,WAAW;IACrB,8BAAe,CAAA;IACf,gCAAiB,CAAA;IACjB,gCAAiB,CAAA;IACjB,wCAAyB,CAAA;IACzB,gCAAiB,CAAA;IACjB,oCAAqB,CAAA;AACvB,CAAC,EAPW,WAAW,2BAAX,WAAW,QAOtB;AA4SD;;GAEG;AACH,IAAY,YAQX;AARD,WAAY,YAAY;IACtB,iDAAiC,CAAA;IACjC,+CAA+B,CAAA;IAC/B,iDAAiC,CAAA;IACjC,6DAA6C,CAAA;IAC7C,qDAAqC,CAAA;IACrC,+CAA+B,CAAA;IAC/B,+CAA+B,CAAA;AACjC,CAAC,EARW,YAAY,4BAAZ,YAAY,QAQvB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TTS Middleware Types
|
|
3
|
+
*
|
|
4
|
+
* Public API exports for all TTS types and interfaces.
|
|
5
|
+
*
|
|
6
|
+
* @module @loonylabs/tts-middleware/types
|
|
7
|
+
*/
|
|
8
|
+
export { TTSProvider, TTSErrorCode, AudioFormat, } from './common.types';
|
|
9
|
+
export type { AudioOptions, VoiceConfig, TTSSynthesizeRequest, TTSResponse, TTSResponseMetadata, TTSBillingInfo, TTSVoice, TTSVoiceMetadata, } from './common.types';
|
|
10
|
+
export type { AzureProviderOptions, OpenAIProviderOptions, ElevenLabsProviderOptions, GoogleCloudProviderOptions, DeepgramProviderOptions, EdenAIProviderOptions, ProviderOptions, } from './provider-options.types';
|
|
11
|
+
export { isAzureOptions, isOpenAIOptions, isElevenLabsOptions, isGoogleCloudOptions, isDeepgramOptions, isEdenAIOptions, } from './provider-options.types';
|
|
12
|
+
/**
|
|
13
|
+
* Re-export all types for convenience
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* import type * as TTSTypes from '@loonylabs/tts-middleware/types';
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export * from './common.types';
|
|
21
|
+
export * from './provider-options.types';
|
|
22
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/middleware/services/tts/types/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EACL,WAAW,EACX,YAAY,EACZ,WAAW,GACZ,MAAM,gBAAgB,CAAC;AAExB,YAAY,EACV,YAAY,EACZ,WAAW,EACX,oBAAoB,EACpB,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,QAAQ,EACR,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AAGxB,YAAY,EACV,oBAAoB,EACpB,qBAAqB,EACrB,yBAAyB,EACzB,0BAA0B,EAC1B,uBAAuB,EACvB,qBAAqB,EACrB,eAAe,GAChB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,GAChB,MAAM,0BAA0B,CAAC;AAElC;;;;;;;GAOG;AACH,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* TTS Middleware Types
|
|
4
|
+
*
|
|
5
|
+
* Public API exports for all TTS types and interfaces.
|
|
6
|
+
*
|
|
7
|
+
* @module @loonylabs/tts-middleware/types
|
|
8
|
+
*/
|
|
9
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
12
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
13
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
14
|
+
}
|
|
15
|
+
Object.defineProperty(o, k2, desc);
|
|
16
|
+
}) : (function(o, m, k, k2) {
|
|
17
|
+
if (k2 === undefined) k2 = k;
|
|
18
|
+
o[k2] = m[k];
|
|
19
|
+
}));
|
|
20
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
21
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
22
|
+
};
|
|
23
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
+
exports.isEdenAIOptions = exports.isDeepgramOptions = exports.isGoogleCloudOptions = exports.isElevenLabsOptions = exports.isOpenAIOptions = exports.isAzureOptions = exports.TTSErrorCode = exports.TTSProvider = void 0;
|
|
25
|
+
// ===== Common Types (Universal) =====
|
|
26
|
+
var common_types_1 = require("./common.types");
|
|
27
|
+
Object.defineProperty(exports, "TTSProvider", { enumerable: true, get: function () { return common_types_1.TTSProvider; } });
|
|
28
|
+
Object.defineProperty(exports, "TTSErrorCode", { enumerable: true, get: function () { return common_types_1.TTSErrorCode; } });
|
|
29
|
+
var provider_options_types_1 = require("./provider-options.types");
|
|
30
|
+
Object.defineProperty(exports, "isAzureOptions", { enumerable: true, get: function () { return provider_options_types_1.isAzureOptions; } });
|
|
31
|
+
Object.defineProperty(exports, "isOpenAIOptions", { enumerable: true, get: function () { return provider_options_types_1.isOpenAIOptions; } });
|
|
32
|
+
Object.defineProperty(exports, "isElevenLabsOptions", { enumerable: true, get: function () { return provider_options_types_1.isElevenLabsOptions; } });
|
|
33
|
+
Object.defineProperty(exports, "isGoogleCloudOptions", { enumerable: true, get: function () { return provider_options_types_1.isGoogleCloudOptions; } });
|
|
34
|
+
Object.defineProperty(exports, "isDeepgramOptions", { enumerable: true, get: function () { return provider_options_types_1.isDeepgramOptions; } });
|
|
35
|
+
Object.defineProperty(exports, "isEdenAIOptions", { enumerable: true, get: function () { return provider_options_types_1.isEdenAIOptions; } });
|
|
36
|
+
/**
|
|
37
|
+
* Re-export all types for convenience
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* ```typescript
|
|
41
|
+
* import type * as TTSTypes from '@loonylabs/tts-middleware/types';
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
__exportStar(require("./common.types"), exports);
|
|
45
|
+
__exportStar(require("./provider-options.types"), exports);
|
|
46
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/middleware/services/tts/types/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;;AAEH,uCAAuC;AACvC,+CAIwB;AAHtB,2GAAA,WAAW,OAAA;AACX,4GAAA,YAAY,OAAA;AA0Bd,mEAOkC;AANhC,wHAAA,cAAc,OAAA;AACd,yHAAA,eAAe,OAAA;AACf,6HAAA,mBAAmB,OAAA;AACnB,8HAAA,oBAAoB,OAAA;AACpB,2HAAA,iBAAiB,OAAA;AACjB,yHAAA,eAAe,OAAA;AAGjB;;;;;;;GAOG;AACH,iDAA+B;AAC/B,2DAAyC"}
|