@speech-sdk/core 0.0.3 → 0.0.5

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 (81) hide show
  1. package/README.md +37 -0
  2. package/dist/audio-tags.d.ts +6 -0
  3. package/dist/audio-tags.d.ts.map +1 -0
  4. package/dist/audio-tags.js +17 -0
  5. package/dist/audio-tags.js.map +1 -0
  6. package/dist/errors.d.ts +1 -1
  7. package/dist/errors.d.ts.map +1 -1
  8. package/dist/errors.js +5 -5
  9. package/dist/errors.js.map +1 -1
  10. package/dist/generate-speech.d.ts +2 -2
  11. package/dist/generate-speech.d.ts.map +1 -1
  12. package/dist/generate-speech.js +29 -6
  13. package/dist/generate-speech.js.map +1 -1
  14. package/dist/index.d.ts +6 -5
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +4 -2
  17. package/dist/index.js.map +1 -1
  18. package/dist/provider-utils.d.ts.map +1 -1
  19. package/dist/provider-utils.js +16 -12
  20. package/dist/provider-utils.js.map +1 -1
  21. package/dist/providers/cartesia/index.d.ts +9 -3
  22. package/dist/providers/cartesia/index.d.ts.map +1 -1
  23. package/dist/providers/cartesia/index.js +159 -15
  24. package/dist/providers/cartesia/index.js.map +1 -1
  25. package/dist/providers/deepgram/index.d.ts +2 -2
  26. package/dist/providers/deepgram/index.d.ts.map +1 -1
  27. package/dist/providers/deepgram/index.js +16 -9
  28. package/dist/providers/deepgram/index.js.map +1 -1
  29. package/dist/providers/elevenlabs/index.d.ts +9 -5
  30. package/dist/providers/elevenlabs/index.d.ts.map +1 -1
  31. package/dist/providers/elevenlabs/index.js +166 -33
  32. package/dist/providers/elevenlabs/index.js.map +1 -1
  33. package/dist/providers/fal/index.d.ts +6 -6
  34. package/dist/providers/fal/index.d.ts.map +1 -1
  35. package/dist/providers/fal/index.js +52 -17
  36. package/dist/providers/fal/index.js.map +1 -1
  37. package/dist/providers/fish-audio/index.d.ts +6 -2
  38. package/dist/providers/fish-audio/index.d.ts.map +1 -1
  39. package/dist/providers/fish-audio/index.js +24 -10
  40. package/dist/providers/fish-audio/index.js.map +1 -1
  41. package/dist/providers/google/index.d.ts +3 -3
  42. package/dist/providers/google/index.d.ts.map +1 -1
  43. package/dist/providers/google/index.js +80 -15
  44. package/dist/providers/google/index.js.map +1 -1
  45. package/dist/providers/hume/index.d.ts +3 -3
  46. package/dist/providers/hume/index.d.ts.map +1 -1
  47. package/dist/providers/hume/index.js +43 -15
  48. package/dist/providers/hume/index.js.map +1 -1
  49. package/dist/providers/mistral/index.d.ts +2 -2
  50. package/dist/providers/mistral/index.d.ts.map +1 -1
  51. package/dist/providers/mistral/index.js +33 -16
  52. package/dist/providers/mistral/index.js.map +1 -1
  53. package/dist/providers/murf/index.d.ts +3 -3
  54. package/dist/providers/murf/index.d.ts.map +1 -1
  55. package/dist/providers/murf/index.js +62 -14
  56. package/dist/providers/murf/index.js.map +1 -1
  57. package/dist/providers/openai/index.d.ts +4 -4
  58. package/dist/providers/openai/index.d.ts.map +1 -1
  59. package/dist/providers/openai/index.js +99 -18
  60. package/dist/providers/openai/index.js.map +1 -1
  61. package/dist/providers/resemble/index.d.ts +2 -2
  62. package/dist/providers/resemble/index.d.ts.map +1 -1
  63. package/dist/providers/resemble/index.js +41 -10
  64. package/dist/providers/resemble/index.js.map +1 -1
  65. package/dist/providers/unreal-speech/index.d.ts +2 -2
  66. package/dist/providers/unreal-speech/index.d.ts.map +1 -1
  67. package/dist/providers/unreal-speech/index.js +20 -13
  68. package/dist/providers/unreal-speech/index.js.map +1 -1
  69. package/dist/resolve-provider.d.ts +1 -1
  70. package/dist/resolve-provider.d.ts.map +1 -1
  71. package/dist/resolve-provider.js +34 -34
  72. package/dist/resolve-provider.js.map +1 -1
  73. package/dist/speech-provider.d.ts +10 -6
  74. package/dist/speech-provider.d.ts.map +1 -1
  75. package/dist/speech-result.d.ts +4 -3
  76. package/dist/speech-result.d.ts.map +1 -1
  77. package/dist/speech-result.js +9 -7
  78. package/dist/speech-result.js.map +1 -1
  79. package/dist/types.d.ts +7 -7
  80. package/dist/types.d.ts.map +1 -1
  81. package/package.json +6 -2
