@supertone/supertone 0.1.1 → 0.1.3

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.
Files changed (92) hide show
  1. package/README.md +119 -69
  2. package/custom_test/realtime_tts_player.ts +177 -12
  3. package/custom_test/test_pronunciation_dictionary.ts +227 -0
  4. package/custom_test/test_real_api.ts +1677 -162
  5. package/custom_test/test_text_utils_chunk_text_punctuation.ts +55 -0
  6. package/dist/commonjs/lib/config.d.ts +2 -2
  7. package/dist/commonjs/lib/config.d.ts.map +1 -1
  8. package/dist/commonjs/lib/config.js +2 -2
  9. package/dist/commonjs/lib/config.js.map +1 -1
  10. package/dist/commonjs/lib/custom_utils/index.d.ts +1 -0
  11. package/dist/commonjs/lib/custom_utils/index.d.ts.map +1 -1
  12. package/dist/commonjs/lib/custom_utils/index.js +5 -1
  13. package/dist/commonjs/lib/custom_utils/index.js.map +1 -1
  14. package/dist/commonjs/lib/custom_utils/pronunciation_utils.d.ts +24 -0
  15. package/dist/commonjs/lib/custom_utils/pronunciation_utils.d.ts.map +1 -0
  16. package/dist/commonjs/lib/custom_utils/pronunciation_utils.js +145 -0
  17. package/dist/commonjs/lib/custom_utils/pronunciation_utils.js.map +1 -0
  18. package/dist/commonjs/lib/custom_utils/text_utils.d.ts +8 -1
  19. package/dist/commonjs/lib/custom_utils/text_utils.d.ts.map +1 -1
  20. package/dist/commonjs/lib/custom_utils/text_utils.js +125 -7
  21. package/dist/commonjs/lib/custom_utils/text_utils.js.map +1 -1
  22. package/dist/commonjs/models/apiconverttexttospeechusingcharacterrequest.d.ts +92 -1
  23. package/dist/commonjs/models/apiconverttexttospeechusingcharacterrequest.d.ts.map +1 -1
  24. package/dist/commonjs/models/apiconverttexttospeechusingcharacterrequest.js +48 -3
  25. package/dist/commonjs/models/apiconverttexttospeechusingcharacterrequest.js.map +1 -1
  26. package/dist/commonjs/models/predictttsdurationusingcharacterrequest.d.ts +92 -1
  27. package/dist/commonjs/models/predictttsdurationusingcharacterrequest.d.ts.map +1 -1
  28. package/dist/commonjs/models/predictttsdurationusingcharacterrequest.js +46 -3
  29. package/dist/commonjs/models/predictttsdurationusingcharacterrequest.js.map +1 -1
  30. package/dist/commonjs/sdk/texttospeech.d.ts +17 -6
  31. package/dist/commonjs/sdk/texttospeech.d.ts.map +1 -1
  32. package/dist/commonjs/sdk/texttospeech.js +48 -25
  33. package/dist/commonjs/sdk/texttospeech.js.map +1 -1
  34. package/dist/esm/lib/config.d.ts +2 -2
  35. package/dist/esm/lib/config.d.ts.map +1 -1
  36. package/dist/esm/lib/config.js +2 -2
  37. package/dist/esm/lib/config.js.map +1 -1
  38. package/dist/esm/lib/custom_utils/index.d.ts +1 -0
  39. package/dist/esm/lib/custom_utils/index.d.ts.map +1 -1
  40. package/dist/esm/lib/custom_utils/index.js +2 -0
  41. package/dist/esm/lib/custom_utils/index.js.map +1 -1
  42. package/dist/esm/lib/custom_utils/pronunciation_utils.d.ts +24 -0
  43. package/dist/esm/lib/custom_utils/pronunciation_utils.d.ts.map +1 -0
  44. package/dist/esm/lib/custom_utils/pronunciation_utils.js +140 -0
  45. package/dist/esm/lib/custom_utils/pronunciation_utils.js.map +1 -0
  46. package/dist/esm/lib/custom_utils/text_utils.d.ts +8 -1
  47. package/dist/esm/lib/custom_utils/text_utils.d.ts.map +1 -1
  48. package/dist/esm/lib/custom_utils/text_utils.js +125 -7
  49. package/dist/esm/lib/custom_utils/text_utils.js.map +1 -1
  50. package/dist/esm/models/apiconverttexttospeechusingcharacterrequest.d.ts +92 -1
  51. package/dist/esm/models/apiconverttexttospeechusingcharacterrequest.d.ts.map +1 -1
  52. package/dist/esm/models/apiconverttexttospeechusingcharacterrequest.js +47 -2
  53. package/dist/esm/models/apiconverttexttospeechusingcharacterrequest.js.map +1 -1
  54. package/dist/esm/models/predictttsdurationusingcharacterrequest.d.ts +92 -1
  55. package/dist/esm/models/predictttsdurationusingcharacterrequest.d.ts.map +1 -1
  56. package/dist/esm/models/predictttsdurationusingcharacterrequest.js +45 -2
  57. package/dist/esm/models/predictttsdurationusingcharacterrequest.js.map +1 -1
  58. package/dist/esm/sdk/texttospeech.d.ts +17 -6
  59. package/dist/esm/sdk/texttospeech.d.ts.map +1 -1
  60. package/dist/esm/sdk/texttospeech.js +49 -26
  61. package/dist/esm/sdk/texttospeech.js.map +1 -1
  62. package/examples/custom_voices/create_cloned_voice.ts +4 -3
  63. package/examples/custom_voices/delete_custom_voice.ts +2 -7
  64. package/examples/custom_voices/edit_custom_voice.ts +2 -6
  65. package/examples/custom_voices/get_custom_voice.ts +2 -7
  66. package/examples/custom_voices/list_custom_voices.ts +2 -7
  67. package/examples/custom_voices/search_custom_voices.ts +2 -6
  68. package/examples/text_to_speech/create_speech.ts +3 -8
  69. package/examples/text_to_speech/create_speech_long_text.ts +3 -7
  70. package/examples/text_to_speech/create_speech_with_phonemes.ts +3 -7
  71. package/examples/text_to_speech/create_speech_with_voice_settings.ts +3 -8
  72. package/examples/text_to_speech/predict_duration.ts +3 -7
  73. package/examples/text_to_speech/stream_speech.ts +3 -7
  74. package/examples/text_to_speech/stream_speech_long_text.ts +3 -7
  75. package/examples/text_to_speech/stream_speech_with_phonemes.ts +3 -7
  76. package/examples/text_to_speech/stream_speech_with_voice_settings.ts +3 -7
  77. package/examples/usage/get_credit_balance.ts +2 -6
  78. package/examples/usage/get_usage.ts +2 -6
  79. package/examples/usage/get_voice_usage.ts +2 -7
  80. package/examples/voices/get_voice.ts +2 -6
  81. package/examples/voices/list_voices.ts +2 -6
  82. package/examples/voices/search_voices.ts +2 -7
  83. package/jsr.json +1 -1
  84. package/openapi.json +101 -9
  85. package/package.json +1 -1
  86. package/src/lib/config.ts +41 -41
  87. package/src/lib/custom_utils/index.ts +7 -0
  88. package/src/lib/custom_utils/pronunciation_utils.ts +193 -0
  89. package/src/lib/custom_utils/text_utils.ts +138 -7
  90. package/src/models/apiconverttexttospeechusingcharacterrequest.ts +62 -3
  91. package/src/models/predictttsdurationusingcharacterrequest.ts +64 -3
  92. package/src/sdk/texttospeech.ts +99 -68
