@speech-sdk/core 0.0.1 → 0.0.4
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 +40 -1
- package/dist/audio-tags.d.ts +6 -0
- package/dist/audio-tags.d.ts.map +1 -0
- package/dist/audio-tags.js +17 -0
- package/dist/audio-tags.js.map +1 -0
- package/dist/errors.d.ts +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +5 -5
- package/dist/errors.js.map +1 -1
- package/dist/generate-speech.d.ts +2 -2
- package/dist/generate-speech.d.ts.map +1 -1
- package/dist/generate-speech.js +29 -6
- package/dist/generate-speech.js.map +1 -1
- package/dist/index.d.ts +6 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/provider-utils.d.ts.map +1 -1
- package/dist/provider-utils.js +16 -12
- package/dist/provider-utils.js.map +1 -1
- package/dist/providers/cartesia/index.d.ts +17 -2
- package/dist/providers/cartesia/index.d.ts.map +1 -1
- package/dist/providers/cartesia/index.js +160 -15
- package/dist/providers/cartesia/index.js.map +1 -1
- package/dist/providers/deepgram/index.d.ts +6 -2
- package/dist/providers/deepgram/index.d.ts.map +1 -1
- package/dist/providers/deepgram/index.js +16 -9
- package/dist/providers/deepgram/index.js.map +1 -1
- package/dist/providers/elevenlabs/index.d.ts +22 -1
- package/dist/providers/elevenlabs/index.d.ts.map +1 -1
- package/dist/providers/elevenlabs/index.js +167 -33
- package/dist/providers/elevenlabs/index.js.map +1 -1
- package/dist/providers/fal/index.d.ts +37 -2
- package/dist/providers/fal/index.d.ts.map +1 -1
- package/dist/providers/fal/index.js +54 -13
- package/dist/providers/fal/index.js.map +1 -1
- package/dist/providers/fish-audio/index.d.ts +6 -2
- package/dist/providers/fish-audio/index.d.ts.map +1 -1
- package/dist/providers/fish-audio/index.js +17 -10
- package/dist/providers/fish-audio/index.js.map +1 -1
- package/dist/providers/google/index.d.ts +11 -3
- package/dist/providers/google/index.d.ts.map +1 -1
- package/dist/providers/google/index.js +80 -15
- package/dist/providers/google/index.js.map +1 -1
- package/dist/providers/hume/index.d.ts +10 -2
- package/dist/providers/hume/index.d.ts.map +1 -1
- package/dist/providers/hume/index.js +43 -15
- package/dist/providers/hume/index.js.map +1 -1
- package/dist/providers/mistral/index.d.ts +6 -2
- package/dist/providers/mistral/index.d.ts.map +1 -1
- package/dist/providers/mistral/index.js +33 -16
- package/dist/providers/mistral/index.js.map +1 -1
- package/dist/providers/murf/index.d.ts +10 -2
- package/dist/providers/murf/index.d.ts.map +1 -1
- package/dist/providers/murf/index.js +62 -14
- package/dist/providers/murf/index.js.map +1 -1
- package/dist/providers/openai/index.d.ts +13 -1
- package/dist/providers/openai/index.d.ts.map +1 -1
- package/dist/providers/openai/index.js +99 -18
- package/dist/providers/openai/index.js.map +1 -1
- package/dist/providers/resemble/index.d.ts +6 -2
- package/dist/providers/resemble/index.d.ts.map +1 -1
- package/dist/providers/resemble/index.js +41 -10
- package/dist/providers/resemble/index.js.map +1 -1
- package/dist/providers/unreal-speech/index.d.ts +6 -2
- package/dist/providers/unreal-speech/index.d.ts.map +1 -1
- package/dist/providers/unreal-speech/index.js +20 -13
- package/dist/providers/unreal-speech/index.js.map +1 -1
- package/dist/resolve-provider.d.ts +1 -1
- package/dist/resolve-provider.d.ts.map +1 -1
- package/dist/resolve-provider.js +34 -34
- package/dist/resolve-provider.js.map +1 -1
- package/dist/speech-provider.d.ts +11 -3
- package/dist/speech-provider.d.ts.map +1 -1
- package/dist/speech-result.d.ts +4 -3
- package/dist/speech-result.d.ts.map +1 -1
- package/dist/speech-result.js +9 -7
- package/dist/speech-result.js.map +1 -1
- package/dist/types.d.ts +7 -7
- package/dist/types.d.ts.map +1 -1
- package/package.json +16 -13
- package/dist/providers/elevenlabs/elevenlabs-options.d.ts +0 -2
- package/dist/providers/elevenlabs/elevenlabs-options.d.ts.map +0 -1
- package/dist/providers/elevenlabs/elevenlabs-options.js +0 -2
- package/dist/providers/elevenlabs/elevenlabs-options.js.map +0 -1
- package/dist/providers/elevenlabs/elevenlabs-provider.d.ts +0 -5
- package/dist/providers/elevenlabs/elevenlabs-provider.d.ts.map +0 -1
- package/dist/providers/elevenlabs/elevenlabs-provider.js +0 -11
- package/dist/providers/elevenlabs/elevenlabs-provider.js.map +0 -1
- package/dist/providers/elevenlabs/elevenlabs-speech-model.d.ts +0 -44
- package/dist/providers/elevenlabs/elevenlabs-speech-model.d.ts.map +0 -1
- package/dist/providers/elevenlabs/elevenlabs-speech-model.js +0 -82
- package/dist/providers/elevenlabs/elevenlabs-speech-model.js.map +0 -1
- package/dist/providers/openai/openai-options.d.ts +0 -2
- package/dist/providers/openai/openai-options.d.ts.map +0 -1
- package/dist/providers/openai/openai-options.js +0 -2
- package/dist/providers/openai/openai-options.js.map +0 -1
- package/dist/providers/openai/openai-provider.d.ts +0 -5
- package/dist/providers/openai/openai-provider.d.ts.map +0 -1
- package/dist/providers/openai/openai-provider.js +0 -11
- package/dist/providers/openai/openai-provider.js.map +0 -1
- package/dist/providers/openai/openai-speech-model.d.ts +0 -39
- package/dist/providers/openai/openai-speech-model.d.ts.map +0 -1
- package/dist/providers/openai/openai-speech-model.js +0 -54
- package/dist/providers/openai/openai-speech-model.js.map +0 -1
package/dist/resolve-provider.js
CHANGED
|
@@ -1,47 +1,47 @@
|
|
|
1
|
-
import { SpeechSDKError } from
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import { GoogleSpeechProvider } from
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import { MurfSpeechProvider } from
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
1
|
+
import { SpeechSDKError } from "./errors.js";
|
|
2
|
+
import { CartesiaSpeechProvider } from "./providers/cartesia/index.js";
|
|
3
|
+
import { DeepgramSpeechProvider } from "./providers/deepgram/index.js";
|
|
4
|
+
import { ElevenLabsSpeechProvider } from "./providers/elevenlabs/index.js";
|
|
5
|
+
import { FalSpeechProvider } from "./providers/fal/index.js";
|
|
6
|
+
import { FishAudioSpeechProvider } from "./providers/fish-audio/index.js";
|
|
7
|
+
import { GoogleSpeechProvider } from "./providers/google/index.js";
|
|
8
|
+
import { HumeSpeechProvider } from "./providers/hume/index.js";
|
|
9
|
+
import { MistralSpeechProvider } from "./providers/mistral/index.js";
|
|
10
|
+
import { MurfSpeechProvider } from "./providers/murf/index.js";
|
|
11
|
+
import { OpenAISpeechProvider } from "./providers/openai/index.js";
|
|
12
|
+
import { ResembleSpeechProvider } from "./providers/resemble/index.js";
|
|
13
|
+
import { UnrealSpeechProvider } from "./providers/unreal-speech/index.js";
|
|
14
14
|
function isResolvedModel(model) {
|
|
15
15
|
return (model != null &&
|
|
16
|
-
typeof model ===
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
typeof model === "object" &&
|
|
17
|
+
"provider" in model &&
|
|
18
|
+
"modelId" in model);
|
|
19
19
|
}
|
|
20
20
|
function createBuiltinProvider(name) {
|
|
21
21
|
switch (name) {
|
|
22
|
-
case
|
|
22
|
+
case "openai":
|
|
23
23
|
return new OpenAISpeechProvider({});
|
|
24
|
-
case
|
|
24
|
+
case "elevenlabs":
|
|
25
25
|
return new ElevenLabsSpeechProvider({});
|
|
26
|
-
case
|
|
26
|
+
case "deepgram":
|
|
27
27
|
return new DeepgramSpeechProvider({});
|
|
28
|
-
case
|
|
28
|
+
case "cartesia":
|
|
29
29
|
return new CartesiaSpeechProvider({});
|
|
30
|
-
case
|
|
30
|
+
case "hume":
|
|
31
31
|
return new HumeSpeechProvider({});
|
|
32
|
-
case
|
|
32
|
+
case "google":
|
|
33
33
|
return new GoogleSpeechProvider({});
|
|
34
|
-
case
|
|
34
|
+
case "fish-audio":
|
|
35
35
|
return new FishAudioSpeechProvider({});
|
|
36
|
-
case
|
|
36
|
+
case "unreal-speech":
|
|
37
37
|
return new UnrealSpeechProvider({});
|
|
38
|
-
case
|
|
38
|
+
case "murf":
|
|
39
39
|
return new MurfSpeechProvider({});
|
|
40
|
-
case
|
|
40
|
+
case "resemble":
|
|
41
41
|
return new ResembleSpeechProvider({});
|
|
42
|
-
case
|
|
42
|
+
case "fal-ai":
|
|
43
43
|
return new FalSpeechProvider({});
|
|
44
|
-
case
|
|
44
|
+
case "mistral":
|
|
45
45
|
return new MistralSpeechProvider({});
|
|
46
46
|
default:
|
|
47
47
|
throw new SpeechSDKError(`Unknown provider: ${name}`);
|
|
@@ -51,17 +51,17 @@ export function resolveModel(model) {
|
|
|
51
51
|
if (isResolvedModel(model)) {
|
|
52
52
|
return model;
|
|
53
53
|
}
|
|
54
|
-
const slashIndex = model.indexOf(
|
|
54
|
+
const slashIndex = model.indexOf("/");
|
|
55
55
|
let providerName;
|
|
56
56
|
let modelId;
|
|
57
|
-
if (slashIndex
|
|
58
|
-
providerName = model.slice(0, slashIndex);
|
|
59
|
-
modelId = model.slice(slashIndex + 1);
|
|
60
|
-
}
|
|
61
|
-
else {
|
|
57
|
+
if (slashIndex === -1) {
|
|
62
58
|
providerName = model;
|
|
63
59
|
modelId = undefined;
|
|
64
60
|
}
|
|
61
|
+
else {
|
|
62
|
+
providerName = model.slice(0, slashIndex);
|
|
63
|
+
modelId = model.slice(slashIndex + 1);
|
|
64
|
+
}
|
|
65
65
|
const provider = createBuiltinProvider(providerName);
|
|
66
66
|
return {
|
|
67
67
|
provider,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-provider.js","sourceRoot":"","sources":["../src/resolve-provider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resolve-provider.js","sourceRoot":"","sources":["../src/resolve-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,12 +5,14 @@ export type Voice = string | {
|
|
|
5
5
|
};
|
|
6
6
|
export interface ModelInfo {
|
|
7
7
|
id: string;
|
|
8
|
+
inlineVoiceCloning: boolean;
|
|
8
9
|
languages: readonly string[];
|
|
10
|
+
openSource: boolean;
|
|
11
|
+
releaseDate: string;
|
|
12
|
+
zeroDataRetention: boolean;
|
|
9
13
|
}
|
|
10
14
|
export interface SpeechProvider<TModel extends string = string, TVoice extends Voice = Voice> {
|
|
11
|
-
id: string;
|
|
12
15
|
defaultModel: TModel;
|
|
13
|
-
models: readonly ModelInfo[];
|
|
14
16
|
generate(options: {
|
|
15
17
|
modelId: string;
|
|
16
18
|
text: string;
|
|
@@ -23,9 +25,15 @@ export interface SpeechProvider<TModel extends string = string, TVoice extends V
|
|
|
23
25
|
mediaType: string;
|
|
24
26
|
providerMetadata?: Record<string, unknown>;
|
|
25
27
|
}>;
|
|
28
|
+
id: string;
|
|
29
|
+
models: readonly ModelInfo[];
|
|
30
|
+
processAudioTags?(text: string, modelId: string): {
|
|
31
|
+
text: string;
|
|
32
|
+
warnings: string[];
|
|
33
|
+
};
|
|
26
34
|
}
|
|
27
35
|
export interface ResolvedModel<TVoice extends Voice = Voice> {
|
|
28
|
-
provider: SpeechProvider<string, TVoice>;
|
|
29
36
|
modelId: string;
|
|
37
|
+
provider: SpeechProvider<string, TVoice>;
|
|
30
38
|
}
|
|
31
39
|
//# sourceMappingURL=speech-provider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"speech-provider.d.ts","sourceRoot":"","sources":["../src/speech-provider.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,KAAK,
|
|
1
|
+
{"version":3,"file":"speech-provider.d.ts","sourceRoot":"","sources":["../src/speech-provider.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,GAAG,UAAU,CAAA;CAAE,CAAC;AAE9E,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,kBAAkB,EAAE,OAAO,CAAC;IAC5B,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc,CAC7B,MAAM,SAAS,MAAM,GAAG,MAAM,EAC9B,MAAM,SAAS,KAAK,GAAG,KAAK;IAE5B,YAAY,EAAE,MAAM,CAAC;IAErB,QAAQ,CAAC,OAAO,EAAE;QAChB,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,CAAC;IACH,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,SAAS,SAAS,EAAE,CAAC;IAE7B,gBAAgB,CAAC,CACf,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GACd;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CACzC;AAED,MAAM,WAAW,aAAa,CAAC,MAAM,SAAS,KAAK,GAAG,KAAK;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C"}
|
package/dist/speech-result.d.ts
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
export interface GeneratedAudioFile {
|
|
2
|
-
readonly uint8Array: Uint8Array;
|
|
3
2
|
readonly base64: string;
|
|
4
3
|
readonly mediaType: string;
|
|
4
|
+
readonly uint8Array: Uint8Array;
|
|
5
5
|
}
|
|
6
6
|
export interface SpeechResult {
|
|
7
7
|
readonly audio: GeneratedAudioFile;
|
|
8
8
|
readonly providerMetadata?: Record<string, unknown>;
|
|
9
|
+
readonly warnings?: string[];
|
|
9
10
|
}
|
|
10
11
|
export declare class DefaultGeneratedAudioFile implements GeneratedAudioFile {
|
|
11
12
|
readonly mediaType: string;
|
|
12
|
-
private _data;
|
|
13
|
+
private readonly _data;
|
|
13
14
|
private _uint8Array?;
|
|
14
15
|
private _base64?;
|
|
15
|
-
constructor({ data, mediaType }: {
|
|
16
|
+
constructor({ data, mediaType, }: {
|
|
16
17
|
data: string | Uint8Array;
|
|
17
18
|
mediaType: string;
|
|
18
19
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"speech-result.d.ts","sourceRoot":"","sources":["../src/speech-result.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"speech-result.d.ts","sourceRoot":"","sources":["../src/speech-result.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;CACjC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAC;IACnC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED,qBAAa,yBAA0B,YAAW,kBAAkB;IAClE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAsB;IAC5C,OAAO,CAAC,WAAW,CAAC,CAAa;IACjC,OAAO,CAAC,OAAO,CAAC,CAAS;gBAEb,EACV,IAAI,EACJ,SAAS,GACV,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;IAKnD,IAAI,UAAU,IAAI,UAAU,CAe3B;IAED,IAAI,MAAM,IAAI,MAAM,CAcnB;CACF"}
|
package/dist/speech-result.js
CHANGED
|
@@ -3,13 +3,14 @@ export class DefaultGeneratedAudioFile {
|
|
|
3
3
|
_data;
|
|
4
4
|
_uint8Array;
|
|
5
5
|
_base64;
|
|
6
|
-
constructor({ data, mediaType }) {
|
|
6
|
+
constructor({ data, mediaType, }) {
|
|
7
7
|
this._data = data;
|
|
8
8
|
this.mediaType = mediaType;
|
|
9
9
|
}
|
|
10
10
|
get uint8Array() {
|
|
11
|
-
if (this._uint8Array != null)
|
|
11
|
+
if (this._uint8Array != null) {
|
|
12
12
|
return this._uint8Array;
|
|
13
|
+
}
|
|
13
14
|
if (this._data instanceof Uint8Array) {
|
|
14
15
|
this._uint8Array = this._data;
|
|
15
16
|
}
|
|
@@ -24,15 +25,16 @@ export class DefaultGeneratedAudioFile {
|
|
|
24
25
|
return this._uint8Array;
|
|
25
26
|
}
|
|
26
27
|
get base64() {
|
|
27
|
-
if (this._base64 != null)
|
|
28
|
+
if (this._base64 != null) {
|
|
28
29
|
return this._base64;
|
|
29
|
-
|
|
30
|
+
}
|
|
31
|
+
if (typeof this._data === "string") {
|
|
30
32
|
this._base64 = this._data;
|
|
31
33
|
}
|
|
32
34
|
else {
|
|
33
|
-
let binaryString =
|
|
34
|
-
for (
|
|
35
|
-
binaryString += String.fromCharCode(
|
|
35
|
+
let binaryString = "";
|
|
36
|
+
for (const byte of this._data) {
|
|
37
|
+
binaryString += String.fromCharCode(byte);
|
|
36
38
|
}
|
|
37
39
|
this._base64 = btoa(binaryString);
|
|
38
40
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"speech-result.js","sourceRoot":"","sources":["../src/speech-result.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"speech-result.js","sourceRoot":"","sources":["../src/speech-result.ts"],"names":[],"mappings":"AAYA,MAAM,OAAO,yBAAyB;IAC3B,SAAS,CAAS;IAEV,KAAK,CAAsB;IACpC,WAAW,CAAc;IACzB,OAAO,CAAU;IAEzB,YAAY,EACV,IAAI,EACJ,SAAS,GACwC;QACjD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,IAAI,UAAU;QACZ,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,WAAW,CAAC;QAC1B,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,YAAY,UAAU,EAAE,CAAC;YACrC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7C,KAAK,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACxC,CAAC;YACD,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAC3B,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,IAAI,MAAM;QACR,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,OAAO,CAAC;QACtB,CAAC;QACD,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACnC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,IAAI,YAAY,GAAG,EAAE,CAAC;YACtB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC9B,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAC5C,CAAC;YACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import type { ResolvedModel, Voice } from
|
|
2
|
-
export
|
|
1
|
+
import type { ResolvedModel, Voice } from "./speech-provider.js";
|
|
2
|
+
export interface GenerateSpeechOptions<V extends Voice = Voice> {
|
|
3
|
+
abortSignal?: AbortSignal;
|
|
4
|
+
headers?: Record<string, string>;
|
|
5
|
+
maxRetries?: number;
|
|
3
6
|
model: string | ResolvedModel<V>;
|
|
7
|
+
providerOptions?: Record<string, unknown>;
|
|
4
8
|
text: string;
|
|
5
9
|
voice: V;
|
|
6
|
-
|
|
7
|
-
maxRetries?: number;
|
|
8
|
-
abortSignal?: AbortSignal;
|
|
9
|
-
headers?: Record<string, string>;
|
|
10
|
-
};
|
|
10
|
+
}
|
|
11
11
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAEjE,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAEjE,MAAM,WAAW,qBAAqB,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK;IAC5D,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IACjC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,CAAC,CAAC;CACV"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@speech-sdk/core",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.4",
|
|
4
4
|
"description": "Universal, cross-platform text-to-speech SDK with multi-provider support.",
|
|
5
5
|
"type": "module",
|
|
6
|
-
"packageManager": "pnpm@10.11.1",
|
|
7
6
|
"main": "./dist/index.js",
|
|
8
7
|
"types": "./dist/index.d.ts",
|
|
9
8
|
"exports": {
|
|
@@ -27,7 +26,7 @@
|
|
|
27
26
|
"types": "./dist/providers/cartesia/index.d.ts",
|
|
28
27
|
"default": "./dist/providers/cartesia/index.js"
|
|
29
28
|
},
|
|
30
|
-
"./hume": {
|
|
29
|
+
"./hume": {
|
|
31
30
|
"types": "./dist/providers/hume/index.d.ts",
|
|
32
31
|
"default": "./dist/providers/hume/index.js"
|
|
33
32
|
},
|
|
@@ -35,7 +34,7 @@
|
|
|
35
34
|
"types": "./dist/providers/google/index.d.ts",
|
|
36
35
|
"default": "./dist/providers/google/index.js"
|
|
37
36
|
},
|
|
38
|
-
"./fish-audio": {
|
|
37
|
+
"./fish-audio": {
|
|
39
38
|
"types": "./dist/providers/fish-audio/index.d.ts",
|
|
40
39
|
"default": "./dist/providers/fish-audio/index.js"
|
|
41
40
|
},
|
|
@@ -51,7 +50,7 @@
|
|
|
51
50
|
"types": "./dist/providers/resemble/index.d.ts",
|
|
52
51
|
"default": "./dist/providers/resemble/index.js"
|
|
53
52
|
},
|
|
54
|
-
"./fal-ai": {
|
|
53
|
+
"./fal-ai": {
|
|
55
54
|
"types": "./dist/providers/fal/index.d.ts",
|
|
56
55
|
"default": "./dist/providers/fal/index.js"
|
|
57
56
|
},
|
|
@@ -64,13 +63,6 @@
|
|
|
64
63
|
"dist",
|
|
65
64
|
"README.md"
|
|
66
65
|
],
|
|
67
|
-
"scripts": {
|
|
68
|
-
"build": "tsc",
|
|
69
|
-
"test": "vitest run",
|
|
70
|
-
"test:watch": "vitest",
|
|
71
|
-
"test:e2e": "vitest run --config vitest.config.e2e.ts",
|
|
72
|
-
"typecheck": "tsc --noEmit"
|
|
73
|
-
},
|
|
74
66
|
"keywords": [
|
|
75
67
|
"tts",
|
|
76
68
|
"text-to-speech",
|
|
@@ -88,9 +80,20 @@
|
|
|
88
80
|
"p-retry": "^8.0.0"
|
|
89
81
|
},
|
|
90
82
|
"devDependencies": {
|
|
83
|
+
"@biomejs/biome": "2.4.9",
|
|
91
84
|
"@types/node": "^25.5.0",
|
|
92
85
|
"dotenv": "^17.3.1",
|
|
93
86
|
"typescript": "^5.8.0",
|
|
87
|
+
"ultracite": "7.4.2",
|
|
94
88
|
"vitest": "^3.1.0"
|
|
89
|
+
},
|
|
90
|
+
"scripts": {
|
|
91
|
+
"build": "tsc",
|
|
92
|
+
"test": "vitest run",
|
|
93
|
+
"test:watch": "vitest",
|
|
94
|
+
"test:e2e": "vitest run --config vitest.config.e2e.ts",
|
|
95
|
+
"typecheck": "tsc --noEmit",
|
|
96
|
+
"check": "ultracite check",
|
|
97
|
+
"fix": "ultracite fix"
|
|
95
98
|
}
|
|
96
|
-
}
|
|
99
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"elevenlabs-options.d.ts","sourceRoot":"","sources":["../../../src/providers/elevenlabs/elevenlabs-options.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"elevenlabs-options.js","sourceRoot":"","sources":["../../../src/providers/elevenlabs/elevenlabs-options.ts"],"names":[],"mappings":""}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { type ElevenLabsSpeechProviderConfig } from './elevenlabs-speech-model.js';
|
|
2
|
-
import type { ResolvedModel } from '../../speech-provider.js';
|
|
3
|
-
import type { ElevenLabsSpeechOptions } from './elevenlabs-options.js';
|
|
4
|
-
export declare function createElevenLabs(config?: ElevenLabsSpeechProviderConfig): (modelId?: string) => ResolvedModel<ElevenLabsSpeechOptions>;
|
|
5
|
-
//# sourceMappingURL=elevenlabs-provider.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"elevenlabs-provider.d.ts","sourceRoot":"","sources":["../../../src/providers/elevenlabs/elevenlabs-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,8BAA8B,EACpC,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAEvE,wBAAgB,gBAAgB,CAAC,MAAM,GAAE,8BAAmC,IAIxE,UAAU,MAAM,KACf,aAAa,CAAC,uBAAuB,CAAC,CAM1C"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { ElevenLabsSpeechProvider, } from './elevenlabs-speech-model.js';
|
|
2
|
-
export function createElevenLabs(config = {}) {
|
|
3
|
-
const provider = new ElevenLabsSpeechProvider(config);
|
|
4
|
-
return function elevenlabs(modelId) {
|
|
5
|
-
return {
|
|
6
|
-
provider,
|
|
7
|
-
modelId: modelId ?? provider.defaultModel,
|
|
8
|
-
};
|
|
9
|
-
};
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=elevenlabs-provider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"elevenlabs-provider.js","sourceRoot":"","sources":["../../../src/providers/elevenlabs/elevenlabs-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,GAEzB,MAAM,8BAA8B,CAAC;AAItC,MAAM,UAAU,gBAAgB,CAAC,SAAyC,EAAE;IAC1E,MAAM,QAAQ,GAAG,IAAI,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAEtD,OAAO,SAAS,UAAU,CACxB,OAAgB;QAEhB,OAAO;YACL,QAAQ;YACR,OAAO,EAAE,OAAO,IAAI,QAAQ,CAAC,YAAY;SAC1C,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import type { SpeechProvider } from '../../speech-provider.js';
|
|
2
|
-
import type { ElevenLabsSpeechOptions } from './elevenlabs-options.js';
|
|
3
|
-
export interface ElevenLabsSpeechProviderConfig {
|
|
4
|
-
apiKey?: string;
|
|
5
|
-
baseURL?: string;
|
|
6
|
-
fetch?: typeof globalThis.fetch;
|
|
7
|
-
}
|
|
8
|
-
export declare class ElevenLabsSpeechProvider implements SpeechProvider<string, ElevenLabsSpeechOptions> {
|
|
9
|
-
readonly id = "elevenlabs";
|
|
10
|
-
readonly defaultModel = "eleven_multilingual_v2";
|
|
11
|
-
private static readonly V2_LANGUAGES;
|
|
12
|
-
private static readonly FLASH_V2_5_LANGUAGES;
|
|
13
|
-
private static readonly V3_LANGUAGES;
|
|
14
|
-
readonly models: readonly [{
|
|
15
|
-
readonly id: "eleven_v3";
|
|
16
|
-
readonly languages: readonly ["af", "ar", "hy", "as", "az", "be", "bn", "bs", "bg", "ca", "ceb", "ny", "hr", "cs", "da", "nl", "en", "et", "fil", "fi", "fr", "gl", "ka", "de", "el", "gu", "ha", "he", "hi", "hu", "is", "id", "ga", "it", "ja", "jv", "kn", "kk", "ky", "ko", "lv", "ln", "lt", "lb", "mk", "ms", "ml", "zh", "mr", "ne", "no", "ps", "fa", "pl", "pt", "pa", "ro", "ru", "sr", "sd", "sk", "sl", "so", "es", "sw", "sv", "ta", "te", "th", "tr", "uk", "ur", "vi", "cy"];
|
|
17
|
-
}, {
|
|
18
|
-
readonly id: "eleven_multilingual_v2";
|
|
19
|
-
readonly languages: readonly ["ar", "bg", "cs", "da", "de", "el", "en", "es", "fi", "fil", "fr", "he", "hi", "hr", "id", "it", "ja", "ko", "ms", "nl", "pl", "pt", "ro", "ru", "sk", "sv", "ta", "uk", "zh"];
|
|
20
|
-
}, {
|
|
21
|
-
readonly id: "eleven_flash_v2_5";
|
|
22
|
-
readonly languages: readonly ["ar", "bg", "cs", "da", "de", "el", "en", "es", "fi", "fil", "fr", "he", "hi", "hr", "id", "it", "ja", "ko", "ms", "nl", "pl", "pt", "ro", "ru", "sk", "sv", "ta", "uk", "zh", "hu", "no", "vi"];
|
|
23
|
-
}, {
|
|
24
|
-
readonly id: "eleven_flash_v2";
|
|
25
|
-
readonly languages: readonly ["en"];
|
|
26
|
-
}];
|
|
27
|
-
private readonly apiKey;
|
|
28
|
-
private readonly baseURL;
|
|
29
|
-
private readonly fetchFn;
|
|
30
|
-
constructor(config: ElevenLabsSpeechProviderConfig);
|
|
31
|
-
generate(options: {
|
|
32
|
-
modelId: string;
|
|
33
|
-
text: string;
|
|
34
|
-
voice?: string;
|
|
35
|
-
providerOptions?: ElevenLabsSpeechOptions;
|
|
36
|
-
abortSignal?: AbortSignal;
|
|
37
|
-
headers?: Record<string, string>;
|
|
38
|
-
}): Promise<{
|
|
39
|
-
audio: Uint8Array;
|
|
40
|
-
mediaType: string;
|
|
41
|
-
providerMetadata?: Record<string, unknown>;
|
|
42
|
-
}>;
|
|
43
|
-
}
|
|
44
|
-
//# sourceMappingURL=elevenlabs-speech-model.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"elevenlabs-speech-model.d.ts","sourceRoot":"","sources":["../../../src/providers/elevenlabs/elevenlabs-speech-model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG/D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAEvE,MAAM,WAAW,8BAA8B;IAC7C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAED,qBAAa,wBACX,YAAW,cAAc,CAAC,MAAM,EAAE,uBAAuB,CAAC;IAE1D,QAAQ,CAAC,EAAE,gBAAgB;IAC3B,QAAQ,CAAC,YAAY,4BAA4B;IAEjD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAIzB;IAEX,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAEjC;IAEX,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CASzB;IAEX,QAAQ,CAAC,MAAM;;;;;;;;;;;;OAKJ;IAEX,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;gBAEtC,MAAM,EAAE,8BAA8B;IAM5C,QAAQ,CAAC,OAAO,EAAE;QACtB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,eAAe,CAAC,EAAE,uBAAuB,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;CAkDH"}
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
import { SpeechSDKError } from '../../errors.js';
|
|
2
|
-
import { resolveApiKey, handleErrorResponse } from '../../provider-utils.js';
|
|
3
|
-
export class ElevenLabsSpeechProvider {
|
|
4
|
-
id = 'elevenlabs';
|
|
5
|
-
defaultModel = 'eleven_multilingual_v2';
|
|
6
|
-
static V2_LANGUAGES = [
|
|
7
|
-
'ar', 'bg', 'cs', 'da', 'de', 'el', 'en', 'es', 'fi', 'fil',
|
|
8
|
-
'fr', 'he', 'hi', 'hr', 'id', 'it', 'ja', 'ko', 'ms',
|
|
9
|
-
'nl', 'pl', 'pt', 'ro', 'ru', 'sk', 'sv', 'ta', 'uk', 'zh',
|
|
10
|
-
];
|
|
11
|
-
static FLASH_V2_5_LANGUAGES = [
|
|
12
|
-
...ElevenLabsSpeechProvider.V2_LANGUAGES, 'hu', 'no', 'vi',
|
|
13
|
-
];
|
|
14
|
-
static V3_LANGUAGES = [
|
|
15
|
-
'af', 'ar', 'hy', 'as', 'az', 'be', 'bn', 'bs', 'bg', 'ca',
|
|
16
|
-
'ceb', 'ny', 'hr', 'cs', 'da', 'nl', 'en', 'et', 'fil', 'fi',
|
|
17
|
-
'fr', 'gl', 'ka', 'de', 'el', 'gu', 'ha', 'he', 'hi', 'hu',
|
|
18
|
-
'is', 'id', 'ga', 'it', 'ja', 'jv', 'kn', 'kk', 'ky', 'ko',
|
|
19
|
-
'lv', 'ln', 'lt', 'lb', 'mk', 'ms', 'ml', 'zh', 'mr', 'ne',
|
|
20
|
-
'no', 'ps', 'fa', 'pl', 'pt', 'pa', 'ro', 'ru', 'sr', 'sd',
|
|
21
|
-
'sk', 'sl', 'so', 'es', 'sw', 'sv', 'ta', 'te', 'th', 'tr',
|
|
22
|
-
'uk', 'ur', 'vi', 'cy',
|
|
23
|
-
];
|
|
24
|
-
models = [
|
|
25
|
-
{ id: 'eleven_v3', languages: ElevenLabsSpeechProvider.V3_LANGUAGES },
|
|
26
|
-
{ id: 'eleven_multilingual_v2', languages: ElevenLabsSpeechProvider.V2_LANGUAGES },
|
|
27
|
-
{ id: 'eleven_flash_v2_5', languages: ElevenLabsSpeechProvider.FLASH_V2_5_LANGUAGES },
|
|
28
|
-
{ id: 'eleven_flash_v2', languages: ['en'] },
|
|
29
|
-
];
|
|
30
|
-
apiKey;
|
|
31
|
-
baseURL;
|
|
32
|
-
fetchFn;
|
|
33
|
-
constructor(config) {
|
|
34
|
-
this.apiKey = config.apiKey;
|
|
35
|
-
this.baseURL = config.baseURL ?? 'https://api.elevenlabs.io';
|
|
36
|
-
this.fetchFn = config.fetch ?? globalThis.fetch;
|
|
37
|
-
}
|
|
38
|
-
async generate(options) {
|
|
39
|
-
if (!options.voice) {
|
|
40
|
-
throw new SpeechSDKError('ElevenLabs requires a voice ID. Pass it via the voice option.');
|
|
41
|
-
}
|
|
42
|
-
const providerOptions = options.providerOptions ?? {};
|
|
43
|
-
const { output_format, enable_logging, optimize_streaming_latency, ...bodyOptions } = providerOptions;
|
|
44
|
-
const body = {
|
|
45
|
-
...bodyOptions,
|
|
46
|
-
text: options.text,
|
|
47
|
-
model_id: options.modelId,
|
|
48
|
-
};
|
|
49
|
-
const queryParams = new URLSearchParams();
|
|
50
|
-
if (output_format != null)
|
|
51
|
-
queryParams.set('output_format', String(output_format));
|
|
52
|
-
if (enable_logging != null)
|
|
53
|
-
queryParams.set('enable_logging', String(enable_logging));
|
|
54
|
-
if (optimize_streaming_latency != null)
|
|
55
|
-
queryParams.set('optimize_streaming_latency', String(optimize_streaming_latency));
|
|
56
|
-
let url = `${this.baseURL}/v1/text-to-speech/${options.voice}`;
|
|
57
|
-
const queryString = queryParams.toString();
|
|
58
|
-
if (queryString) {
|
|
59
|
-
url += `?${queryString}`;
|
|
60
|
-
}
|
|
61
|
-
const response = await this.fetchFn(url, {
|
|
62
|
-
method: 'POST',
|
|
63
|
-
headers: {
|
|
64
|
-
'Content-Type': 'application/json',
|
|
65
|
-
'xi-api-key': resolveApiKey(this.apiKey, 'ELEVENLABS_API_KEY', 'ElevenLabs'),
|
|
66
|
-
...options.headers,
|
|
67
|
-
},
|
|
68
|
-
body: JSON.stringify(body),
|
|
69
|
-
signal: options.abortSignal,
|
|
70
|
-
});
|
|
71
|
-
await handleErrorResponse(response, `elevenlabs/${options.modelId}`);
|
|
72
|
-
const arrayBuffer = await response.arrayBuffer();
|
|
73
|
-
const mediaType = response.headers.get('content-type') ?? 'audio/mpeg';
|
|
74
|
-
const requestId = response.headers.get('request-id');
|
|
75
|
-
return {
|
|
76
|
-
audio: new Uint8Array(arrayBuffer),
|
|
77
|
-
mediaType,
|
|
78
|
-
providerMetadata: requestId ? { requestId } : undefined,
|
|
79
|
-
};
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
//# sourceMappingURL=elevenlabs-speech-model.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"elevenlabs-speech-model.js","sourceRoot":"","sources":["../../../src/providers/elevenlabs/elevenlabs-speech-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openai-options.d.ts","sourceRoot":"","sources":["../../../src/providers/openai/openai-options.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openai-options.js","sourceRoot":"","sources":["../../../src/providers/openai/openai-options.ts"],"names":[],"mappings":""}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { type OpenAISpeechProviderConfig } from './openai-speech-model.js';
|
|
2
|
-
import type { ResolvedModel } from '../../speech-provider.js';
|
|
3
|
-
import type { OpenAISpeechOptions } from './openai-options.js';
|
|
4
|
-
export declare function createOpenAI(config?: OpenAISpeechProviderConfig): (modelId?: string) => ResolvedModel<OpenAISpeechOptions>;
|
|
5
|
-
//# sourceMappingURL=openai-provider.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openai-provider.d.ts","sourceRoot":"","sources":["../../../src/providers/openai/openai-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACjG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,wBAAgB,YAAY,CAAC,MAAM,GAAE,0BAA+B,IAG3C,UAAU,MAAM,KAAG,aAAa,CAAC,mBAAmB,CAAC,CAM7E"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { OpenAISpeechProvider } from './openai-speech-model.js';
|
|
2
|
-
export function createOpenAI(config = {}) {
|
|
3
|
-
const provider = new OpenAISpeechProvider(config);
|
|
4
|
-
return function openai(modelId) {
|
|
5
|
-
return {
|
|
6
|
-
provider,
|
|
7
|
-
modelId: modelId ?? provider.defaultModel,
|
|
8
|
-
};
|
|
9
|
-
};
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=openai-provider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openai-provider.js","sourceRoot":"","sources":["../../../src/providers/openai/openai-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAmC,MAAM,0BAA0B,CAAC;AAIjG,MAAM,UAAU,YAAY,CAAC,SAAqC,EAAE;IAClE,MAAM,QAAQ,GAAG,IAAI,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAElD,OAAO,SAAS,MAAM,CAAC,OAAgB;QACrC,OAAO;YACL,QAAQ;YACR,OAAO,EAAE,OAAO,IAAI,QAAQ,CAAC,YAAY;SAC1C,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import type { SpeechProvider } from '../../speech-provider.js';
|
|
2
|
-
import type { OpenAISpeechOptions } from './openai-options.js';
|
|
3
|
-
export interface OpenAISpeechProviderConfig {
|
|
4
|
-
apiKey?: string;
|
|
5
|
-
baseURL?: string;
|
|
6
|
-
fetch?: typeof globalThis.fetch;
|
|
7
|
-
}
|
|
8
|
-
export declare class OpenAISpeechProvider implements SpeechProvider<string, OpenAISpeechOptions> {
|
|
9
|
-
readonly id = "openai";
|
|
10
|
-
readonly defaultModel = "gpt-4o-mini-tts";
|
|
11
|
-
private static readonly LANGUAGES;
|
|
12
|
-
readonly models: readonly [{
|
|
13
|
-
readonly id: "gpt-4o-mini-tts";
|
|
14
|
-
readonly languages: readonly ["af", "ar", "bg", "bn", "bs", "ca", "cs", "cy", "da", "de", "el", "en", "es", "et", "fi", "fr", "gl", "gu", "he", "hi", "hr", "hu", "id", "is", "it", "ja", "jv", "ka", "kk", "km", "kn", "ko", "lo", "lt", "lv", "mk", "ml", "mn", "mr", "ms", "my", "ne", "nl", "no", "pa", "pl", "pt", "ro", "ru", "si", "sk", "sl", "so", "sq", "sr", "su", "sv", "sw", "ta", "te", "th", "tl", "tr", "uk", "ur", "vi", "zh"];
|
|
15
|
-
}, {
|
|
16
|
-
readonly id: "tts-1";
|
|
17
|
-
readonly languages: readonly ["af", "ar", "bg", "bn", "bs", "ca", "cs", "cy", "da", "de", "el", "en", "es", "et", "fi", "fr", "gl", "gu", "he", "hi", "hr", "hu", "id", "is", "it", "ja", "jv", "ka", "kk", "km", "kn", "ko", "lo", "lt", "lv", "mk", "ml", "mn", "mr", "ms", "my", "ne", "nl", "no", "pa", "pl", "pt", "ro", "ru", "si", "sk", "sl", "so", "sq", "sr", "su", "sv", "sw", "ta", "te", "th", "tl", "tr", "uk", "ur", "vi", "zh"];
|
|
18
|
-
}, {
|
|
19
|
-
readonly id: "tts-1-hd";
|
|
20
|
-
readonly languages: readonly ["af", "ar", "bg", "bn", "bs", "ca", "cs", "cy", "da", "de", "el", "en", "es", "et", "fi", "fr", "gl", "gu", "he", "hi", "hr", "hu", "id", "is", "it", "ja", "jv", "ka", "kk", "km", "kn", "ko", "lo", "lt", "lv", "mk", "ml", "mn", "mr", "ms", "my", "ne", "nl", "no", "pa", "pl", "pt", "ro", "ru", "si", "sk", "sl", "so", "sq", "sr", "su", "sv", "sw", "ta", "te", "th", "tl", "tr", "uk", "ur", "vi", "zh"];
|
|
21
|
-
}];
|
|
22
|
-
private readonly apiKey;
|
|
23
|
-
private readonly baseURL;
|
|
24
|
-
private readonly fetchFn;
|
|
25
|
-
constructor(config: OpenAISpeechProviderConfig);
|
|
26
|
-
generate(options: {
|
|
27
|
-
modelId: string;
|
|
28
|
-
text: string;
|
|
29
|
-
voice?: string;
|
|
30
|
-
providerOptions?: OpenAISpeechOptions;
|
|
31
|
-
abortSignal?: AbortSignal;
|
|
32
|
-
headers?: Record<string, string>;
|
|
33
|
-
}): Promise<{
|
|
34
|
-
audio: Uint8Array;
|
|
35
|
-
mediaType: string;
|
|
36
|
-
providerMetadata?: Record<string, unknown>;
|
|
37
|
-
}>;
|
|
38
|
-
}
|
|
39
|
-
//# sourceMappingURL=openai-speech-model.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"openai-speech-model.d.ts","sourceRoot":"","sources":["../../../src/providers/openai/openai-speech-model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,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,mBAAmB,CAAC;IACtF,QAAQ,CAAC,EAAE,YAAY;IACvB,QAAQ,CAAC,YAAY,qBAAqB;IAE1C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAQtB;IAEX,QAAQ,CAAC,MAAM;;;;;;;;;OAIJ;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,mBAAmB,CAAC;QACtC,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;CA+BH"}
|