@@ -1,18 +1,32 @@
1
- import { resolveApiKey, handleErrorResponse } from '../../provider-utils.js';
1
+ import { stripAudioTags } from "../../audio-tags.js";
2
+ import { handleErrorResponse, resolveApiKey } from "../../provider-utils.js";
2
3
  export class FishAudioSpeechProvider {
3
- id = 'fish-audio';
4
- defaultModel = 's2-pro';
4
+ id = "fish-audio";
5
+ defaultModel = "s2-pro";
5
6
  models = [
6
- { id: 's2-pro', languages: ['ja', 'en', 'zh', 'ko', 'es', 'pt', 'ar', 'ru', 'fr', 'de'], releaseDate: '2026-03-09', openSource: true, inlineVoiceCloning: true, zeroDataRetention: false },
7
+ {
8
+ id: "s2-pro",
9
+ audioTags: true,
10
+ languages: ["ja", "en", "zh", "ko", "es", "pt", "ar", "ru", "fr", "de"],
11
+ releaseDate: "2026-03-09",
12
+ openSource: true,
13
+ inlineVoiceCloning: true,
14
+ },
7
15
  ];
8
16
  apiKey;
9
17
  baseURL;
10
18
  fetchFn;
11
19
  constructor(config) {
12
20
  this.apiKey = config.apiKey;
13
- this.baseURL = config.baseURL ?? 'https://api.fish.audio';
21
+ this.baseURL = config.baseURL ?? "https://api.fish.audio";
14
22
  this.fetchFn = config.fetch ?? globalThis.fetch;
15
23
  }
24
+ processAudioTags(text, modelId) {
25
+ if (this.models.some((m) => m.id === modelId && m.audioTags)) {
26
+ return { text, warnings: [] };
27
+ }
28
+ return stripAudioTags(text, `fish-audio/${modelId}`);
29
+ }
16
30
  async generate(options) {
17
31
  const url = `${this.baseURL}/v1/tts`;
18
32
  const body = {
@@ -23,11 +37,11 @@ export class FishAudioSpeechProvider {
23
37
  body.reference_id = options.voice;
24
38
  }
25
39
  const response = await this.fetchFn(url, {
26
- method: 'POST',
40
+ method: "POST",
27
41
  headers: {
28
- 'Content-Type': 'application/json',
29
- 'Authorization': `Bearer ${resolveApiKey(this.apiKey, 'FISH_AUDIO_API_KEY', 'Fish Audio')}`,
30
- 'model': options.modelId,
42
+ "Content-Type": "application/json",
43
+ Authorization: `Bearer ${resolveApiKey(this.apiKey, "FISH_AUDIO_API_KEY", "Fish Audio")}`,
44
+ model: options.modelId,
31
45
  ...options.headers,
32
46
  },
33
47
  body: JSON.stringify(body),
@@ -35,7 +49,7 @@ export class FishAudioSpeechProvider {
35
49
  });
36
50
  await handleErrorResponse(response, `fish-audio/${options.modelId}`);
37
51
  const arrayBuffer = await response.arrayBuffer();
38
- const mediaType = response.headers.get('content-type') ?? 'audio/mpeg';
52
+ const mediaType = response.headers.get("content-type") ?? "audio/mpeg";
39
53
  return {
40
54
  audio: new Uint8Array(arrayBuffer),
41
55
  mediaType,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/fish-audio/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAQ7E,MAAM,OAAO,uBAAuB;IACzB,EAAE,GAAG,YAAY,CAAC;IAClB,YAAY,GAAG,QAAQ,CAAC;IAExB,MAAM,GAAG;QAChB,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE;KAClL,CAAC;IAEM,MAAM,CAAqB;IAC3B,OAAO,CAAS;IAChB,OAAO,CAA0B;IAElD,YAAY,MAAqC;QAC/C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,wBAAwB,CAAC;QAC1D,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAOd;QAKC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,SAAS,CAAC;QAErC,MAAM,IAAI,GAA4B;YACpC,GAAG,OAAO,CAAC,eAAe;YAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;SACnB,CAAC;QAEF,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC;QACpC,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;YACvC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,eAAe,EAAE,UAAU,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,oBAAoB,EAAE,YAAY,CAAC,EAAE;gBAC3F,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,GAAG,OAAO,CAAC,OAAO;aACnB;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAC1B,MAAM,EAAE,OAAO,CAAC,WAAW;SAC5B,CAAC,CAAC;QAEH,MAAM,mBAAmB,CAAC,QAAQ,EAAE,cAAc,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAErE,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC;QACjD,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,YAAY,CAAC;QAEvE,OAAO;YACL,KAAK,EAAE,IAAI,UAAU,CAAC,WAAW,CAAC;YAClC,SAAS;SACV,CAAC;IACJ,CAAC;CACF;AAED,MAAM,UAAU,eAAe,CAAC,SAAwC,EAAE;IACxE,MAAM,QAAQ,GAAG,IAAI,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAErD,OAAO,SAAS,SAAS,CAAC,OAAgB;QACxC,OAAO;YACL,QAAQ;YACR,OAAO,EAAE,OAAO,IAAI,QAAQ,CAAC,YAAY;SAC1C,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/fish-audio/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { SpeechProvider, ResolvedModel } from '../../speech-provider.js';
1
+ import type { ResolvedModel, SpeechProvider } from "../../speech-provider.js";
2
2
  export interface GoogleSpeechProviderConfig {
3
3
  apiKey?: string;
4
4
  baseURL?: string;
@@ -11,16 +11,16 @@ export declare class GoogleSpeechProvider implements SpeechProvider<string, stri
11
11
  readonly id: "gemini-2.5-flash-preview-tts";
12
12
  readonly languages: readonly ["en", "fr", "de", "es", "pt", "zh", "ja", "ko", "hi", "it", "nl", "pl", "ru", "sv", "tr", "id", "ar", "cs", "da", "fi", "el", "hu", "ro", "uk"];
13
13
  readonly releaseDate: "2025-05-01";
14
+ readonly audioTags: false;
14
15
  readonly openSource: false;
15
16
  readonly inlineVoiceCloning: false;
16
- readonly zeroDataRetention: false;
17
17
  }, {
18
18
  readonly id: "gemini-2.5-pro-preview-tts";
19
19
  readonly languages: readonly ["en", "fr", "de", "es", "pt", "zh", "ja", "ko", "hi", "it", "nl", "pl", "ru", "sv", "tr", "id", "ar", "cs", "da", "fi", "el", "hu", "ro", "uk"];
20
20
  readonly releaseDate: "2025-05-01";
21
+ readonly audioTags: false;
21
22
  readonly openSource: false;
22
23
  readonly inlineVoiceCloning: false;
23
- readonly zeroDataRetention: false;
24
24
  }];
25
25
  private readonly apiKey;
26
26
  private readonly baseURL;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/google/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAG9E,MAAM,WAAW,0BAA0B;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAED,qBAAa,oBAAqB,YAAW,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC;IACzE,QAAQ,CAAC,EAAE,YAAY;IACvB,QAAQ,CAAC,YAAY,kCAAkC;IAEvD,QAAQ,CAAC,MAAM;;;;;;;;;;;;;;OAGJ;IAEX,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;gBAEtC,MAAM,EAAE,0BAA0B;IAMxC,QAAQ,CAAC,OAAO,EAAE;QACtB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1C,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAClC,GAAG,OAAO,CAAC;QACV,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC5C,CAAC;CA8DH;AAED,wBAAgB,YAAY,CAAC,MAAM,GAAE,0BAA+B,IAG3C,UAAU,MAAM,KAAG,aAAa,CAAC,MAAM,CAAC,CAMhE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/google/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE9E,MAAM,WAAW,0BAA0B;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAED,qBAAa,oBAAqB,YAAW,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC;IACzE,QAAQ,CAAC,EAAE,YAAY;IACvB,QAAQ,CAAC,YAAY,kCAAkC;IAEvD,QAAQ,CAAC,MAAM;;;;;;;;;;;;;;OAmEJ;IAEX,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;gBAEtC,MAAM,EAAE,0BAA0B;IAOxC,QAAQ,CAAC,OAAO,EAAE;QACtB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1C,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAClC,GAAG,OAAO,CAAC;QACV,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC5C,CAAC;CA8DH;AAED,wBAAgB,YAAY,CAAC,MAAM,GAAE,0BAA+B,IAG3C,UAAU,MAAM,KAAG,aAAa,CAAC,MAAM,CAAC,CAMhE"}
@@ -1,22 +1,87 @@
1
- import { resolveApiKey, handleErrorResponse } from '../../provider-utils.js';
1
+ import { handleErrorResponse, resolveApiKey } from "../../provider-utils.js";
2
2
  export class GoogleSpeechProvider {
3
- id = 'google';
4
- defaultModel = 'gemini-2.5-flash-preview-tts';
3
+ id = "google";
4
+ defaultModel = "gemini-2.5-flash-preview-tts";
5
5
  models = [
6
- { id: 'gemini-2.5-flash-preview-tts', languages: ['en', 'fr', 'de', 'es', 'pt', 'zh', 'ja', 'ko', 'hi', 'it', 'nl', 'pl', 'ru', 'sv', 'tr', 'id', 'ar', 'cs', 'da', 'fi', 'el', 'hu', 'ro', 'uk'], releaseDate: '2025-05-01', openSource: false, inlineVoiceCloning: false, zeroDataRetention: false },
7
- { id: 'gemini-2.5-pro-preview-tts', languages: ['en', 'fr', 'de', 'es', 'pt', 'zh', 'ja', 'ko', 'hi', 'it', 'nl', 'pl', 'ru', 'sv', 'tr', 'id', 'ar', 'cs', 'da', 'fi', 'el', 'hu', 'ro', 'uk'], releaseDate: '2025-05-01', openSource: false, inlineVoiceCloning: false, zeroDataRetention: false },
6
+ {
7
+ id: "gemini-2.5-flash-preview-tts",
8
+ languages: [
9
+ "en",
10
+ "fr",
11
+ "de",
12
+ "es",
13
+ "pt",
14
+ "zh",
15
+ "ja",
16
+ "ko",
17
+ "hi",
18
+ "it",
19
+ "nl",
20
+ "pl",
21
+ "ru",
22
+ "sv",
23
+ "tr",
24
+ "id",
25
+ "ar",
26
+ "cs",
27
+ "da",
28
+ "fi",
29
+ "el",
30
+ "hu",
31
+ "ro",
32
+ "uk",
33
+ ],
34
+ releaseDate: "2025-05-01",
35
+ audioTags: false,
36
+ openSource: false,
37
+ inlineVoiceCloning: false,
38
+ },
39
+ {
40
+ id: "gemini-2.5-pro-preview-tts",
41
+ languages: [
42
+ "en",
43
+ "fr",
44
+ "de",
45
+ "es",
46
+ "pt",
47
+ "zh",
48
+ "ja",
49
+ "ko",
50
+ "hi",
51
+ "it",
52
+ "nl",
53
+ "pl",
54
+ "ru",
55
+ "sv",
56
+ "tr",
57
+ "id",
58
+ "ar",
59
+ "cs",
60
+ "da",
61
+ "fi",
62
+ "el",
63
+ "hu",
64
+ "ro",
65
+ "uk",
66
+ ],
67
+ releaseDate: "2025-05-01",
68
+ audioTags: false,
69
+ openSource: false,
70
+ inlineVoiceCloning: false,
71
+ },
8
72
  ];
9
73
  apiKey;
10
74
  baseURL;
11
75
  fetchFn;
12
76
  constructor(config) {
13
77
  this.apiKey = config.apiKey;
14
- this.baseURL = config.baseURL ?? 'https://generativelanguage.googleapis.com/v1beta';
78
+ this.baseURL =
79
+ config.baseURL ?? "https://generativelanguage.googleapis.com/v1beta";
15
80
  this.fetchFn = config.fetch ?? globalThis.fetch;
16
81
  }
17
82
  async generate(options) {
18
- const apiKey = resolveApiKey(this.apiKey, 'GOOGLE_API_KEY', 'Google');
19
- const voiceName = options.voice ?? 'Kore';
83
+ const apiKey = resolveApiKey(this.apiKey, "GOOGLE_API_KEY", "Google");
84
+ const voiceName = options.voice ?? "Kore";
20
85
  const speechConfig = {
21
86
  voice_config: {
22
87
  prebuilt_voice_config: {
@@ -27,35 +92,35 @@ export class GoogleSpeechProvider {
27
92
  const body = {
28
93
  contents: [
29
94
  {
30
- role: 'user',
95
+ role: "user",
31
96
  parts: [{ text: options.text }],
32
97
  },
33
98
  ],
34
99
  generationConfig: {
35
- responseModalities: ['audio'],
100
+ responseModalities: ["audio"],
36
101
  speech_config: speechConfig,
37
102
  ...options.providerOptions,
38
103
  },
39
104
  };
40
105
  const url = `${this.baseURL}/models/${options.modelId}:generateContent?key=${apiKey}`;
41
106
  const response = await this.fetchFn(url, {
42
- method: 'POST',
107
+ method: "POST",
43
108
  headers: {
44
- 'Content-Type': 'application/json',
109
+ "Content-Type": "application/json",
45
110
  ...options.headers,
46
111
  },
47
112
  body: JSON.stringify(body),
48
113
  signal: options.abortSignal,
49
114
  });
50
115
  await handleErrorResponse(response, `google/${options.modelId}`);
51
- const json = await response.json();
116
+ const json = (await response.json());
52
117
  const part = json.candidates?.[0]?.content?.parts?.find((p) => p.inlineData != null);
53
118
  if (!part?.inlineData) {
54
- throw new Error('No audio data in Gemini TTS response');
119
+ throw new Error("No audio data in Gemini TTS response");
55
120
  }
56
121
  return {
57
122
  audio: part.inlineData.data,
58
- mediaType: part.inlineData.mimeType ?? 'audio/mp3',
123
+ mediaType: part.inlineData.mimeType ?? "audio/mp3",
59
124
  };
60
125
  }
61
126
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/google/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/google/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { SpeechProvider, ResolvedModel } from '../../speech-provider.js';
1
+ import type { ResolvedModel, SpeechProvider } from "../../speech-provider.js";
2
2
  export interface HumeSpeechProviderConfig {
3
3
  apiKey?: string;
4
4
  baseURL?: string;
@@ -9,18 +9,18 @@ export declare class HumeSpeechProvider implements SpeechProvider<string, string
9
9
  readonly defaultModel = "octave-2";
10
10
  readonly models: readonly [{
11
11
  readonly id: "octave-2";
12
+ readonly audioTags: false;
12
13
  readonly languages: readonly ["en", "fr", "de", "es", "pt", "ja", "ko", "hi", "it", "ar", "ru"];
13
14
  readonly releaseDate: "2025-10-01";
14
15
  readonly openSource: false;
15
16
  readonly inlineVoiceCloning: true;
16
- readonly zeroDataRetention: false;
17
17
  }, {
18
18
  readonly id: "octave-1";
19
+ readonly audioTags: false;
19
20
  readonly languages: readonly ["en"];
20
21
  readonly releaseDate: "2025-03-01";
21
22
  readonly openSource: false;
22
23
  readonly inlineVoiceCloning: false;
23
- readonly zeroDataRetention: false;
24
24
  }];
25
25
  private readonly apiKey;
26
26
  private readonly baseURL;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/hume/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAG9E,MAAM,WAAW,wBAAwB;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAED,qBAAa,kBAAmB,YAAW,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC;IACvE,QAAQ,CAAC,EAAE,UAAU;IACrB,QAAQ,CAAC,YAAY,cAAc;IAEnC,QAAQ,CAAC,MAAM;;;;;;;;;;;;;;OAGJ;IAEX,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;gBAEtC,MAAM,EAAE,wBAAwB;IAM5C,OAAO,CAAC,cAAc;IAMhB,QAAQ,CAAC,OAAO,EAAE;QACtB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1C,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAClC,GAAG,OAAO,CAAC;QACV,KAAK,EAAE,UAAU,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC5C,CAAC;CAwCH;AAED,wBAAgB,UAAU,CAAC,MAAM,GAAE,wBAA6B,IAGzC,UAAU,MAAM,KAAG,aAAa,CAAC,MAAM,CAAC,CAM9D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/hume/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE9E,MAAM,WAAW,wBAAwB;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAED,qBAAa,kBAAmB,YAAW,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC;IACvE,QAAQ,CAAC,EAAE,UAAU;IACrB,QAAQ,CAAC,YAAY,cAAc;IAEnC,QAAQ,CAAC,MAAM;;;;;;;;;;;;;;OA6BJ;IAEX,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;gBAEtC,MAAM,EAAE,wBAAwB;IAM5C,OAAO,CAAC,cAAc;IAUhB,QAAQ,CAAC,OAAO,EAAE;QACtB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1C,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAClC,GAAG,OAAO,CAAC;QACV,KAAK,EAAE,UAAU,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC5C,CAAC;CAwCH;AAED,wBAAgB,UAAU,CAAC,MAAM,GAAE,wBAA6B,IAGzC,UAAU,MAAM,KAAG,aAAa,CAAC,MAAM,CAAC,CAM9D"}
@@ -1,30 +1,58 @@
1
- import { resolveApiKey, handleErrorResponse } from '../../provider-utils.js';
1
+ import { handleErrorResponse, resolveApiKey } from "../../provider-utils.js";
2
2
  export class HumeSpeechProvider {
3
- id = 'hume';
4
- defaultModel = 'octave-2';
3
+ id = "hume";
4
+ defaultModel = "octave-2";
5
5
  models = [
6
- { id: 'octave-2', languages: ['en', 'fr', 'de', 'es', 'pt', 'ja', 'ko', 'hi', 'it', 'ar', 'ru'], releaseDate: '2025-10-01', openSource: false, inlineVoiceCloning: true, zeroDataRetention: false },
7
- { id: 'octave-1', languages: ['en'], releaseDate: '2025-03-01', openSource: false, inlineVoiceCloning: false, zeroDataRetention: false },
6
+ {
7
+ id: "octave-2",
8
+ audioTags: false,
9
+ languages: [
10
+ "en",
11
+ "fr",
12
+ "de",
13
+ "es",
14
+ "pt",
15
+ "ja",
16
+ "ko",
17
+ "hi",
18
+ "it",
19
+ "ar",
20
+ "ru",
21
+ ],
22
+ releaseDate: "2025-10-01",
23
+ openSource: false,
24
+ inlineVoiceCloning: true,
25
+ },
26
+ {
27
+ id: "octave-1",
28
+ audioTags: false,
29
+ languages: ["en"],
30
+ releaseDate: "2025-03-01",
31
+ openSource: false,
32
+ inlineVoiceCloning: false,
33
+ },
8
34
  ];
9
35
  apiKey;
10
36
  baseURL;
11
37
  fetchFn;
12
38
  constructor(config) {
13
39
  this.apiKey = config.apiKey;
14
- this.baseURL = config.baseURL ?? 'https://api.hume.ai/v0';
40
+ this.baseURL = config.baseURL ?? "https://api.hume.ai/v0";
15
41
  this.fetchFn = config.fetch ?? globalThis.fetch;
16
42
  }
17
43
  resolveVersion(modelId) {
18
- if (modelId === 'octave-2')
19
- return '2';
20
- if (modelId === 'octave-1')
21
- return '1';
44
+ if (modelId === "octave-2") {
45
+ return "2";
46
+ }
47
+ if (modelId === "octave-1") {
48
+ return "1";
49
+ }
22
50
  return undefined;
23
51
  }
24
52
  async generate(options) {
25
53
  const utterance = { text: options.text };
26
54
  if (options.voice) {
27
- utterance.voice = { name: options.voice, provider: 'HUME_AI' };
55
+ utterance.voice = { name: options.voice, provider: "HUME_AI" };
28
56
  }
29
57
  const version = this.resolveVersion(options.modelId);
30
58
  const body = {
@@ -36,10 +64,10 @@ export class HumeSpeechProvider {
36
64
  }
37
65
  const url = `${this.baseURL}/tts/file`;
38
66
  const response = await this.fetchFn(url, {
39
- method: 'POST',
67
+ method: "POST",
40
68
  headers: {
41
- 'Content-Type': 'application/json',
42
- 'X-Hume-Api-Key': resolveApiKey(this.apiKey, 'HUME_API_KEY', 'Hume'),
69
+ "Content-Type": "application/json",
70
+ "X-Hume-Api-Key": resolveApiKey(this.apiKey, "HUME_API_KEY", "Hume"),
43
71
  ...options.headers,
44
72
  },
45
73
  body: JSON.stringify(body),
@@ -47,7 +75,7 @@ export class HumeSpeechProvider {
47
75
  });
48
76
  await handleErrorResponse(response, `hume/${options.modelId}`);
49
77
  const arrayBuffer = await response.arrayBuffer();
50
- const mediaType = response.headers.get('content-type') ?? 'audio/mpeg';
78
+ const mediaType = response.headers.get("content-type") ?? "audio/mpeg";
51
79
  return {
52
80
  audio: new Uint8Array(arrayBuffer),
53
81
  mediaType,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/hume/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/hume/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { SpeechProvider, ResolvedModel } from '../../speech-provider.js';
1
+ import type { ResolvedModel, SpeechProvider } from "../../speech-provider.js";
2
2
  export interface MistralSpeechProviderConfig {
3
3
  apiKey?: string;
4
4
  baseURL?: string;
@@ -11,11 +11,11 @@ export declare class MistralSpeechProvider implements SpeechProvider<string, str
11
11
  readonly defaultModel = "voxtral-mini-tts-2603";
12
12
  readonly models: readonly [{
13
13
  readonly id: "voxtral-mini-tts-2603";
14
+ readonly audioTags: false;
14
15
  readonly languages: readonly ["en", "fr", "de", "es", "nl", "pt", "it", "hi", "ar"];
15
16
  readonly releaseDate: "2026-03-23";
16
17
  readonly openSource: true;
17
18
  readonly inlineVoiceCloning: true;
18
- readonly zeroDataRetention: false;
19
19
  }];
20
20
  private readonly apiKey;
21
21
  private readonly baseURL;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/mistral/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAG9E,MAAM,WAAW,2BAA2B;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAED,qBAAa,qBACX,YAAW,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,GAAG,UAAU,CAAA;CAAE,CAAC;IAE1E,QAAQ,CAAC,EAAE,aAAa;IACxB,QAAQ,CAAC,YAAY,2BAA2B;IAChD,QAAQ,CAAC,MAAM;;;;;;;OAEJ;IAEX,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;gBAEtC,MAAM,EAAE,2BAA2B;IAMzC,QAAQ,CAAC,OAAO,EAAE;QACtB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,GAAG;YAAE,KAAK,EAAE,MAAM,GAAG,UAAU,CAAA;SAAE,CAAC;QAChD,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1C,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAClC,GAAG,OAAO,CAAC;QACV,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CA+CH;AAED,wBAAgB,aAAa,CAAC,MAAM,GAAE,2BAAgC,IAE5C,UAAU,MAAM,KAAG,aAAa,CAAC,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,GAAG,UAAU,CAAA;CAAE,CAAC,CAGlG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/mistral/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE9E,MAAM,WAAW,2BAA2B;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAED,qBAAa,qBACX,YAAW,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,GAAG,UAAU,CAAA;CAAE,CAAC;IAE1E,QAAQ,CAAC,EAAE,aAAa;IACxB,QAAQ,CAAC,YAAY,2BAA2B;IAChD,QAAQ,CAAC,MAAM;;;;;;;OAmBJ;IAEX,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;gBAEtC,MAAM,EAAE,2BAA2B;IAMzC,QAAQ,CAAC,OAAO,EAAE;QACtB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,GAAG;YAAE,KAAK,EAAE,MAAM,GAAG,UAAU,CAAA;SAAE,CAAC;QAChD,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1C,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAClC,GAAG,OAAO,CAAC;QACV,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CA+CH;AAED,wBAAgB,aAAa,CAAC,MAAM,GAAE,2BAAgC,IAGlE,UAAU,MAAM,KACf,aAAa,CAAC,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,GAAG,UAAU,CAAA;CAAE,CAAC,CAG1D"}
@@ -1,35 +1,52 @@
1
- import { resolveApiKey, handleErrorResponse } from '../../provider-utils.js';
1
+ import { handleErrorResponse, resolveApiKey } from "../../provider-utils.js";
2
2
  export class MistralSpeechProvider {
3
- id = 'mistral';
4
- defaultModel = 'voxtral-mini-tts-2603';
3
+ id = "mistral";
4
+ defaultModel = "voxtral-mini-tts-2603";
5
5
  models = [
6
- { id: 'voxtral-mini-tts-2603', languages: ['en', 'fr', 'de', 'es', 'nl', 'pt', 'it', 'hi', 'ar'], releaseDate: '2026-03-23', openSource: true, inlineVoiceCloning: true, zeroDataRetention: false },
6
+ {
7
+ id: "voxtral-mini-tts-2603",
8
+ audioTags: false,
9
+ languages: [
10
+ "en",
11
+ "fr",
12
+ "de",
13
+ "es",
14
+ "nl",
15
+ "pt",
16
+ "it",
17
+ "hi",
18
+ "ar",
19
+ ],
20
+ releaseDate: "2026-03-23",
21
+ openSource: true,
22
+ inlineVoiceCloning: true,
23
+ },
7
24
  ];
8
25
  apiKey;
9
26
  baseURL;
10
27
  fetchFn;
11
28
  constructor(config) {
12
29
  this.apiKey = config.apiKey;
13
- this.baseURL = config.baseURL ?? 'https://api.mistral.ai/v1';
30
+ this.baseURL = config.baseURL ?? "https://api.mistral.ai/v1";
14
31
  this.fetchFn = config.fetch ?? globalThis.fetch;
15
32
  }
16
33
  async generate(options) {
17
34
  const body = {
18
- response_format: 'mp3',
35
+ response_format: "mp3",
19
36
  ...options.providerOptions,
20
37
  model: options.modelId,
21
38
  input: options.text,
22
39
  };
23
40
  if (options.voice != null) {
24
- if (typeof options.voice === 'string') {
41
+ if (typeof options.voice === "string") {
25
42
  body.voice_id = options.voice;
26
43
  }
27
- else if ('audio' in options.voice) {
44
+ else if ("audio" in options.voice) {
28
45
  const audio = options.voice.audio;
29
46
  if (audio instanceof Uint8Array) {
30
- let binaryString = '';
31
- for (let i = 0; i < audio.length; i++) {
32
- binaryString += String.fromCharCode(audio[i]);
47
+ let binaryString = "";
48
+ for (const byte of audio) {
49
+ binaryString += String.fromCharCode(byte);
33
50
  }
34
51
  body.ref_audio = btoa(binaryString);
35
52
  }
@@ -40,20 +57,20 @@ export class MistralSpeechProvider {
40
57
  }
41
58
  const url = `${this.baseURL}/audio/speech`;
42
59
  const response = await this.fetchFn(url, {
43
- method: 'POST',
60
+ method: "POST",
44
61
  headers: {
45
- 'Content-Type': 'application/json',
46
- 'Authorization': `Bearer ${resolveApiKey(this.apiKey, 'MISTRAL_API_KEY', 'Mistral')}`,
62
+ "Content-Type": "application/json",
63
+ Authorization: `Bearer ${resolveApiKey(this.apiKey, "MISTRAL_API_KEY", "Mistral")}`,
47
64
  ...options.headers,
48
65
  },
49
66
  body: JSON.stringify(body),
50
67
  signal: options.abortSignal,
51
68
  });
52
69
  await handleErrorResponse(response, `mistral/${options.modelId}`);
53
- const json = await response.json();
70
+ const json = (await response.json());
54
71
  return {
55
72
  audio: json.audio_data,
56
- mediaType: 'audio/mpeg',
73
+ mediaType: "audio/mpeg",
57
74
  };
58
75
  }
59
76
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/mistral/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAQ7E,MAAM,OAAO,qBAAqB;IAGvB,EAAE,GAAG,SAAS,CAAC;IACf,YAAY,GAAG,uBAAuB,CAAC;IACvC,MAAM,GAAG;QAChB,EAAE,EAAE,EAAE,uBAAuB,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAU,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE;KACpM,CAAC;IAEM,MAAM,CAAqB;IAC3B,OAAO,CAAS;IAChB,OAAO,CAA0B;IAElD,YAAY,MAAmC;QAC7C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,2BAA2B,CAAC;QAC7D,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAOd;QAIC,MAAM,IAAI,GAA4B;YACpC,eAAe,EAAE,KAAK;YACtB,GAAG,OAAO,CAAC,eAAe;YAC1B,KAAK,EAAE,OAAO,CAAC,OAAO;YACtB,KAAK,EAAE,OAAO,CAAC,IAAI;SACpB,CAAC;QAEF,IAAI,OAAO,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;YAC1B,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACtC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC;YAChC,CAAC;iBAAM,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBACpC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;gBAClC,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;oBAChC,IAAI,YAAY,GAAG,EAAE,CAAC;oBACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACtC,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBAChD,CAAC;oBACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;gBACtC,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACzB,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,eAAe,CAAC;QAE3C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;YACvC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,eAAe,EAAE,UAAU,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,iBAAiB,EAAE,SAAS,CAAC,EAAE;gBACrF,GAAG,OAAO,CAAC,OAAO;aACnB;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAC1B,MAAM,EAAE,OAAO,CAAC,WAAW;SAC5B,CAAC,CAAC;QAEH,MAAM,mBAAmB,CAAC,QAAQ,EAAE,WAAW,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAElE,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAA4B,CAAC;QAE7D,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,UAAU;YACtB,SAAS,EAAE,YAAY;SACxB,CAAC;IACJ,CAAC;CACF;AAED,MAAM,UAAU,aAAa,CAAC,SAAsC,EAAE;IACpE,MAAM,QAAQ,GAAG,IAAI,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACnD,OAAO,SAAS,OAAO,CAAC,OAAgB;QACtC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;IACjE,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/mistral/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { SpeechProvider, ResolvedModel } from '../../speech-provider.js';
1
+ import type { ResolvedModel, SpeechProvider } from "../../speech-provider.js";
2
2
  export interface MurfSpeechProviderConfig {
3
3
  apiKey?: string;
4
4
  baseURL?: string;
@@ -9,18 +9,18 @@ export declare class MurfSpeechProvider implements SpeechProvider<string, string
9
9
  readonly defaultModel = "GEN2";
10
10
  readonly models: readonly [{
11
11
  readonly id: "GEN2";
12
+ readonly audioTags: false;
12
13
  readonly languages: readonly ["en", "de", "es", "fr", "zh", "ar", "hi", "bn", "ta", "pt", "it", "ja", "ko", "nl", "pl", "ru", "sv", "tr", "id", "ms", "tl", "cs", "fi", "th", "vi", "da", "no", "ro", "el", "hu", "uk", "sk", "bg"];
13
14
  readonly releaseDate: "2025-01-01";
14
15
  readonly openSource: false;
15
16
  readonly inlineVoiceCloning: false;
16
- readonly zeroDataRetention: false;
17
17
  }, {
18
18
  readonly id: "FALCON";
19
+ readonly audioTags: false;
19
20
  readonly languages: readonly ["en"];
20
21
  readonly releaseDate: "2025-01-01";
21
22
  readonly openSource: false;
22
23
  readonly inlineVoiceCloning: false;
23
- readonly zeroDataRetention: false;
24
24
  }];
25
25
  private readonly apiKey;
26
26
  private readonly baseURL;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/murf/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAG9E,MAAM,WAAW,wBAAwB;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAED,qBAAa,kBAAmB,YAAW,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC;IACvE,QAAQ,CAAC,EAAE,UAAU;IACrB,QAAQ,CAAC,YAAY,UAAU;IAE/B,QAAQ,CAAC,MAAM;;;;;;;;;;;;;;OAGJ;IAEX,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;gBAEtC,MAAM,EAAE,wBAAwB;IAMtC,QAAQ,CAAC,OAAO,EAAE;QACtB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1C,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAClC,GAAG,OAAO,CAAC;QACV,KAAK,EAAE,MAAM,GAAG,UAAU,CAAC;QAC3B,SAAS,EAAE,MAAM,CAAC;QAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC5C,CAAC;CA8CH;AAED,wBAAgB,UAAU,CAAC,MAAM,GAAE,wBAA6B,IAGzC,UAAU,MAAM,KAAG,aAAa,CAAC,MAAM,CAAC,CAM9D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/murf/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE9E,MAAM,WAAW,wBAAwB;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAED,qBAAa,kBAAmB,YAAW,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC;IACvE,QAAQ,CAAC,EAAE,UAAU;IACrB,QAAQ,CAAC,YAAY,UAAU;IAE/B,QAAQ,CAAC,MAAM;;;;;;;;;;;;;;OAmDJ;IAEX,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;gBAEtC,MAAM,EAAE,wBAAwB;IAMtC,QAAQ,CAAC,OAAO,EAAE;QACtB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1C,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAClC,GAAG,OAAO,CAAC;QACV,KAAK,EAAE,MAAM,GAAG,UAAU,CAAC;QAC3B,SAAS,EAAE,MAAM,CAAC;QAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC5C,CAAC;CA8CH;AAED,wBAAgB,UAAU,CAAC,MAAM,GAAE,wBAA6B,IAGzC,UAAU,MAAM,KAAG,aAAa,CAAC,MAAM,CAAC,CAM9D"}