@@ -32,6 +32,14 @@ class TextToSpeech extends sdks_js_1.ClientSDK {
32
32
  shouldChunkText(text, maxLength) {
33
33
  return text.length > maxLength;
34
34
  }
35
+ /**
36
+ * Apply pronunciation dictionary before chunking (opt-in).
37
+ */
38
+ applyPronunciationDictionary(text, pronunciationDictionary) {
39
+ if (!pronunciationDictionary)
40
+ return text;
41
+ return (0, index_js_1.applyPronunciationDictionary)(text, pronunciationDictionary);
42
+ }
35
43
  /**
36
44
  * Extract audio data from response
37
45
  */
@@ -46,9 +54,9 @@ class TextToSpeech extends sdks_js_1.ClientSDK {
46
54
  if (result instanceof ArrayBuffer) {
47
55
  return new Uint8Array(result);
48
56
  }
49
- if (typeof result === "object"
50
- && result !== null
51
- && "getReader" in result) {
57
+ if (typeof result === "object" &&
58
+ result !== null &&
59
+ "getReader" in result) {
52
60
  // ReadableStream
53
61
  const reader = result.getReader();
54
62
  const chunks = [];
@@ -104,9 +112,9 @@ class TextToSpeech extends sdks_js_1.ClientSDK {
104
112
  const resultKeys = result && typeof result === "object"
105
113
  ? Object.keys(result).join(", ")
106
114
  : "N/A";
107
- throw new Error(`Unsupported result type: ${resultType}, `
108
- + `constructor: ${resultConstructor}, `
109
- + `keys: [${resultKeys}]`);
115
+ throw new Error(`Unsupported result type: ${resultType}, ` +
116
+ `constructor: ${resultConstructor}, ` +
117
+ `keys: [${resultKeys}]`);
110
118
  }
111
119
  /**
112
120
  * Merge multiple audio responses into one
@@ -253,21 +261,28 @@ class TextToSpeech extends sdks_js_1.ClientSDK {
253
261
  * Create speech with auto-chunking support (internal implementation)
254
262
  */
255
263
  async createSpeechWithChunking(request, options) {
264
+ const { pronunciationDictionary, ...restOptions } = options ?? {};
256
265
  const maxLength = options?.maxTextLength ?? index_js_1.DEFAULT_MAX_TEXT_LENGTH;
257
- const text = request.apiConvertTextToSpeechUsingCharacterRequest?.text
258
- ?? "";
266
+ const text = request.apiConvertTextToSpeechUsingCharacterRequest?.text ?? "";
267
+ const normalizedText = this.applyPronunciationDictionary(text, pronunciationDictionary);
268
+ const baseRequest = {
269
+ ...request,
270
+ apiConvertTextToSpeechUsingCharacterRequest: {
271
+ ...request.apiConvertTextToSpeechUsingCharacterRequest,
272
+ text: normalizedText,
273
+ },
274
+ };
259
275
  // Short text: call original method directly
260
- if (!this.shouldChunkText(text, maxLength)) {
276
+ if (!this.shouldChunkText(normalizedText, maxLength)) {
261
277
  if (!this._createSpeechOriginal) {
262
278
  throw new Error("Original createSpeech method not found");
263
279
  }
264
- return this._createSpeechOriginal(request, options);
280
+ return this._createSpeechOriginal(baseRequest, restOptions);
265
281
  }
266
282
  // Long text: chunk, process sequentially (to avoid schema parsing issues), and merge
267
- const textChunks = (0, index_js_1.chunkText)(text, maxLength);
283
+ const textChunks = (0, index_js_1.chunkText)(normalizedText, maxLength);
268
284
  // Determine Accept header based on output format
269
- const outputFormat = request.apiConvertTextToSpeechUsingCharacterRequest
270
- ?.outputFormat;
285
+ const outputFormat = baseRequest.apiConvertTextToSpeechUsingCharacterRequest?.outputFormat;
271
286
  const acceptHeader = outputFormat === "mp3"
272
287
  ? textToSpeechCreateSpeech_js_1.CreateSpeechAcceptEnum.audioMpeg
273
288
  : textToSpeechCreateSpeech_js_1.CreateSpeechAcceptEnum.audioWav;
@@ -275,9 +290,9 @@ class TextToSpeech extends sdks_js_1.ClientSDK {
275
290
  const responses = [];
276
291
  for (const chunk of textChunks) {
277
292
  const chunkRequest = {
278
- ...request,
293
+ ...baseRequest,
279
294
  apiConvertTextToSpeechUsingCharacterRequest: {
280
- ...request.apiConvertTextToSpeechUsingCharacterRequest,
295
+ ...baseRequest.apiConvertTextToSpeechUsingCharacterRequest,
281
296
  text: chunk,
282
297
  },
283
298
  };
@@ -285,7 +300,7 @@ class TextToSpeech extends sdks_js_1.ClientSDK {
285
300
  throw new Error("Original createSpeech method not found");
286
301
  }
287
302
  const response = await this._createSpeechOriginal(chunkRequest, {
288
- ...options,
303
+ ...restOptions,
289
304
  acceptHeaderOverride: acceptHeader,
290
305
  });
291
306
  responses.push(response);
@@ -296,18 +311,26 @@ class TextToSpeech extends sdks_js_1.ClientSDK {
296
311
  * Stream speech with auto-chunking support (internal implementation)
297
312
  */
298
313
  async streamSpeechWithChunking(request, options) {
314
+ const { pronunciationDictionary, ...restOptions } = options ?? {};
299
315
  const maxLength = options?.maxTextLength ?? index_js_1.DEFAULT_MAX_TEXT_LENGTH;
300
- const text = request.apiConvertTextToSpeechUsingCharacterRequest?.text
301
- ?? "";
316
+ const text = request.apiConvertTextToSpeechUsingCharacterRequest?.text ?? "";
317
+ const normalizedText = this.applyPronunciationDictionary(text, pronunciationDictionary);
318
+ const baseRequest = {
319
+ ...request,
320
+ apiConvertTextToSpeechUsingCharacterRequest: {
321
+ ...request.apiConvertTextToSpeechUsingCharacterRequest,
322
+ text: normalizedText,
323
+ },
324
+ };
302
325
  // Short text: call original method directly
303
- if (!this.shouldChunkText(text, maxLength)) {
326
+ if (!this.shouldChunkText(normalizedText, maxLength)) {
304
327
  if (!this._streamSpeechOriginal) {
305
328
  throw new Error("Original streamSpeech method not found");
306
329
  }
307
- return this._streamSpeechOriginal(request, options);
330
+ return this._streamSpeechOriginal(baseRequest, restOptions);
308
331
  }
309
332
  // Long text: chunk and stream sequentially
310
- const textChunks = (0, index_js_1.chunkText)(text, maxLength);
333
+ const textChunks = (0, index_js_1.chunkText)(normalizedText, maxLength);
311
334
  if (textChunks.length === 0) {
312
335
  throw new Error("No text chunks to process");
313
336
  }
@@ -317,23 +340,23 @@ class TextToSpeech extends sdks_js_1.ClientSDK {
317
340
  }
318
341
  // Get first response to start streaming
319
342
  const firstChunkRequest = {
320
- ...request,
343
+ ...baseRequest,
321
344
  apiConvertTextToSpeechUsingCharacterRequest: {
322
- ...request.apiConvertTextToSpeechUsingCharacterRequest,
345
+ ...baseRequest.apiConvertTextToSpeechUsingCharacterRequest,
323
346
  text: firstChunk,
324
347
  },
325
348
  };
326
349
  if (!this._streamSpeechOriginal) {
327
350
  throw new Error("Original streamSpeech method not found");
328
351
  }
329
- const firstResponse = await this._streamSpeechOriginal(firstChunkRequest, options);
352
+ const firstResponse = await this._streamSpeechOriginal(firstChunkRequest, restOptions);
330
353
  // Single chunk: return as-is
331
354
  if (textChunks.length === 1) {
332
355
  return firstResponse;
333
356
  }
334
357
  // Multiple chunks: create extended streaming response
335
358
  const remainingChunks = textChunks.slice(1);
336
- return this.createExtendedStreamingResponse(firstResponse, remainingChunks, request, options);
359
+ return this.createExtendedStreamingResponse(firstResponse, remainingChunks, baseRequest, restOptions);
337
360
  }
338
361
  // #endregion sdk-class-body
339
362
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"texttospeech.js","sourceRoot":"","sources":["../../../src/sdk/texttospeech.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,sFAG8C;AAC9C,4FAAsF;AACtF,sFAG8C;AAC9C,4CAA2D;AAE3D,0CAA6C;AAC7C,kBAAkB;AAClB,2DAQsC;AACtC,qBAAqB;AAErB,oFAA8E;AAArE,qIAAA,sBAAsB,OAAA;AAE/B,oFAA8E;AAArE,qIAAA,sBAAsB,OAAA;AAE/B,MAAa,YAAa,SAAQ,mBAAS;IAKzC,YAAY,OAAY;QACtB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,2CAA2C;QAC3C,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE1D,uCAAuC;QACvC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAQ,CAAC;QACpE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAQ,CAAC;IACtE,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,IAAY,EAAE,SAAiB;QACrD,OAAO,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;IACjC,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,wBAAwB,CACpC,QAA2E;QAE3E,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;QAE/B,IAAI,MAAM,YAAY,UAAU,EAAE,CAAC;YACjC,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,IAAI,MAAM,YAAY,IAAI,EAAE,CAAC;YAC3B,OAAO,IAAI,UAAU,CAAC,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,MAAM,YAAY,WAAW,EAAE,CAAC;YAClC,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC;QAED,IACE,OAAO,MAAM,KAAK,QAAQ;eACvB,MAAM,KAAK,IAAI;eACf,WAAW,IAAI,MAAM,EACxB,CAAC;YACD,iBAAiB;YACjB,MAAM,MAAM,GAAI,MAAqC,CAAC,SAAS,EAAE,CAAC;YAClE,MAAM,MAAM,GAAiB,EAAE,CAAC;YAEhC,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC5C,IAAI,IAAI;oBAAE,MAAM;gBAChB,IAAI,KAAK;oBAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAChC,CAAC;YAED,mBAAmB;YACnB,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACzE,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;YAC3C,IAAI,MAAM,GAAG,CAAC,CAAC;YACf,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBAC1B,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC;YACzB,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,mDAAmD;QACnD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YAClD,IAAI,aAAa,IAAI,MAAM,EAAE,CAAC;gBAC5B,MAAM,WAAW,GAAI,MAAc,CAAC,WAAW,CAAC;gBAChD,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;oBACpC,0BAA0B;oBAC1B,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;oBACvC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;oBAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC7C,KAAK,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;oBACxC,CAAC;oBACD,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;YAED,2CAA2C;YAC3C,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;gBACxB,MAAM,OAAO,GAAI,MAAc,CAAC,OAAO,CAAC;gBACxC,IAAI,OAAO,YAAY,UAAU;oBAAE,OAAO,OAAO,CAAC;gBAClD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;oBAChC,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC3C,CAAC;YACH,CAAC;YACD,IAAI,UAAU,IAAI,MAAM,EAAE,CAAC;gBACzB,MAAM,OAAO,GAAI,MAAc,CAAC,QAAQ,CAAC;gBACzC,IAAI,OAAO,YAAY,UAAU;oBAAE,OAAO,OAAO,CAAC;YACpD,CAAC;QACH,CAAC;QAED,gDAAgD;QAChD,MAAM,UAAU,GAAG,OAAO,MAAM,CAAC;QACjC,MAAM,iBAAiB,GAAG,MAAM,EAAE,WAAW,EAAE,IAAI,IAAI,SAAS,CAAC;QACjE,MAAM,UAAU,GAAG,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;YACrD,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YAChC,CAAC,CAAC,KAAK,CAAC;QAEV,MAAM,IAAI,KAAK,CACb,4BAA4B,UAAU,IAAI;cACtC,gBAAgB,iBAAiB,IAAI;cACrC,UAAU,UAAU,GAAG,CAC5B,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,mBAAmB,CAC/B,SAA4C;QAE5C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QACnC,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,aAAa,CAAC;QACvB,CAAC;QAED,wCAAwC;QACxC,MAAM,WAAW,GAAiB,MAAM,OAAO,CAAC,GAAG,CACjD,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CACvD,CAAC;QAEF,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QAED,iCAAiC;QACjC,MAAM,WAAW,GAAG,IAAA,4BAAiB,EAAC,UAAU,CAAC,CAAC;QAElD,wBAAwB;QACxB,IAAI,WAAuB,CAAC;QAC5B,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;YAC1B,WAAW,GAAG,IAAA,yBAAc,EAAC,WAAW,CAAC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,uBAAuB;YACvB,WAAW,GAAG,IAAA,yBAAc,EAAC,WAAW,CAAC,CAAC;QAC5C,CAAC;QAED,wFAAwF;QACxF,MAAM,MAAM,GAAG,IAAI,cAAc,CAAa;YAC5C,KAAK,CAAC,UAAU;gBACd,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBAChC,UAAU,CAAC,KAAK,EAAE,CAAC;YACrB,CAAC;SACF,CAAC,CAAC;QAEH,0CAA0C;QAC1C,OAAO;YACL,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,aAAa,CAAC,OAAO,IAAI,EAAE;SACrC,CAAC;IACJ,CAAC;IAED;;;OAGG;IACK,+BAA+B,CACrC,aAA8C,EAC9C,eAAyB,EACzB,eAA+C,EAC/C,OAEC;QAED,IAAI,WAAW,GAAyB,IAAI,CAAC;QAC7C,IAAI,iBAAiB,GAAG,IAAI,CAAC;QAE7B,gDAAgD;QAChD,MAAM,aAAa,GAAG,KAAK,EACzB,UAAuD,EACvD,EAAE;YACF,IAAI,CAAC;gBACH,2CAA2C;gBAC3C,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;oBACzB,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;oBAEpC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,WAAW,IAAI,MAAM,EAAE,CAAC;wBACxD,MAAM,MAAM,GAAI,MAAqC,CAAC,SAAS,EAAE,CAAC;wBAElE,IAAI,CAAC;4BACH,OAAO,IAAI,EAAE,CAAC;gCACZ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;gCAC5C,IAAI,IAAI;oCAAE,MAAM;gCAEhB,IAAI,KAAK,EAAE,CAAC;oCACV,uCAAuC;oCACvC,IAAI,iBAAiB,EAAE,CAAC;wCACtB,MAAM,cAAc,GAAG,IAAA,4BAAiB,EAAC,KAAK,CAAC,CAAC;wCAChD,WAAW,GAAG,cAA+B,CAAC;wCAC9C,iBAAiB,GAAG,KAAK,CAAC;oCAC5B,CAAC;oCAED,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gCAC5B,CAAC;4BACH,CAAC;wBACH,CAAC;gCAAS,CAAC;4BACT,MAAM,CAAC,WAAW,EAAE,CAAC;wBACvB,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,6CAA6C;gBAC7C,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;oBACpC,MAAM,YAAY,GAAmC;wBACnD,GAAG,eAAe;wBAClB,2CAA2C,EAAE;4BAC3C,GAAG,eAAe,CAAC,2CAA2C;4BAC9D,IAAI,EAAE,KAAK;yBACZ;qBACF,CAAC;oBAEF,iCAAiC;oBACjC,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;wBAChC,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;oBAC5D,CAAC;oBACD,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,qBAAqB,CACpD,YAAY,EACZ,OAAO,CACR,CAAC;oBAEF,iCAAiC;oBACjC,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;wBACzB,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;wBAEpC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,WAAW,IAAI,MAAM,EAAE,CAAC;4BACxD,MAAM,MAAM,GAAI,MAAqC,CAAC,SAAS,EAAE,CAAC;4BAClE,IAAI,sBAAsB,GAAG,IAAI,CAAC;4BAElC,IAAI,CAAC;gCACH,OAAO,IAAI,EAAE,CAAC;oCACZ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;oCAC5C,IAAI,IAAI;wCAAE,MAAM;oCAEhB,IAAI,KAAK,EAAE,CAAC;wCACV,IAAI,cAAc,GAAG,KAAK,CAAC;wCAE3B,2DAA2D;wCAC3D,IAAI,sBAAsB,IAAI,WAAW,EAAE,CAAC;4CAC1C,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;gDAC1B,cAAc,GAAG,IAAA,0BAAe,EAAC,KAAK,CAAC,CAAC;4CAC1C,CAAC;iDAAM,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;gDACjC,cAAc,GAAG,IAAA,0BAAe,EAAC,KAAK,CAAC,CAAC;4CAC1C,CAAC;4CACD,sBAAsB,GAAG,KAAK,CAAC;wCACjC,CAAC;wCAED,UAAU,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;oCACrC,CAAC;gCACH,CAAC;4BACH,CAAC;oCAAS,CAAC;gCACT,MAAM,CAAC,WAAW,EAAE,CAAC;4BACvB,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,UAAU,CAAC,KAAK,EAAE,CAAC;YACrB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,MAAM,GAAG,IAAI,cAAc,CAAa;YAC5C,KAAK,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC;SACjD,CAAC,CAAC;QAEH,OAAO;YACL,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,aAAa,CAAC,OAAO,IAAI,EAAE;SACrC,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,wBAAwB,CACpC,OAAuC,EACvC,OAGC;QAED,MAAM,SAAS,GAAG,OAAO,EAAE,aAAa,IAAI,kCAAuB,CAAC;QACpE,MAAM,IAAI,GAAG,OAAO,CAAC,2CAA2C,EAAE,IAAI;eACjE,EAAE,CAAC;QAER,4CAA4C;QAC5C,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAChC,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;YAC5D,CAAC;YACD,OAAO,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACtD,CAAC;QAED,qFAAqF;QACrF,MAAM,UAAU,GAAG,IAAA,oBAAS,EAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAE9C,iDAAiD;QACjD,MAAM,YAAY,GAAG,OAAO,CAAC,2CAA2C;YACtE,EAAE,YAAY,CAAC;QACjB,MAAM,YAAY,GAA2B,YAAY,KAAK,KAAK;YACjE,CAAC,CAAC,oDAAsB,CAAC,SAAS;YAClC,CAAC,CAAC,oDAAsB,CAAC,QAAQ,CAAC;QAEpC,yEAAyE;QACzE,MAAM,SAAS,GAAsC,EAAE,CAAC;QACxD,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;YAC/B,MAAM,YAAY,GAAmC;gBACnD,GAAG,OAAO;gBACV,2CAA2C,EAAE;oBAC3C,GAAG,OAAO,CAAC,2CAA2C;oBACtD,IAAI,EAAE,KAAK;iBACZ;aACF,CAAC;YACF,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAChC,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;YAC5D,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE;gBAC9D,GAAG,OAAO;gBACV,oBAAoB,EAAE,YAAY;aACnC,CAAC,CAAC;YACH,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3B,CAAC;QAED,OAAO,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,wBAAwB,CACpC,OAAuC,EACvC,OAGC;QAED,MAAM,SAAS,GAAG,OAAO,EAAE,aAAa,IAAI,kCAAuB,CAAC;QACpE,MAAM,IAAI,GAAG,OAAO,CAAC,2CAA2C,EAAE,IAAI;eACjE,EAAE,CAAC;QAER,4CAA4C;QAC5C,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAChC,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;YAC5D,CAAC;YACD,OAAO,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACtD,CAAC;QAED,2CAA2C;QAC3C,MAAM,UAAU,GAAG,IAAA,oBAAS,EAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAE9C,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;QAED,wCAAwC;QACxC,MAAM,iBAAiB,GAAmC;YACxD,GAAG,OAAO;YACV,2CAA2C,EAAE;gBAC3C,GAAG,OAAO,CAAC,2CAA2C;gBACtD,IAAI,EAAE,UAAU;aACjB;SACF,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;QACD,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,qBAAqB,CACpD,iBAAiB,EACjB,OAAO,CACR,CAAC;QAEF,6BAA6B;QAC7B,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,aAAa,CAAC;QACvB,CAAC;QAED,sDAAsD;QACtD,MAAM,eAAe,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC,+BAA+B,CACzC,aAAa,EACb,eAAe,EACf,OAAO,EACP,OAAO,CACR,CAAC;IACJ,CAAC;IACD,4BAA4B;IAE5B;;;;;OAKG;IACH,KAAK,CAAC,YAAY,CAChB,OAAuC,EACvC,OAEC;QAED,OAAO,IAAA,mBAAW,EAAC,IAAA,sDAAwB,EACzC,IAAI,EACJ,OAAO,EACP,OAAO,CACR,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,YAAY,CAChB,OAAuC,EACvC,OAEC;QAED,OAAO,IAAA,mBAAW,EAAC,IAAA,sDAAwB,EACzC,IAAI,EACJ,OAAO,EACP,OAAO,CACR,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,eAAe,CACnB,OAA0C,EAC1C,OAAwB;QAExB,OAAO,IAAA,mBAAW,EAAC,IAAA,4DAA2B,EAC5C,IAAI,EACJ,OAAO,EACP,OAAO,CACR,CAAC,CAAC;IACL,CAAC;CACF;AAhdD,oCAgdC"}
1
+ {"version":3,"file":"texttospeech.js","sourceRoot":"","sources":["../../../src/sdk/texttospeech.ts"],"names":[],"mappings":"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"}
@@ -31,8 +31,8 @@ export declare function serverURLFromOptions(options: SDKOptions): URL | null;
31
31
  export declare const SDK_METADATA: {
32
32
  readonly language: "typescript";
33
33
  readonly openapiDocVersion: "0.8.69";
34
- readonly sdkVersion: "0.1.1";
34
+ readonly sdkVersion: "0.1.3";
35
35
  readonly genVersion: "2.686.7";
36
- readonly userAgent: "speakeasy-sdk/typescript 0.1.1 2.686.7 0.8.69 @supertone/supertone";
36
+ readonly userAgent: "speakeasy-sdk/typescript 0.1.2 2.686.7 0.8.69 @supertone/supertone";
37
37
  };
38
38
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/lib/config.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG3C;;GAEG;AACH,eAAO,MAAM,UAAU,uCAKb,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;IAEtD,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B;;OAEG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,UAAU,GAAG,GAAG,GAAG,IAAI,CAepE;AAED,eAAO,MAAM,YAAY;;;;;;CAOf,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/lib/config.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG3C;;GAEG;AACH,eAAO,MAAM,UAAU,uCAKb,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;IAEtD,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B;;OAEG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,UAAU,GAAG,GAAG,GAAG,IAAI,CAepE;AAED,eAAO,MAAM,YAAY;;;;;;CAOf,CAAC"}
@@ -27,8 +27,8 @@ export function serverURLFromOptions(options) {
27
27
  export const SDK_METADATA = {
28
28
  language: "typescript",
29
29
  openapiDocVersion: "0.8.69",
30
- sdkVersion: "0.1.1",
30
+ sdkVersion: "0.1.3",
31
31
  genVersion: "2.686.7",
32
- userAgent: "speakeasy-sdk/typescript 0.1.1 2.686.7 0.8.69 @supertone/supertone",
32
+ userAgent: "speakeasy-sdk/typescript 0.1.2 2.686.7 0.8.69 @supertone/supertone",
33
33
  };
34
34
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/lib/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAU,UAAU,EAAE,MAAM,UAAU,CAAC;AAE9C;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB;;OAEG;IACH,0BAA0B;CAClB,CAAC;AA0BX,MAAM,UAAU,oBAAoB,CAAC,OAAmB;IACtD,IAAI,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IAElC,MAAM,MAAM,GAAW,EAAE,CAAC;IAE1B,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC;QACzC,IAAI,SAAS,GAAG,CAAC,IAAI,SAAS,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACpD,MAAM,IAAI,KAAK,CAAC,wBAAwB,SAAS,EAAE,CAAC,CAAC;QACvD,CAAC;QACD,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;IACxC,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,QAAQ,EAAE,YAAY;IACtB,iBAAiB,EAAE,QAAQ;IAC3B,UAAU,EAAE,OAAO;IACnB,UAAU,EAAE,SAAS;IACrB,SAAS,EACP,oEAAoE;CAC9D,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/lib/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAU,UAAU,EAAE,MAAM,UAAU,CAAC;AAE9C;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACzB;;OAEG;IACH,0BAA0B;CACjB,CAAC;AA0BX,MAAM,UAAU,oBAAoB,CAAC,OAAmB;IACvD,IAAI,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IAElC,MAAM,MAAM,GAAW,EAAE,CAAC;IAE1B,IAAI,CAAC,SAAS,EAAE,CAAC;QAChB,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC;QACzC,IAAI,SAAS,GAAG,CAAC,IAAI,SAAS,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACrD,MAAM,IAAI,KAAK,CAAC,wBAAwB,SAAS,EAAE,CAAC,CAAC;QACtD,CAAC;QACD,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;IACxC,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG;IAC3B,QAAQ,EAAE,YAAY;IACtB,iBAAiB,EAAE,QAAQ;IAC3B,UAAU,EAAE,OAAO;IACnB,UAAU,EAAE,SAAS;IACrB,SAAS,EACR,oEAAoE;CAC5D,CAAC"}
@@ -6,6 +6,7 @@
6
6
  */
7
7
  export * from "./constants.js";
8
8
  export { chunkText, extractAudioFromNdjson } from "./text_utils.js";
9
+ export { applyPronunciationDictionary, PronunciationDictionaryValidationError, type PronunciationDictionaryEntry, } from "./pronunciation_utils.js";
9
10
  export { mergeWavBinary, mergeMp3Binary, removeWavHeader, removeMp3Header, detectAudioFormat, extractAudioFromResponse, extractAudioFromResponses, } from "./audio_utils.js";
10
11
  export { mergePhonemeData, adjustPhonemeTiming, createEmptyPhonemeDict, type PhonemeData, } from "./phoneme_utils.js";
11
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom_utils/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,cAAc,gBAAgB,CAAC;AAG/B,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAGpE,OAAO,EACN,cAAc,EACd,cAAc,EACd,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,wBAAwB,EACxB,yBAAyB,GACzB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACN,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,KAAK,WAAW,GAChB,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom_utils/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,cAAc,gBAAgB,CAAC;AAG/B,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAGpE,OAAO,EACN,4BAA4B,EAC5B,sCAAsC,EACtC,KAAK,4BAA4B,GACjC,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACN,cAAc,EACd,cAAc,EACd,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,wBAAwB,EACxB,yBAAyB,GACzB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACN,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,KAAK,WAAW,GAChB,MAAM,oBAAoB,CAAC"}
@@ -8,6 +8,8 @@
8
8
  export * from "./constants.js";
9
9
  // Export text utilities
10
10
  export { chunkText, extractAudioFromNdjson } from "./text_utils.js";
11
+ // Export pronunciation utilities
12
+ export { applyPronunciationDictionary, PronunciationDictionaryValidationError, } from "./pronunciation_utils.js";
11
13
  // Export audio utilities
12
14
  export { mergeWavBinary, mergeMp3Binary, removeWavHeader, removeMp3Header, detectAudioFormat, extractAudioFromResponse, extractAudioFromResponses, } from "./audio_utils.js";
13
15
  // Export phoneme utilities
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/custom_utils/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,uBAAuB;AACvB,cAAc,gBAAgB,CAAC;AAE/B,wBAAwB;AACxB,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAEpE,yBAAyB;AACzB,OAAO,EACN,cAAc,EACd,cAAc,EACd,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,wBAAwB,EACxB,yBAAyB,GACzB,MAAM,kBAAkB,CAAC;AAE1B,2BAA2B;AAC3B,OAAO,EACN,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,GAEtB,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/custom_utils/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,uBAAuB;AACvB,cAAc,gBAAgB,CAAC;AAE/B,wBAAwB;AACxB,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAEpE,iCAAiC;AACjC,OAAO,EACN,4BAA4B,EAC5B,sCAAsC,GAEtC,MAAM,0BAA0B,CAAC;AAElC,yBAAyB;AACzB,OAAO,EACN,cAAc,EACd,cAAc,EACd,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,wBAAwB,EACxB,yBAAyB,GACzB,MAAM,kBAAkB,CAAC;AAE1B,2BAA2B;AAC3B,OAAO,EACN,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,GAEtB,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Pronunciation dictionary substitution utilities.
3
+ *
4
+ * Mirrors the Python implementation policy:
5
+ * - Apply rules in input order
6
+ * - partial_match=false: word-boundary exact matches only
7
+ * - partial_match=true: substring matches (no boundaries)
8
+ * - No re-substitution: replaced segments are shielded via opaque tokens
9
+ *
10
+ * Validation:
11
+ * - pronunciation_dictionary omitted/undefined/null -> return original text
12
+ * - pronunciation_dictionary must be an array of objects
13
+ * - each object must have: text (string, non-empty), pronunciation (string, non-empty), partial_match (boolean)
14
+ */
15
+ export declare class PronunciationDictionaryValidationError extends Error {
16
+ constructor(message: string);
17
+ }
18
+ export type PronunciationDictionaryEntry = {
19
+ text: string;
20
+ pronunciation: string;
21
+ partial_match: boolean;
22
+ };
23
+ export declare function applyPronunciationDictionary(text: string, pronunciation_dictionary?: unknown): string;
24
+ //# sourceMappingURL=pronunciation_utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pronunciation_utils.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom_utils/pronunciation_utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,qBAAa,sCAAuC,SAAQ,KAAK;gBACnD,OAAO,EAAE,MAAM;CAI5B;AAED,MAAM,MAAM,4BAA4B,GAAG;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,MAAM,EACZ,wBAAwB,CAAC,EAAE,OAAO,GACjC,MAAM,CAuER"}
@@ -0,0 +1,140 @@
1
+ /**
2
+ * Pronunciation dictionary substitution utilities.
3
+ *
4
+ * Mirrors the Python implementation policy:
5
+ * - Apply rules in input order
6
+ * - partial_match=false: word-boundary exact matches only
7
+ * - partial_match=true: substring matches (no boundaries)
8
+ * - No re-substitution: replaced segments are shielded via opaque tokens
9
+ *
10
+ * Validation:
11
+ * - pronunciation_dictionary omitted/undefined/null -> return original text
12
+ * - pronunciation_dictionary must be an array of objects
13
+ * - each object must have: text (string, non-empty), pronunciation (string, non-empty), partial_match (boolean)
14
+ */
15
+ export class PronunciationDictionaryValidationError extends Error {
16
+ constructor(message) {
17
+ super(message);
18
+ this.name = "PronunciationDictionaryValidationError";
19
+ }
20
+ }
21
+ export function applyPronunciationDictionary(text, pronunciation_dictionary) {
22
+ // Match Python behavior: return early for null, undefined, or empty array
23
+ if (pronunciation_dictionary == null ||
24
+ (Array.isArray(pronunciation_dictionary) &&
25
+ pronunciation_dictionary.length === 0)) {
26
+ return text;
27
+ }
28
+ if (typeof text !== "string") {
29
+ throw new PronunciationDictionaryValidationError(`\`text\` must be string, got ${typeof text}`);
30
+ }
31
+ if (!Array.isArray(pronunciation_dictionary)) {
32
+ throw new PronunciationDictionaryValidationError("`pronunciation_dictionary` must be an array of objects");
33
+ }
34
+ // Prevent re-substitution:
35
+ // replace matches with unique opaque tokens first,
36
+ // then expand tokens to pronunciations at the end.
37
+ const tokenToPronunciation = new Map();
38
+ let working = text;
39
+ for (let idx = 0; idx < pronunciation_dictionary.length; idx++) {
40
+ const entry = validateEntry(pronunciation_dictionary[idx], idx);
41
+ const src = entry.text;
42
+ const dst = entry.pronunciation;
43
+ const partial = entry.partial_match;
44
+ const token = makeUniqueToken(idx, working, tokenToPronunciation);
45
+ if (partial) {
46
+ const re = new RegExp(escapeRegExp(src), "g");
47
+ const newWorking = working.replace(re, token);
48
+ if (newWorking === working)
49
+ continue; // No match found
50
+ tokenToPronunciation.set(token, dst);
51
+ working = newWorking;
52
+ continue;
53
+ }
54
+ // Exact match with word-boundary semantics (Unicode-aware-ish).
55
+ // Python uses Unicode \w; in JS, \w is ASCII-only. To mirror behavior better across scripts,
56
+ // we define "word char" as: letter or number or underscore.
57
+ //
58
+ // We avoid lookbehind for broader runtime compatibility by capturing the left boundary.
59
+ //
60
+ // Pattern: (^|[^WORD_CHARS]) (SRC) (?=[^WORD_CHARS]|$)
61
+ // (IMPORTANT) WORD_CHARS must not include surrounding [] because we embed it into other [].
62
+ const WORD_CHARS = "\\p{L}\\p{N}_";
63
+ const srcEsc = escapeRegExp(src);
64
+ const pattern = `(^|[^${WORD_CHARS}])(${srcEsc})(?=[^${WORD_CHARS}]|$)`;
65
+ const re = new RegExp(pattern, "gu");
66
+ // Replace keeping the left boundary (group 1)
67
+ const newWorking = working.replace(re, `$1${token}`);
68
+ if (newWorking === working)
69
+ continue; // No match found
70
+ tokenToPronunciation.set(token, dst);
71
+ working = newWorking;
72
+ }
73
+ // Expand tokens into pronunciations.
74
+ for (const [token, pron] of tokenToPronunciation.entries()) {
75
+ working = working.split(token).join(pron);
76
+ }
77
+ return working;
78
+ }
79
+ function validateEntry(raw, idx) {
80
+ if (raw == null || typeof raw !== "object" || Array.isArray(raw)) {
81
+ throw new PronunciationDictionaryValidationError(`pronunciation_dictionary[${idx}] must be an object, got ${raw === null ? "null" : Array.isArray(raw) ? "array" : typeof raw}`);
82
+ }
83
+ const obj = raw;
84
+ const missing = [];
85
+ if (!("text" in obj))
86
+ missing.push("text");
87
+ if (!("pronunciation" in obj))
88
+ missing.push("pronunciation");
89
+ if (!("partial_match" in obj))
90
+ missing.push("partial_match");
91
+ if (missing.length) {
92
+ throw new PronunciationDictionaryValidationError(`pronunciation_dictionary[${idx}] missing required field(s): ${missing.join(", ")}`);
93
+ }
94
+ const src = obj["text"];
95
+ const dst = obj["pronunciation"];
96
+ const partial = obj["partial_match"];
97
+ if (typeof src !== "string") {
98
+ throw new PronunciationDictionaryValidationError(`pronunciation_dictionary[${idx}].text must be string, got ${typeof src}`);
99
+ }
100
+ if (typeof dst !== "string") {
101
+ throw new PronunciationDictionaryValidationError(`pronunciation_dictionary[${idx}].pronunciation must be string, got ${typeof dst}`);
102
+ }
103
+ if (typeof partial !== "boolean") {
104
+ throw new PronunciationDictionaryValidationError(`pronunciation_dictionary[${idx}].partial_match must be boolean, got ${typeof partial}`);
105
+ }
106
+ if (src === "") {
107
+ throw new PronunciationDictionaryValidationError(`pronunciation_dictionary[${idx}].text must not be empty`);
108
+ }
109
+ if (dst === "") {
110
+ throw new PronunciationDictionaryValidationError(`pronunciation_dictionary[${idx}].pronunciation must not be empty`);
111
+ }
112
+ return { text: src, pronunciation: dst, partial_match: partial };
113
+ }
114
+ function escapeRegExp(s) {
115
+ return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
116
+ }
117
+ function makeUniqueToken(idx, working, existing) {
118
+ // Private Use Area markers to minimize collision with typical text.
119
+ const base = `\uE000PD${idx}\uE001`;
120
+ if (!working.includes(base) && !existing.has(base))
121
+ return base;
122
+ while (true) {
123
+ const suffix = safeRandomHex();
124
+ const token = `\uE000PD${idx}_${suffix}\uE001`;
125
+ if (!working.includes(token) && !existing.has(token))
126
+ return token;
127
+ }
128
+ }
129
+ function safeRandomHex() {
130
+ // Prefer crypto.randomUUID when available (browser / modern runtimes)
131
+ const c = globalThis.crypto;
132
+ if (c && typeof c.randomUUID === "function") {
133
+ return String(c.randomUUID()).replace(/-/g, "");
134
+ }
135
+ // Fallback: not cryptographically strong, but fine for uniqueness tokenization.
136
+ return (Math.random().toString(16).slice(2) +
137
+ Math.random().toString(16).slice(2) +
138
+ Date.now().toString(16));
139
+ }
140
+ //# sourceMappingURL=pronunciation_utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pronunciation_utils.js","sourceRoot":"","sources":["../../../../src/lib/custom_utils/pronunciation_utils.ts"],"names":[],"mappings":"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"}
@@ -12,9 +12,16 @@
12
12
  * It handles various punctuation patterns and provides graceful fallback to
13
13
  * word/character boundaries when necessary.
14
14
  *
15
+ * Chunking Strategy:
16
+ * 1. First, split by sentence boundaries (multilingual punctuation)
17
+ * 2. Merge sentences into chunks up to maxLength
18
+ * 3. If a sentence exceeds maxLength:
19
+ * - For text with spaces: split by words
20
+ * - For text without spaces (Japanese, etc.): split by characters
21
+ *
15
22
  * @param text - Input text to be segmented
16
23
  * @param maxLength - Maximum length of each chunk
17
- * @returns Array of text chunks
24
+ * @returns Array of text chunks, each guaranteed to be <= maxLength
18
25
  */
19
26
  export declare function chunkText(text: string, maxLength?: number): string[];
20
27
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"text_utils.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom_utils/text_utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CACxB,IAAI,EAAE,MAAM,EACZ,SAAS,GAAE,MAAgC,GACzC,MAAM,EAAE,CA2BV;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,CA8BpE"}
1
+ {"version":3,"file":"text_utils.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom_utils/text_utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAkHH;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,SAAS,CACxB,IAAI,EAAE,MAAM,EACZ,SAAS,GAAE,MAAgC,GACzC,MAAM,EAAE,CAyCV;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,CA8BpE"}
@@ -5,6 +5,103 @@
5
5
  * These functions are designed to be pure functions without side effects.
6
6
  */
7
7
  import { DEFAULT_MAX_TEXT_LENGTH } from "./constants.js";
8
+ /**
9
+ * Sentence-ending punctuation pattern for multilingual support.
10
+ *
11
+ * Supported languages: English, Korean, Japanese, Bulgarian, Czech, Danish,
12
+ * Greek, Spanish, Estonian, Finnish, Hungarian, Italian, Dutch, Polish,
13
+ * Portuguese, Romanian, Arabic, German, French, Hindi, Indonesian, Russian,
14
+ * Vietnamese, Chinese, Thai, and more.
15
+ *
16
+ * Punctuation groups:
17
+ * - ASCII basics: . ! ? ; :
18
+ * - Ellipsis: … (U+2026), ‥ (U+2025)
19
+ * - CJK fullwidth: 。!?;:。、
20
+ * - Arabic/Urdu: ؟ ؛ ۔ ،
21
+ * - Devanagari (Hindi/Sanskrit): । ॥
22
+ * - Greek question mark: ; (U+037E)
23
+ */
24
+ const SENTENCE_PUNCTUATION = ".!?;:…‥。!?;:。、؟؛۔،।॥\u037E";
25
+ const SENTENCE_SPLIT_PATTERN = new RegExp(`([${SENTENCE_PUNCTUATION}]+\\s*)`, "u");
26
+ /**
27
+ * Check if text contains spaces (to determine if word-based splitting is possible)
28
+ *
29
+ * @param text - Text to check
30
+ * @returns true if text contains spaces
31
+ */
32
+ function hasSpaces(text) {
33
+ return /\s/.test(text);
34
+ }
35
+ /**
36
+ * Split text by words, ensuring each chunk is under maxLength.
37
+ * Used for languages with spaces (English, Korean, etc.)
38
+ *
39
+ * @param text - Text to split
40
+ * @param maxLength - Maximum length of each chunk
41
+ * @returns Array of text chunks
42
+ */
43
+ function splitByWords(text, maxLength) {
44
+ const words = text.split(/(\s+)/);
45
+ const chunks = [];
46
+ let currentChunk = "";
47
+ for (const word of words) {
48
+ if (currentChunk.length + word.length <= maxLength) {
49
+ currentChunk += word;
50
+ }
51
+ else {
52
+ if (currentChunk.trim()) {
53
+ chunks.push(currentChunk.trim());
54
+ }
55
+ // If a single word exceeds maxLength, split by characters
56
+ if (word.trim().length > maxLength) {
57
+ const charChunks = splitByCharacters(word.trim(), maxLength);
58
+ chunks.push(...charChunks);
59
+ currentChunk = "";
60
+ }
61
+ else {
62
+ currentChunk = word;
63
+ }
64
+ }
65
+ }
66
+ if (currentChunk.trim()) {
67
+ chunks.push(currentChunk.trim());
68
+ }
69
+ return chunks;
70
+ }
71
+ /**
72
+ * Split text by characters, ensuring each chunk is under maxLength.
73
+ * Used for languages without spaces (Japanese, Chinese, etc.)
74
+ *
75
+ * @param text - Text to split
76
+ * @param maxLength - Maximum length of each chunk
77
+ * @returns Array of text chunks
78
+ */
79
+ function splitByCharacters(text, maxLength) {
80
+ const chunks = [];
81
+ for (let i = 0; i < text.length; i += maxLength) {
82
+ chunks.push(text.slice(i, i + maxLength));
83
+ }
84
+ return chunks;
85
+ }
86
+ /**
87
+ * Split a single chunk that exceeds maxLength into smaller chunks.
88
+ * Uses word-based splitting for texts with spaces, character-based for texts without.
89
+ *
90
+ * @param chunk - Text chunk to split
91
+ * @param maxLength - Maximum length of each chunk
92
+ * @returns Array of text chunks, all under maxLength
93
+ */
94
+ function splitOversizedChunk(chunk, maxLength) {
95
+ if (chunk.length <= maxLength) {
96
+ return [chunk];
97
+ }
98
+ // Check if text has spaces (word-based splitting possible)
99
+ if (hasSpaces(chunk)) {
100
+ return splitByWords(chunk, maxLength);
101
+ }
102
+ // No spaces: use character-based splitting (Japanese, Chinese, etc.)
103
+ return splitByCharacters(chunk, maxLength);
104
+ }
8
105
  /**
9
106
  * Split input text into sentence chunks suitable for TTS processing.
10
107
  *
@@ -13,33 +110,54 @@ import { DEFAULT_MAX_TEXT_LENGTH } from "./constants.js";
13
110
  * It handles various punctuation patterns and provides graceful fallback to
14
111
  * word/character boundaries when necessary.
15
112
  *
113
+ * Chunking Strategy:
114
+ * 1. First, split by sentence boundaries (multilingual punctuation)
115
+ * 2. Merge sentences into chunks up to maxLength
116
+ * 3. If a sentence exceeds maxLength:
117
+ * - For text with spaces: split by words
118
+ * - For text without spaces (Japanese, etc.): split by characters
119
+ *
16
120
  * @param text - Input text to be segmented
17
121
  * @param maxLength - Maximum length of each chunk
18
- * @returns Array of text chunks
122
+ * @returns Array of text chunks, each guaranteed to be <= maxLength
19
123
  */
20
124
  export function chunkText(text, maxLength = DEFAULT_MAX_TEXT_LENGTH) {
21
125
  if (text.length <= maxLength) {
22
126
  return [text];
23
127
  }
24
- // Split by sentence boundaries
25
- const sentences = text.split(/([.!?;:]+\s*)/);
26
- const chunks = [];
128
+ // Step 1: Split by sentence boundaries (multilingual punctuation)
129
+ const sentences = text.split(SENTENCE_SPLIT_PATTERN);
130
+ const preliminaryChunks = [];
27
131
  let currentChunk = "";
132
+ // Step 2: Merge sentences into chunks up to maxLength
28
133
  for (const sentence of sentences) {
29
134
  if (currentChunk.length + sentence.length <= maxLength) {
30
135
  currentChunk += sentence;
31
136
  }
32
137
  else {
33
138
  if (currentChunk) {
34
- chunks.push(currentChunk);
139
+ preliminaryChunks.push(currentChunk);
35
140
  }
36
141
  currentChunk = sentence;
37
142
  }
38
143
  }
39
144
  if (currentChunk) {
40
- chunks.push(currentChunk);
145
+ preliminaryChunks.push(currentChunk);
41
146
  }
42
- return chunks;
147
+ // Step 3: Handle oversized chunks (split by words or characters)
148
+ const finalChunks = [];
149
+ for (const chunk of preliminaryChunks) {
150
+ if (chunk.length <= maxLength) {
151
+ finalChunks.push(chunk);
152
+ }
153
+ else {
154
+ // Chunk exceeds maxLength, need to split further
155
+ const subChunks = splitOversizedChunk(chunk, maxLength);
156
+ finalChunks.push(...subChunks);
157
+ }
158
+ }
159
+ // Filter out empty chunks
160
+ return finalChunks.filter((chunk) => chunk.length > 0);
43
161
  }
44
162
  /**
45
163
  * Extract audio data from NDJSON response.