@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 @@
|
|
|
1
|
+
{"version":3,"file":"edenai-provider.js","sourceRoot":"","sources":["../../../../../src/middleware/services/tts/providers/edenai-provider.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAGH,oCAAuC;AACvC,2DAG6B;AAwB7B;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAa,cAAe,SAAQ,mCAAe;IAIjD;;;;;OAKG;IACH,YAAY,MAA8B;QACxC,KAAK,CAAC,mBAAW,CAAC,MAAM,CAAC,CAAC;QAE1B,yDAAyD;QACzD,IAAI,CAAC,MAAM,GAAG;YACZ,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE;YAC1D,MAAM,EAAE,MAAM,EAAE,MAAM;SACvB,CAAC;QAEF,IAAI,CAAC,MAAM;YACT,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,gDAAgD,CAAC;QAEzE,yBAAyB;QACzB,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAE5B,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,6BAA6B,EAAE;YAC9C,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM;YAC/B,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACK,oBAAoB;QAC1B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACxB,MAAM,IAAI,sCAAkB,CAC1B,IAAI,CAAC,YAAY,EACjB,6CAA6C,CAC9C,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,UAAU,CACd,IAAY,EACZ,OAAe,EACf,OAA6B;QAE7B,yBAAyB;QACzB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAE7B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,sFAAsF;QACtF,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,eAAe,IAAI,EAAE,CAA0B,CAAC;QAEzE,uBAAuB;QACvB,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAE/E,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,0BAA0B,EAAE;YAC5C,OAAO;YACP,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,MAAM;YACpC,UAAU,EAAE,IAAI,CAAC,MAAM;SACxB,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,kBAAkB;YAClB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;YAE5D,qBAAqB;YACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YAExC,4CAA4C;YAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAE9C,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,sBAAsB,EAAE;gBACvC,OAAO;gBACP,UAAU;gBACV,QAAQ;gBACR,SAAS,EAAE,WAAW,CAAC,MAAM;aAC9B,CAAC,CAAC;YAEH,kBAAkB;YAClB,OAAO;gBACL,KAAK,EAAE,WAAW;gBAClB,QAAQ,EAAE;oBACR,QAAQ,EAAE,IAAI,CAAC,YAAY;oBAC3B,KAAK,EAAE,OAAO;oBACd,QAAQ;oBACR,WAAW,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,IAAI,OAAO,CAAC,YAAY,IAAI,KAAK;oBACnE,UAAU,EAAE,OAAO,CAAC,KAAK,EAAE,UAAU,IAAI,OAAO,CAAC,aAAa,IAAI,KAAK;iBACxE;gBACD,OAAO,EAAE;oBACP,UAAU;iBACX;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,kBAAkB,EAAE;gBACpC,OAAO;gBACP,KAAK,EAAG,KAAe,CAAC,OAAO;aAChC,CAAC,CAAC;YAEH,MAAM,IAAI,CAAC,WAAW,CAAC,KAAc,EAAE,wBAAwB,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACK,kBAAkB,CACxB,IAAY,EACZ,OAAe,EACf,OAA6B,EAC7B,OAA8B;QAE9B,4FAA4F;QAC5F,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAE/C,eAAe;QACf,MAAM,aAAa,GAA4B;YAC7C,IAAI;YACJ,QAAQ;YACR,MAAM,EAAE,OAAO,EAAE,4CAA4C;YAC7D,SAAS,EAAE,OAAO,CAAC,QAAQ,IAAI,QAAQ,EAAE,4BAA4B;SACtE,CAAC;QAEF,sDAAsD;QACtD,MAAM,QAAQ,GAA4B,EAAE,CAAC;QAE7C,gCAAgC;QAChC,MAAM,YAAY,GAAG,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;QACnE,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,QAAQ,CAAC,aAAa,GAAG,YAAY,CAAC;QACxC,CAAC;QAED,iBAAiB;QACjB,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YACzC,QAAQ,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QACnD,CAAC;QAED,kBAAkB;QAClB,IAAI,OAAO,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;YAC1C,QAAQ,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;QACrD,CAAC;QAED,eAAe;QACf,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;YACvC,QAAQ,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QAC/C,CAAC;QAED,gBAAgB;QAChB,IAAI,OAAO,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YACxC,QAAQ,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QACjD,CAAC;QAED,gEAAgE;QAChE,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,QAAQ,CAAC,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC;QACxC,CAAC;QAED,yDAAyD;QACzD,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrC,aAAa,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACpC,CAAC;QAED,iCAAiC;QACjC,IAAI,OAAO,CAAC,kBAAkB,IAAI,OAAO,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxE,aAAa,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;QAChE,CAAC;QAED,OAAO,aAAa,CAAC;IACvB,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,aAAa,CAAC,WAAoC;QAC9D,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE;gBACxC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;oBAC7C,cAAc,EAAE,kBAAkB;iBACnC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;aAClC,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,CAAC,MAAM,MAAM,SAAS,EAAE,CAAC,CAAC;YACzE,CAAC;YAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAmB,CAAC;YAEvD,8BAA8B;YAC9B,2CAA2C;YAC3C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;YAE9D,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACtD,CAAC;YAED,OAAO,WAAW,CAAC;QACrB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;gBAC3B,MAAM,KAAK,CAAC;YACd,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,EAAE,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,wBAAwB,CACpC,IAAoB;QAEpB,gDAAgD;QAChD,8CAA8C;QAC9C,KAAK,MAAM,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7C,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;YAE1C,mBAAmB;YACnB,IAAI,cAAc,CAAC,KAAK,IAAI,cAAc,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC7D,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,YAAY,SAAS,EAAE;oBAClD,KAAK,EAAE,cAAc,CAAC,KAAK;iBAC5B,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,iCAAiC;YACjC,IAAI,cAAc,CAAC,KAAK,EAAE,CAAC;gBACzB,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,8BAA8B,YAAY,EAAE,CAAC,CAAC;gBAChE,OAAO,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YACrD,CAAC;YAED,sBAAsB;YACtB,IAAI,cAAc,CAAC,kBAAkB,EAAE,CAAC;gBACtC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,yCAAyC,YAAY,GAAG,CAAC,CAAC;gBAC5E,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;gBAErE,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC;oBACtB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,mCAAmC,EAAE;wBACpD,QAAQ,EAAE,YAAY;wBACtB,GAAG,EAAE,cAAc,CAAC,kBAAkB;qBACvC,CAAC,CAAC;oBACH,SAAS;gBACX,CAAC;gBAED,MAAM,WAAW,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE,CAAC;gBACtD,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;;OAYG;IACK,eAAe,CAAC,OAAe;QACrC,mDAAmD;QACnD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAEvD,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,0DAA0D;QAC1D,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAtTD,wCAsTC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TTS Providers
|
|
3
|
+
*
|
|
4
|
+
* Export all provider classes and error types
|
|
5
|
+
*/
|
|
6
|
+
export { BaseTTSProvider, TTSError, InvalidConfigError, InvalidVoiceError, QuotaExceededError, ProviderUnavailableError, SynthesisFailedError, NetworkError, } from './base-tts-provider';
|
|
7
|
+
export { AzureProvider } from './azure-provider';
|
|
8
|
+
export { EdenAIProvider } from './edenai-provider';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/middleware/services/tts/providers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,eAAe,EACf,QAAQ,EACR,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,oBAAoB,EACpB,YAAY,GACb,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* TTS Providers
|
|
4
|
+
*
|
|
5
|
+
* Export all provider classes and error types
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.EdenAIProvider = exports.AzureProvider = exports.NetworkError = exports.SynthesisFailedError = exports.ProviderUnavailableError = exports.QuotaExceededError = exports.InvalidVoiceError = exports.InvalidConfigError = exports.TTSError = exports.BaseTTSProvider = void 0;
|
|
9
|
+
// Base provider and errors
|
|
10
|
+
var base_tts_provider_1 = require("./base-tts-provider");
|
|
11
|
+
Object.defineProperty(exports, "BaseTTSProvider", { enumerable: true, get: function () { return base_tts_provider_1.BaseTTSProvider; } });
|
|
12
|
+
Object.defineProperty(exports, "TTSError", { enumerable: true, get: function () { return base_tts_provider_1.TTSError; } });
|
|
13
|
+
Object.defineProperty(exports, "InvalidConfigError", { enumerable: true, get: function () { return base_tts_provider_1.InvalidConfigError; } });
|
|
14
|
+
Object.defineProperty(exports, "InvalidVoiceError", { enumerable: true, get: function () { return base_tts_provider_1.InvalidVoiceError; } });
|
|
15
|
+
Object.defineProperty(exports, "QuotaExceededError", { enumerable: true, get: function () { return base_tts_provider_1.QuotaExceededError; } });
|
|
16
|
+
Object.defineProperty(exports, "ProviderUnavailableError", { enumerable: true, get: function () { return base_tts_provider_1.ProviderUnavailableError; } });
|
|
17
|
+
Object.defineProperty(exports, "SynthesisFailedError", { enumerable: true, get: function () { return base_tts_provider_1.SynthesisFailedError; } });
|
|
18
|
+
Object.defineProperty(exports, "NetworkError", { enumerable: true, get: function () { return base_tts_provider_1.NetworkError; } });
|
|
19
|
+
// Provider implementations
|
|
20
|
+
var azure_provider_1 = require("./azure-provider");
|
|
21
|
+
Object.defineProperty(exports, "AzureProvider", { enumerable: true, get: function () { return azure_provider_1.AzureProvider; } });
|
|
22
|
+
var edenai_provider_1 = require("./edenai-provider");
|
|
23
|
+
Object.defineProperty(exports, "EdenAIProvider", { enumerable: true, get: function () { return edenai_provider_1.EdenAIProvider; } });
|
|
24
|
+
// Future provider implementations will be exported here:
|
|
25
|
+
// export { OpenAIProvider } from './openai-provider';
|
|
26
|
+
// export { ElevenLabsProvider } from './elevenlabs-provider';
|
|
27
|
+
// export { GoogleProvider } from './google-provider';
|
|
28
|
+
// export { DeepgramProvider } from './deepgram-provider';
|
|
29
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/middleware/services/tts/providers/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,2BAA2B;AAC3B,yDAS6B;AAR3B,oHAAA,eAAe,OAAA;AACf,6GAAA,QAAQ,OAAA;AACR,uHAAA,kBAAkB,OAAA;AAClB,sHAAA,iBAAiB,OAAA;AACjB,uHAAA,kBAAkB,OAAA;AAClB,6HAAA,wBAAwB,OAAA;AACxB,yHAAA,oBAAoB,OAAA;AACpB,iHAAA,YAAY,OAAA;AAGd,2BAA2B;AAC3B,mDAAiD;AAAxC,+GAAA,aAAa,OAAA;AACtB,qDAAmD;AAA1C,iHAAA,cAAc,OAAA;AAEvB,yDAAyD;AACzD,sDAAsD;AACtD,8DAA8D;AAC9D,sDAAsD;AACtD,0DAA0D"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TTS Service Orchestrator
|
|
3
|
+
*
|
|
4
|
+
* @description Main service class that orchestrates TTS provider access.
|
|
5
|
+
* This is the primary API that consuming applications use.
|
|
6
|
+
*
|
|
7
|
+
* Analogous to LLMService in the LLM middleware.
|
|
8
|
+
*/
|
|
9
|
+
import type { TTSSynthesizeRequest, TTSResponse } from './types';
|
|
10
|
+
import { TTSProvider } from './types';
|
|
11
|
+
import type { BaseTTSProvider } from './providers/base-tts-provider';
|
|
12
|
+
/**
|
|
13
|
+
* TTS Service - Main orchestrator for TTS operations
|
|
14
|
+
*
|
|
15
|
+
* @description Singleton service that manages TTS providers and provides
|
|
16
|
+
* a unified API for text-to-speech synthesis across multiple providers.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* import { ttsService, TTSProvider } from '@loonylabs/tts-middleware';
|
|
21
|
+
*
|
|
22
|
+
* // Using default provider
|
|
23
|
+
* const response = await ttsService.synthesize({
|
|
24
|
+
* text: "Hello World",
|
|
25
|
+
* voice: { id: "en-US-JennyNeural" }
|
|
26
|
+
* });
|
|
27
|
+
*
|
|
28
|
+
* // Using specific provider
|
|
29
|
+
* const response = await ttsService.synthesize({
|
|
30
|
+
* text: "Guten Tag",
|
|
31
|
+
* provider: TTSProvider.AZURE,
|
|
32
|
+
* voice: { id: "de-DE-KatjaNeural" }
|
|
33
|
+
* });
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export declare class TTSService {
|
|
37
|
+
/**
|
|
38
|
+
* Provider registry - maps provider enum to provider instance
|
|
39
|
+
*/
|
|
40
|
+
private providers;
|
|
41
|
+
/**
|
|
42
|
+
* Default provider to use when none is specified
|
|
43
|
+
*/
|
|
44
|
+
private defaultProvider;
|
|
45
|
+
/**
|
|
46
|
+
* Creates a new TTS Service instance
|
|
47
|
+
*
|
|
48
|
+
* @description Initializes the service with all available providers.
|
|
49
|
+
* Providers are lazily initialized - they're only created when first accessed.
|
|
50
|
+
*/
|
|
51
|
+
constructor();
|
|
52
|
+
/**
|
|
53
|
+
* Initialize available providers
|
|
54
|
+
*
|
|
55
|
+
* @private
|
|
56
|
+
*/
|
|
57
|
+
private initializeProviders;
|
|
58
|
+
/**
|
|
59
|
+
* Parse provider string to TTSProvider enum
|
|
60
|
+
*
|
|
61
|
+
* @private
|
|
62
|
+
* @param provider - Provider string (case-insensitive)
|
|
63
|
+
* @returns TTSProvider enum value or undefined
|
|
64
|
+
*/
|
|
65
|
+
private parseProvider;
|
|
66
|
+
/**
|
|
67
|
+
* Synthesize text to speech
|
|
68
|
+
*
|
|
69
|
+
* @param request - The synthesis request
|
|
70
|
+
* @returns Promise resolving to synthesis response with audio buffer
|
|
71
|
+
* @throws {Error} If provider is not available or synthesis fails
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* ```typescript
|
|
75
|
+
* const response = await ttsService.synthesize({
|
|
76
|
+
* text: "Hello World",
|
|
77
|
+
* voice: { id: "en-US-JennyNeural" },
|
|
78
|
+
* audio: { speed: 1.0, format: "mp3" }
|
|
79
|
+
* });
|
|
80
|
+
*
|
|
81
|
+
* fs.writeFileSync('output.mp3', response.audio);
|
|
82
|
+
* console.log(`Cost: ${response.billing.characters} characters`);
|
|
83
|
+
* ```
|
|
84
|
+
*/
|
|
85
|
+
synthesize(request: TTSSynthesizeRequest): Promise<TTSResponse>;
|
|
86
|
+
/**
|
|
87
|
+
* Get a provider instance
|
|
88
|
+
*
|
|
89
|
+
* @param provider - The provider enum
|
|
90
|
+
* @returns The provider instance
|
|
91
|
+
* @throws {Error} If provider is not registered
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* ```typescript
|
|
95
|
+
* const azureProvider = ttsService.getProvider(TTSProvider.AZURE);
|
|
96
|
+
* ```
|
|
97
|
+
*/
|
|
98
|
+
getProvider(provider: TTSProvider): BaseTTSProvider;
|
|
99
|
+
/**
|
|
100
|
+
* Set the default provider
|
|
101
|
+
*
|
|
102
|
+
* @param provider - The provider to set as default
|
|
103
|
+
* @throws {Error} If provider is not registered
|
|
104
|
+
*
|
|
105
|
+
* @example
|
|
106
|
+
* ```typescript
|
|
107
|
+
* ttsService.setDefaultProvider(TTSProvider.AZURE);
|
|
108
|
+
* ```
|
|
109
|
+
*/
|
|
110
|
+
setDefaultProvider(provider: TTSProvider): void;
|
|
111
|
+
/**
|
|
112
|
+
* Get the current default provider
|
|
113
|
+
*
|
|
114
|
+
* @returns The default provider enum
|
|
115
|
+
*
|
|
116
|
+
* @example
|
|
117
|
+
* ```typescript
|
|
118
|
+
* const defaultProvider = ttsService.getDefaultProvider();
|
|
119
|
+
* console.log(`Using ${defaultProvider} by default`);
|
|
120
|
+
* ```
|
|
121
|
+
*/
|
|
122
|
+
getDefaultProvider(): TTSProvider;
|
|
123
|
+
/**
|
|
124
|
+
* Get list of available providers
|
|
125
|
+
*
|
|
126
|
+
* @returns Array of available provider enums
|
|
127
|
+
*
|
|
128
|
+
* @example
|
|
129
|
+
* ```typescript
|
|
130
|
+
* const providers = ttsService.getAvailableProviders();
|
|
131
|
+
* console.log(`Available: ${providers.join(', ')}`);
|
|
132
|
+
* ```
|
|
133
|
+
*/
|
|
134
|
+
getAvailableProviders(): TTSProvider[];
|
|
135
|
+
/**
|
|
136
|
+
* Check if a provider is available
|
|
137
|
+
*
|
|
138
|
+
* @param provider - The provider to check
|
|
139
|
+
* @returns True if provider is available
|
|
140
|
+
*
|
|
141
|
+
* @example
|
|
142
|
+
* ```typescript
|
|
143
|
+
* if (ttsService.isProviderAvailable(TTSProvider.AZURE)) {
|
|
144
|
+
* // Use Azure
|
|
145
|
+
* }
|
|
146
|
+
* ```
|
|
147
|
+
*/
|
|
148
|
+
isProviderAvailable(provider: TTSProvider): boolean;
|
|
149
|
+
/**
|
|
150
|
+
* Log a message
|
|
151
|
+
*
|
|
152
|
+
* @private
|
|
153
|
+
* @param level - Log level
|
|
154
|
+
* @param message - Log message
|
|
155
|
+
* @param meta - Optional metadata
|
|
156
|
+
*/
|
|
157
|
+
private log;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Singleton instance of TTS Service
|
|
161
|
+
*
|
|
162
|
+
* @description This is the main export that consuming applications should use.
|
|
163
|
+
*
|
|
164
|
+
* @example
|
|
165
|
+
* ```typescript
|
|
166
|
+
* import { ttsService } from '@loonylabs/tts-middleware';
|
|
167
|
+
*
|
|
168
|
+
* const response = await ttsService.synthesize({
|
|
169
|
+
* text: "Hello World",
|
|
170
|
+
* voice: { id: "en-US-JennyNeural" }
|
|
171
|
+
* });
|
|
172
|
+
* ```
|
|
173
|
+
*/
|
|
174
|
+
export declare const ttsService: TTSService;
|
|
175
|
+
//# sourceMappingURL=tts.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tts.service.d.ts","sourceRoot":"","sources":["../../../../src/middleware/services/tts/tts.service.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAIrE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,UAAU;IACrB;;OAEG;IACH,OAAO,CAAC,SAAS,CAAoC;IAErD;;OAEG;IACH,OAAO,CAAC,eAAe,CAAc;IAErC;;;;;OAKG;;IAiBH;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAkC3B;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IAkBrB;;;;;;;;;;;;;;;;;;OAkBG;IACG,UAAU,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,WAAW,CAAC;IAwCrE;;;;;;;;;;;OAWG;IACI,WAAW,CAAC,QAAQ,EAAE,WAAW,GAAG,eAAe;IAa1D;;;;;;;;;;OAUG;IACI,kBAAkB,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI;IAgBtD;;;;;;;;;;OAUG;IACI,kBAAkB,IAAI,WAAW;IAIxC;;;;;;;;;;OAUG;IACI,qBAAqB,IAAI,WAAW,EAAE;IAI7C;;;;;;;;;;;;OAYG;IACI,mBAAmB,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO;IAI1D;;;;;;;OAOG;IACH,OAAO,CAAC,GAAG;CAcZ;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,UAAU,YAAmB,CAAC"}
|
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* TTS Service Orchestrator
|
|
4
|
+
*
|
|
5
|
+
* @description Main service class that orchestrates TTS provider access.
|
|
6
|
+
* This is the primary API that consuming applications use.
|
|
7
|
+
*
|
|
8
|
+
* Analogous to LLMService in the LLM middleware.
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.ttsService = exports.TTSService = void 0;
|
|
12
|
+
const types_1 = require("./types");
|
|
13
|
+
const azure_provider_1 = require("./providers/azure-provider");
|
|
14
|
+
const edenai_provider_1 = require("./providers/edenai-provider");
|
|
15
|
+
/**
|
|
16
|
+
* TTS Service - Main orchestrator for TTS operations
|
|
17
|
+
*
|
|
18
|
+
* @description Singleton service that manages TTS providers and provides
|
|
19
|
+
* a unified API for text-to-speech synthesis across multiple providers.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```typescript
|
|
23
|
+
* import { ttsService, TTSProvider } from '@loonylabs/tts-middleware';
|
|
24
|
+
*
|
|
25
|
+
* // Using default provider
|
|
26
|
+
* const response = await ttsService.synthesize({
|
|
27
|
+
* text: "Hello World",
|
|
28
|
+
* voice: { id: "en-US-JennyNeural" }
|
|
29
|
+
* });
|
|
30
|
+
*
|
|
31
|
+
* // Using specific provider
|
|
32
|
+
* const response = await ttsService.synthesize({
|
|
33
|
+
* text: "Guten Tag",
|
|
34
|
+
* provider: TTSProvider.AZURE,
|
|
35
|
+
* voice: { id: "de-DE-KatjaNeural" }
|
|
36
|
+
* });
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
class TTSService {
|
|
40
|
+
/**
|
|
41
|
+
* Creates a new TTS Service instance
|
|
42
|
+
*
|
|
43
|
+
* @description Initializes the service with all available providers.
|
|
44
|
+
* Providers are lazily initialized - they're only created when first accessed.
|
|
45
|
+
*/
|
|
46
|
+
constructor() {
|
|
47
|
+
this.providers = new Map();
|
|
48
|
+
// Set default provider from environment or use Azure as fallback
|
|
49
|
+
const envDefaultProvider = process.env.TTS_DEFAULT_PROVIDER?.toLowerCase();
|
|
50
|
+
this.defaultProvider = this.parseProvider(envDefaultProvider) || types_1.TTSProvider.AZURE;
|
|
51
|
+
// Initialize MVP provider (Azure)
|
|
52
|
+
this.initializeProviders();
|
|
53
|
+
this.log('info', 'TTS Service initialized', {
|
|
54
|
+
defaultProvider: this.defaultProvider,
|
|
55
|
+
availableProviders: this.getAvailableProviders(),
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Initialize available providers
|
|
60
|
+
*
|
|
61
|
+
* @private
|
|
62
|
+
*/
|
|
63
|
+
initializeProviders() {
|
|
64
|
+
try {
|
|
65
|
+
// Initialize Azure provider (MVP)
|
|
66
|
+
const azureProvider = new azure_provider_1.AzureProvider();
|
|
67
|
+
this.providers.set(types_1.TTSProvider.AZURE, azureProvider);
|
|
68
|
+
this.log('debug', 'Azure provider initialized');
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
this.log('warn', 'Failed to initialize Azure provider', {
|
|
72
|
+
error: error.message,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
try {
|
|
76
|
+
// Initialize EdenAI provider
|
|
77
|
+
const edenaiProvider = new edenai_provider_1.EdenAIProvider();
|
|
78
|
+
this.providers.set(types_1.TTSProvider.EDENAI, edenaiProvider);
|
|
79
|
+
this.log('debug', 'EdenAI provider initialized');
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
this.log('warn', 'Failed to initialize EdenAI provider', {
|
|
83
|
+
error: error.message,
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
// Future providers will be initialized here:
|
|
87
|
+
// try {
|
|
88
|
+
// const openaiProvider = new OpenAIProvider();
|
|
89
|
+
// this.providers.set(TTSProvider.OPENAI, openaiProvider);
|
|
90
|
+
// } catch (error) {
|
|
91
|
+
// this.log('warn', 'Failed to initialize OpenAI provider', { error });
|
|
92
|
+
// }
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Parse provider string to TTSProvider enum
|
|
96
|
+
*
|
|
97
|
+
* @private
|
|
98
|
+
* @param provider - Provider string (case-insensitive)
|
|
99
|
+
* @returns TTSProvider enum value or undefined
|
|
100
|
+
*/
|
|
101
|
+
parseProvider(provider) {
|
|
102
|
+
if (!provider) {
|
|
103
|
+
return undefined;
|
|
104
|
+
}
|
|
105
|
+
const normalized = provider.toLowerCase();
|
|
106
|
+
const providerMap = {
|
|
107
|
+
azure: types_1.TTSProvider.AZURE,
|
|
108
|
+
edenai: types_1.TTSProvider.EDENAI,
|
|
109
|
+
openai: types_1.TTSProvider.OPENAI,
|
|
110
|
+
elevenlabs: types_1.TTSProvider.ELEVENLABS,
|
|
111
|
+
google: types_1.TTSProvider.GOOGLE,
|
|
112
|
+
deepgram: types_1.TTSProvider.DEEPGRAM,
|
|
113
|
+
};
|
|
114
|
+
return providerMap[normalized];
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Synthesize text to speech
|
|
118
|
+
*
|
|
119
|
+
* @param request - The synthesis request
|
|
120
|
+
* @returns Promise resolving to synthesis response with audio buffer
|
|
121
|
+
* @throws {Error} If provider is not available or synthesis fails
|
|
122
|
+
*
|
|
123
|
+
* @example
|
|
124
|
+
* ```typescript
|
|
125
|
+
* const response = await ttsService.synthesize({
|
|
126
|
+
* text: "Hello World",
|
|
127
|
+
* voice: { id: "en-US-JennyNeural" },
|
|
128
|
+
* audio: { speed: 1.0, format: "mp3" }
|
|
129
|
+
* });
|
|
130
|
+
*
|
|
131
|
+
* fs.writeFileSync('output.mp3', response.audio);
|
|
132
|
+
* console.log(`Cost: ${response.billing.characters} characters`);
|
|
133
|
+
* ```
|
|
134
|
+
*/
|
|
135
|
+
async synthesize(request) {
|
|
136
|
+
// Determine which provider to use
|
|
137
|
+
const providerEnum = request.provider || this.defaultProvider;
|
|
138
|
+
// Get provider instance
|
|
139
|
+
const provider = this.getProvider(providerEnum);
|
|
140
|
+
// Log synthesis request
|
|
141
|
+
this.log('info', 'Synthesizing speech', {
|
|
142
|
+
provider: providerEnum,
|
|
143
|
+
voiceId: request.voice.id,
|
|
144
|
+
textLength: request.text.length,
|
|
145
|
+
});
|
|
146
|
+
try {
|
|
147
|
+
// Delegate to provider
|
|
148
|
+
const response = await provider.synthesize(request.text, request.voice.id, request);
|
|
149
|
+
this.log('info', 'Synthesis completed', {
|
|
150
|
+
provider: providerEnum,
|
|
151
|
+
characters: response.billing.characters,
|
|
152
|
+
audioSize: response.audio.length,
|
|
153
|
+
});
|
|
154
|
+
return response;
|
|
155
|
+
}
|
|
156
|
+
catch (error) {
|
|
157
|
+
this.log('error', 'Synthesis failed', {
|
|
158
|
+
provider: providerEnum,
|
|
159
|
+
error: error.message,
|
|
160
|
+
});
|
|
161
|
+
// Re-throw with provider context
|
|
162
|
+
throw error;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Get a provider instance
|
|
167
|
+
*
|
|
168
|
+
* @param provider - The provider enum
|
|
169
|
+
* @returns The provider instance
|
|
170
|
+
* @throws {Error} If provider is not registered
|
|
171
|
+
*
|
|
172
|
+
* @example
|
|
173
|
+
* ```typescript
|
|
174
|
+
* const azureProvider = ttsService.getProvider(TTSProvider.AZURE);
|
|
175
|
+
* ```
|
|
176
|
+
*/
|
|
177
|
+
getProvider(provider) {
|
|
178
|
+
const providerInstance = this.providers.get(provider);
|
|
179
|
+
if (!providerInstance) {
|
|
180
|
+
const availableProviders = this.getAvailableProviders().join(', ');
|
|
181
|
+
throw new Error(`Provider '${provider}' is not available. Available providers: ${availableProviders}`);
|
|
182
|
+
}
|
|
183
|
+
return providerInstance;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Set the default provider
|
|
187
|
+
*
|
|
188
|
+
* @param provider - The provider to set as default
|
|
189
|
+
* @throws {Error} If provider is not registered
|
|
190
|
+
*
|
|
191
|
+
* @example
|
|
192
|
+
* ```typescript
|
|
193
|
+
* ttsService.setDefaultProvider(TTSProvider.AZURE);
|
|
194
|
+
* ```
|
|
195
|
+
*/
|
|
196
|
+
setDefaultProvider(provider) {
|
|
197
|
+
// Validate that provider exists
|
|
198
|
+
if (!this.providers.has(provider)) {
|
|
199
|
+
const availableProviders = this.getAvailableProviders().join(', ');
|
|
200
|
+
throw new Error(`Cannot set default provider '${provider}': provider is not available. Available providers: ${availableProviders}`);
|
|
201
|
+
}
|
|
202
|
+
this.defaultProvider = provider;
|
|
203
|
+
this.log('info', 'Default provider changed', {
|
|
204
|
+
newDefault: provider,
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Get the current default provider
|
|
209
|
+
*
|
|
210
|
+
* @returns The default provider enum
|
|
211
|
+
*
|
|
212
|
+
* @example
|
|
213
|
+
* ```typescript
|
|
214
|
+
* const defaultProvider = ttsService.getDefaultProvider();
|
|
215
|
+
* console.log(`Using ${defaultProvider} by default`);
|
|
216
|
+
* ```
|
|
217
|
+
*/
|
|
218
|
+
getDefaultProvider() {
|
|
219
|
+
return this.defaultProvider;
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Get list of available providers
|
|
223
|
+
*
|
|
224
|
+
* @returns Array of available provider enums
|
|
225
|
+
*
|
|
226
|
+
* @example
|
|
227
|
+
* ```typescript
|
|
228
|
+
* const providers = ttsService.getAvailableProviders();
|
|
229
|
+
* console.log(`Available: ${providers.join(', ')}`);
|
|
230
|
+
* ```
|
|
231
|
+
*/
|
|
232
|
+
getAvailableProviders() {
|
|
233
|
+
return Array.from(this.providers.keys());
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Check if a provider is available
|
|
237
|
+
*
|
|
238
|
+
* @param provider - The provider to check
|
|
239
|
+
* @returns True if provider is available
|
|
240
|
+
*
|
|
241
|
+
* @example
|
|
242
|
+
* ```typescript
|
|
243
|
+
* if (ttsService.isProviderAvailable(TTSProvider.AZURE)) {
|
|
244
|
+
* // Use Azure
|
|
245
|
+
* }
|
|
246
|
+
* ```
|
|
247
|
+
*/
|
|
248
|
+
isProviderAvailable(provider) {
|
|
249
|
+
return this.providers.has(provider);
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Log a message
|
|
253
|
+
*
|
|
254
|
+
* @private
|
|
255
|
+
* @param level - Log level
|
|
256
|
+
* @param message - Log message
|
|
257
|
+
* @param meta - Optional metadata
|
|
258
|
+
*/
|
|
259
|
+
log(level, message, meta) {
|
|
260
|
+
const timestamp = new Date().toISOString();
|
|
261
|
+
const prefix = `[${timestamp}] [TTSService] [${level.toUpperCase()}]`;
|
|
262
|
+
if (meta) {
|
|
263
|
+
console[level](prefix, message, meta);
|
|
264
|
+
}
|
|
265
|
+
else {
|
|
266
|
+
console[level](prefix, message);
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
exports.TTSService = TTSService;
|
|
271
|
+
/**
|
|
272
|
+
* Singleton instance of TTS Service
|
|
273
|
+
*
|
|
274
|
+
* @description This is the main export that consuming applications should use.
|
|
275
|
+
*
|
|
276
|
+
* @example
|
|
277
|
+
* ```typescript
|
|
278
|
+
* import { ttsService } from '@loonylabs/tts-middleware';
|
|
279
|
+
*
|
|
280
|
+
* const response = await ttsService.synthesize({
|
|
281
|
+
* text: "Hello World",
|
|
282
|
+
* voice: { id: "en-US-JennyNeural" }
|
|
283
|
+
* });
|
|
284
|
+
* ```
|
|
285
|
+
*/
|
|
286
|
+
exports.ttsService = new TTSService();
|
|
287
|
+
//# sourceMappingURL=tts.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tts.service.js","sourceRoot":"","sources":["../../../../src/middleware/services/tts/tts.service.ts"],"names":[],"mappings":"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"}
|