@picsart/ai-sdk 3.35.6 → 4.0.0

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 (4) hide show
  1. package/README.md +28 -0
  2. package/index.d.ts +292 -163
  3. package/index.js +263 -615
  4. package/package.json +1 -1
package/index.js CHANGED
@@ -575,7 +575,6 @@ function validateDescriptor(key, d, val, required) {
575
575
  const ids = d.options.map(
576
576
  (o) => o.id
577
577
  );
578
- if (ids.length === 0) break;
579
578
  if (!ids.includes(val)) {
580
579
  throw new Error(
581
580
  `"${key}" must be one of: ${ids.join(", ")}`
@@ -583,6 +582,11 @@ function validateDescriptor(key, d, val, required) {
583
582
  }
584
583
  break;
585
584
  }
585
+ case "catalog":
586
+ if (typeof val !== "string") {
587
+ throw new Error(`"${key}" must be a string`);
588
+ }
589
+ break;
586
590
  case "range":
587
591
  if (typeof val !== "number" || Number.isNaN(val)) {
588
592
  throw new Error(`"${key}" must be a number`);
@@ -693,6 +697,13 @@ function descriptorsToSchema(params2) {
693
697
  label: entry.label
694
698
  };
695
699
  break;
700
+ case "catalog":
701
+ schema[key] = {
702
+ type: "string",
703
+ default: d.default,
704
+ label: entry.label
705
+ };
706
+ break;
696
707
  case "file":
697
708
  schema[key] = {
698
709
  type: "file",
@@ -731,6 +742,8 @@ function transferValues(newParams, prev) {
731
742
  }
732
743
  break;
733
744
  }
745
+ case "catalog":
746
+ break;
734
747
  case "range":
735
748
  if (typeof prevVal === "number") {
736
749
  ctx[key] = Math.min(Math.max(prevVal, d.min), d.max);
@@ -1059,7 +1072,9 @@ var p = {
1059
1072
  label: "Voice",
1060
1073
  required: opts?.required,
1061
1074
  catalogOptions: options,
1062
- descriptor: {
1075
+ // Catalog-bound ids are free strings (the live catalog is the source
1076
+ // of truth); only unbound voice lists stay closed enums.
1077
+ descriptor: opts?.catalog ? { kind: "catalog", source: opts.catalog, default: def } : {
1063
1078
  kind: "enum",
1064
1079
  valueType: "string",
1065
1080
  options: options.map((o) => ({ id: o.id, label: o.name ?? o.id })),
@@ -1074,7 +1089,7 @@ var p = {
1074
1089
  label: "Avatar",
1075
1090
  required: opts?.required,
1076
1091
  catalogOptions: options,
1077
- descriptor: {
1092
+ descriptor: opts?.catalog ? { kind: "catalog", source: opts.catalog, default: def } : {
1078
1093
  kind: "enum",
1079
1094
  valueType: "string",
1080
1095
  options: options.map((o) => ({ id: o.id, label: o.name ?? o.id })),
@@ -4640,536 +4655,78 @@ var { MODELS: MODELS14 } = defineModels("seedream", [
4640
4655
  }
4641
4656
  ]);
4642
4657
 
4643
- // src/core/voices.ts
4644
- var DEFAULT_VOICE_ID = "JBFqnCBsd6RMkjVDRZzb";
4645
- var ELEVENLABS_VOICES = [
4646
- {
4647
- id: "JBFqnCBsd6RMkjVDRZzb",
4648
- name: "George",
4649
- description: "Narrate with a warm, resonant British tone.",
4650
- tags: ["Male", "Storytelling", "Podcast", "Middle-aged"],
4651
- provider: "elevenlabs",
4652
- previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/1b2102d1-90d6-4347-b4a7-1560825f3879.mp3"
4653
- },
4654
- {
4655
- id: "EkK5I93UQWFDigLMpZcX",
4656
- name: "James",
4657
- description: "Command attention with a deep, husky American delivery.",
4658
- tags: ["Male", "Storytelling", "Commercials", "Middle-aged"],
4659
- provider: "elevenlabs",
4660
- previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/32bcc811-08a4-41be-86ee-1d8615f65995.mp3"
4661
- },
4662
- {
4663
- id: "RILOU7YmBhvwJGDGjNmP",
4664
- name: "Jane",
4665
- description: "Present with polished, professional precision.",
4666
- tags: ["Female", "Business", "Tutorials", "Middle-aged"],
4667
- provider: "elevenlabs",
4668
- previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/9c0e054b-9c18-41cf-827a-7d9d89ae9116.mp3"
4669
- },
4670
- {
4671
- id: "Z3R5wn05IrDiVCyEkUrK",
4672
- name: "Arabella",
4673
- description: "Captivate with a mysterious, emotive allure.",
4674
- tags: ["Female", "Storytelling", "Entertainment", "Young"],
4675
- provider: "elevenlabs",
4676
- previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/09073341-7d91-45bb-a68d-87330e3dc6e4.mp3"
4677
- },
4678
- {
4679
- id: "NNl6r8mD7vthiJatiJt1",
4680
- name: "Bradford",
4681
- description: "Tell stories with expressive British eloquence.",
4682
- tags: ["Male", "Storytelling", "Entertainment", "Middle-aged"],
4683
- provider: "elevenlabs",
4684
- previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/d3c9792a-aafc-4ee0-ade6-c15422d29ef4.mp3"
4685
- },
4686
- {
4687
- id: "Bj9UqZbhQsanLzgalpEG",
4688
- name: "Austin",
4689
- description: "Deliver with a deep, gravelly Texas charm.",
4690
- tags: ["Male", "Entertainment", "Podcast", "Middle-aged"],
4691
- provider: "elevenlabs",
4692
- previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/a66f1db1-f743-42d9-91bb-507e753218f6.mp3"
4693
- },
4694
- {
4695
- id: "exsUS4vynmxd379XN4yO",
4696
- name: "Blondie",
4697
- description: "Chat with a warm, natural British warmth.",
4698
- tags: ["Female", "Social", "Podcast", "Young"],
4699
- provider: "elevenlabs",
4700
- previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/36920cd4-8e4a-42ea-8514-968a3b19a33d.mp3"
4701
- },
4702
- {
4703
- id: "BpjGufoPiobT79j2vtj4",
4704
- name: "Priyanka",
4705
- description: "Engage with a velvety, laid-back ease.",
4706
- tags: ["Female", "Storytelling", "Health & Wellness", "Young"],
4707
- provider: "elevenlabs",
4708
- previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/1d8f393a-a138-4887-8721-0101f93beb0c.mp3"
4709
- },
4710
- {
4711
- id: "kdmDKE6EkgrWrrykO9Qt",
4712
- name: "Alexandra",
4713
- description: "Connect with youthful, authentic energy.",
4714
- tags: ["Female", "Social", "Tutorials", "Young"],
4715
- provider: "elevenlabs",
4716
- previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/c363b71b-f449-4fe5-be46-84ff4f97f0bb.mp3"
4717
- },
4718
- {
4719
- id: "1SM7GgM6IMuvQlz2BwM3",
4720
- name: "Mark",
4721
- description: "Speak with casual, conversational ease.",
4722
- tags: ["Male", "Social", "Gaming", "Young"],
4723
- provider: "elevenlabs",
4724
- previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/41aab958-b231-4ad7-a7ac-58433738f938.mp3"
4725
- },
4726
- {
4727
- id: "ouL9IsyrSnUkCmfnD02u",
4728
- name: "Grimblewood",
4729
- description: "Enchant with a raspy, whimsical gnome character.",
4730
- tags: ["Male", "Entertainment", "Gaming", "Senior"],
4731
- provider: "elevenlabs",
4732
- previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/68062c53-78f3-427d-ac46-53c55ae8828d.mp3"
4733
- },
4734
- {
4735
- id: "5l5f8iK3YPeGga21rQIX",
4736
- name: "Adeline",
4737
- description: "Narrate with a soft, conversational femininity.",
4738
- tags: ["Female", "Storytelling", "Tutorials", "Young"],
4739
- provider: "elevenlabs",
4740
- previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/7abfb281-9dfe-4998-8ecf-44aa5e6524f1.mp3"
4741
- },
4742
- {
4743
- id: "scOwDtmlUjD3prqpp97I",
4744
- name: "Sam",
4745
- description: "Guide with a warm, clear American clarity.",
4746
- tags: ["Male", "Business", "Tutorials", "Middle-aged"],
4747
- provider: "elevenlabs",
4748
- previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/c8c50145-e42a-4826-8cae-ab72c3cc6533.mp3"
4749
- },
4750
- {
4751
- id: "19STyYD15bswVz51nqLf",
4752
- name: "Samara",
4753
- description: "Impress with elegant, relaxed British poise.",
4754
- tags: ["Female", "Business", "Commercials", "Middle-aged"],
4755
- provider: "elevenlabs",
4756
- previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/6744f189-598c-4074-9f03-8e754c571c0a.mp3"
4757
- },
4758
- {
4759
- id: "BZgkqPqms7Kj9ulSkVzn",
4760
- name: "Eve",
4761
- description: "Brighten with energetic, happy enthusiasm.",
4762
- tags: ["Female", "Social", "Commercials", "Young"],
4763
- provider: "elevenlabs",
4764
- previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/e1b3cd46-fcf2-4be9-904f-90df58002e22.mp3"
4765
- },
4766
- {
4767
- id: "wo6udizrrtpIxWGp2qJk",
4768
- name: "Northern Terry",
4769
- description: "Entertain with an eccentric North English flair.",
4770
- tags: ["Male", "Entertainment", "Gaming", "Middle-aged"],
4771
- provider: "elevenlabs",
4772
- previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/7eaeb45c-6b0a-4d6c-8bcc-0f3499a21e34.mp3"
4773
- },
4774
- {
4775
- id: "yjJ45q8TVCrtMhEKurxY",
4776
- name: "Dr. Von Fusion",
4777
- description: "Energize with quirky, mad-scientist charisma.",
4778
- tags: ["Male", "Entertainment", "Gaming", "Middle-aged"],
4779
- provider: "elevenlabs",
4780
- previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/f3be17ad-371e-4a37-93f9-a8507fceef91.mp3"
4781
- },
4782
- {
4783
- id: "gU0LNdkMOQCOrPrwtbee",
4784
- name: "Football Announcer",
4785
- description: "Electrify with fast-paced sports commentary.",
4786
- tags: ["Male", "Entertainment", "Commercials", "Middle-aged"],
4787
- provider: "elevenlabs",
4788
- previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/a17128f1-c2b5-4587-800b-1240ddec56d4.mp3"
4789
- },
4790
- {
4791
- id: "DGzg6RaUqxGRTHSBjfgF",
4792
- name: "Drill Sergeant",
4793
- description: "Command with harsh, barking authority.",
4794
- tags: ["Male", "Entertainment", "Gaming", "Middle-aged"],
4795
- provider: "elevenlabs",
4796
- previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/85cb2745-ac21-4a9e-ac89-bd54fceae951.mp3"
4797
- },
4798
- {
4799
- id: "x70vRnQBMBu4FAYhjJbO",
4800
- name: "Nathan Fence",
4801
- description: "Broadcast with dynamic, seasoned radio presence.",
4802
- tags: ["Male", "Podcast", "Commercials", "Middle-aged"],
4803
- provider: "elevenlabs",
4804
- previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/a933802c-285e-4c2f-9aba-389ea0fbb0e6.mp3"
4658
+ // src/core/catalogs.ts
4659
+ var metaString = (item, key) => {
4660
+ const v = item.meta?.[key];
4661
+ return typeof v === "string" ? v : void 0;
4662
+ };
4663
+ function toVoiceOption(item, provider) {
4664
+ return {
4665
+ id: item.id,
4666
+ name: item.name,
4667
+ description: item.description ?? "",
4668
+ tags: item.tags,
4669
+ provider,
4670
+ previewUrl: item.preview?.audioUrl
4671
+ };
4672
+ }
4673
+ function toAvatarOption(item, provider) {
4674
+ return {
4675
+ id: item.id,
4676
+ name: item.name,
4677
+ description: item.description ?? "",
4678
+ tags: item.tags,
4679
+ provider,
4680
+ previewImageUrl: item.preview?.imageUrl,
4681
+ previewVideoUrl: item.preview?.videoUrl,
4682
+ gender: metaString(item, "gender"),
4683
+ defaultVoiceId: metaString(item, "defaultVoiceId")
4684
+ };
4685
+ }
4686
+ var registry = /* @__PURE__ */ new Map();
4687
+ var keyOf = (s) => `${s.workflow}\0${s.modelId ?? ""}`;
4688
+ function installHydratedCatalog(source, kind, items, provider, version) {
4689
+ registry.set(keyOf(source), {
4690
+ kind,
4691
+ items,
4692
+ options: items.map((i) => ({ id: i.id, label: i.name })),
4693
+ catalogOptions: kind === "voices" ? items.map((i) => toVoiceOption(i, provider)) : items.map((i) => toAvatarOption(i, provider)),
4694
+ version
4695
+ });
4696
+ }
4697
+ function getHydratedCatalog(source) {
4698
+ return registry.get(keyOf(source));
4699
+ }
4700
+ function getHydratedVoices() {
4701
+ const out = [];
4702
+ for (const c of registry.values()) {
4703
+ if (c.kind === "voices") out.push(...c.catalogOptions);
4805
4704
  }
4806
- ];
4807
- function getVoiceById(id, extra) {
4808
- return [...ELEVENLABS_VOICES, ...OPENAI_VOICES, ...GEMINI_VOICES, ...GROK_VOICES, ...SEEDAUDIO_VOICES, ...extra ?? []].find((v) => v.id === id);
4705
+ return out;
4809
4706
  }
4810
- var OPENAI_DEFAULT_VOICE_ID = "alloy";
4811
- var OPENAI_VOICES = [
4812
- { id: "alloy", name: "Alloy", description: "Versatile and balanced neutral tone.", tags: ["Neutral", "Versatile", "Young"], provider: "openai" },
4813
- { id: "ash", name: "Ash", description: "Warm and conversational delivery.", tags: ["Male", "Conversational", "Warm"], provider: "openai" },
4814
- { id: "ballad", name: "Ballad", description: "Soft and melodic storytelling voice.", tags: ["Male", "Storytelling", "Soft"], provider: "openai" },
4815
- { id: "coral", name: "Coral", description: "Clear, engaging and approachable.", tags: ["Female", "Engaging", "Clear"], provider: "openai" },
4816
- { id: "echo", name: "Echo", description: "Deep and resonant masculine tone.", tags: ["Male", "Deep", "Resonant"], provider: "openai" },
4817
- { id: "fable", name: "Fable", description: "Expressive British-accented storyteller.", tags: ["Male", "Storytelling", "British"], provider: "openai" },
4818
- { id: "nova", name: "Nova", description: "Bright, energetic and youthful.", tags: ["Female", "Energetic", "Young"], provider: "openai" },
4819
- { id: "onyx", name: "Onyx", description: "Deep and authoritative presence.", tags: ["Male", "Authoritative", "Deep"], provider: "openai" },
4820
- { id: "sage", name: "Sage", description: "Calm and wise, measured delivery.", tags: ["Female", "Calm", "Professional"], provider: "openai" },
4821
- { id: "shimmer", name: "Shimmer", description: "Light, pleasant and uplifting.", tags: ["Female", "Pleasant", "Uplifting"], provider: "openai" },
4822
- { id: "verse", name: "Verse", description: "Dynamic and versatile performer.", tags: ["Male", "Dynamic", "Versatile"], provider: "openai" }
4823
- ];
4707
+
4708
+ // src/core/voices.ts
4709
+ var DEFAULT_VOICE_ID = "JBFqnCBsd6RMkjVDRZzb";
4824
4710
  var GEMINI_DEFAULT_VOICE_ID = "Kore";
4825
- var GEMINI_VOICES = [
4826
- { id: "Aoede", name: "Aoede", description: "Bright and clear with musical quality.", tags: ["Female", "Bright", "Musical"], provider: "google", previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/9af546bd-8150-4c00-ac89-31b66344714c.wav" },
4827
- { id: "Charon", name: "Charon", description: "Deep and authoritative guide.", tags: ["Male", "Deep", "Authoritative"], provider: "google", previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/9245d89b-0a89-40f2-966c-65e5f77ad842.wav" },
4828
- { id: "Fenrir", name: "Fenrir", description: "Strong and bold with natural power.", tags: ["Male", "Bold", "Strong"], provider: "google", previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/259161fd-0265-4167-a02d-dc359aaf4009.wav" },
4829
- { id: "Kore", name: "Kore", description: "Warm and natural everyday voice.", tags: ["Female", "Warm", "Natural"], provider: "google", previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/888028e9-23b7-4283-a08a-603f440b15b2.wav" },
4830
- { id: "Leda", name: "Leda", description: "Gentle and soothing feminine tone.", tags: ["Female", "Gentle", "Soothing"], provider: "google", previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/9781ba18-8051-4ba5-abfb-76ada84c05c0.wav" },
4831
- { id: "Orus", name: "Orus", description: "Rich baritone with professional presence.", tags: ["Male", "Professional", "Rich"], provider: "google", previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/501d2f54-afd9-4107-b99a-407216934290.wav" },
4832
- { id: "Puck", name: "Puck", description: "Playful and energetic with character.", tags: ["Male", "Playful", "Energetic"], provider: "google", previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/cf8b7a53-c40f-40cd-aa3e-7ce9c8e812ba.wav" },
4833
- { id: "Zephyr", name: "Zephyr", description: "Light and breezy, conversational style.", tags: ["Female", "Conversational", "Light"], provider: "google", previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/90de2d08-c3d8-4e8e-b657-bb133ac1b627.wav" },
4834
- // Extended voices from Vertex AI
4835
- { id: "Achernar", name: "Achernar", description: "Crisp and commanding stellar voice.", tags: ["Male", "Commanding", "Crisp"], provider: "google", previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/90b17881-6583-47dd-b4d1-a9ec2f2a5a7a.wav" },
4836
- { id: "Achird", name: "Achird", description: "Steady and dependable narrator.", tags: ["Male", "Steady", "Dependable"], provider: "google", previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/2a3c3e8e-bb04-43c9-b6d2-5b82e7b981f4.wav" },
4837
- { id: "Algenib", name: "Algenib", description: "Warm and articulate storyteller.", tags: ["Male", "Warm", "Articulate"], provider: "google", previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/c29be725-f696-4558-ac8a-d6a2d2bcfcda.wav" },
4838
- { id: "Algieba", name: "Algieba", description: "Smooth and engaging presenter.", tags: ["Male", "Smooth", "Engaging"], provider: "google", previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/86556cca-3de8-4cb3-bd89-f5ff6766d190.wav" },
4839
- { id: "Alnilam", name: "Alnilam", description: "Bold and resonant with clarity.", tags: ["Male", "Bold", "Resonant"], provider: "google", previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/8cb284a8-c52b-4e93-9a89-961c36ad1fb5.wav" },
4840
- { id: "Autonoe", name: "Autonoe", description: "Elegant and poised feminine voice.", tags: ["Female", "Elegant", "Poised"], provider: "google", previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/c0a6d1a8-8b3d-411d-98fe-2dac5494cea5.wav" },
4841
- // Callirhoe is listed in Google's voice whitelist but their TTS endpoint
4842
- // deterministically rejects it with INVALID_ARGUMENT — removed until fixed upstream.
4843
- { id: "Despina", name: "Despina", description: "Lively and vibrant with charm.", tags: ["Female", "Lively", "Vibrant"], provider: "google", previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/c5e7f47f-dc98-44b6-87a5-78588b35b022.wav" },
4844
- { id: "Enceladus", name: "Enceladus", description: "Deep and immersive narrator.", tags: ["Male", "Deep", "Immersive"], provider: "google", previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/84a9a79e-9018-4d79-8d49-b73e05681fdc.wav" },
4845
- { id: "Erinome", name: "Erinome", description: "Soft and thoughtful delivery.", tags: ["Female", "Soft", "Thoughtful"], provider: "google", previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/96ac54b0-50d3-4389-a52b-07e7300c9adc.wav" },
4846
- { id: "Gacrux", name: "Gacrux", description: "Precise and professional tone.", tags: ["Male", "Precise", "Professional"], provider: "google", previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/2a179060-3eac-42c2-b239-93aecb6523bf.wav" },
4847
- { id: "Iapetus", name: "Iapetus", description: "Grand and dramatic presence.", tags: ["Male", "Grand", "Dramatic"], provider: "google", previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/f43642c0-b686-41ad-9e81-5895037b21a8.wav" },
4848
- { id: "Laomedeia", name: "Laomedeia", description: "Calm and reassuring guide.", tags: ["Female", "Calm", "Reassuring"], provider: "google", previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/e89fa9fd-41cd-49a4-9200-c4628b532b89.mp3" },
4849
- { id: "Pulcherrima", name: "Pulcherrima", description: "Beautiful and radiant voice.", tags: ["Female", "Beautiful", "Radiant"], provider: "google", previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/14625d6e-5873-4850-9e60-e25fa1acf0de.wav" },
4850
- { id: "Rasalgethi", name: "Rasalgethi", description: "Warm and friendly conversationalist.", tags: ["Male", "Warm", "Friendly"], provider: "google", previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/566c22cc-8085-4d66-a04f-eacda73a6228.wav" },
4851
- { id: "Sadachbia", name: "Sadachbia", description: "Cheerful and upbeat delivery.", tags: ["Male", "Cheerful", "Upbeat"], provider: "google", previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/72233441-d05c-469a-a390-595e5c8cf21d.wav" },
4852
- { id: "Sadaltager", name: "Sadaltager", description: "Confident and balanced narrator.", tags: ["Male", "Confident", "Balanced"], provider: "google", previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/afa6e7c7-f44e-4732-93d0-f2a6f7a34a81.wav" },
4853
- { id: "Schedar", name: "Schedar", description: "Regal and distinguished tone.", tags: ["Male", "Regal", "Distinguished"], provider: "google", previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/9dbaff8e-ed36-4ddb-a61f-bc52296112b2.wav" },
4854
- { id: "Sulafat", name: "Sulafat", description: "Bright and optimistic energy.", tags: ["Female", "Bright", "Optimistic"], provider: "google", previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/df1ff576-904b-49ca-b9d3-949947ca1d89.wav" },
4855
- { id: "Umbriel", name: "Umbriel", description: "Mysterious and intriguing voice.", tags: ["Male", "Mysterious", "Intriguing"], provider: "google", previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/f3b94e1c-9c1c-42d1-9ef7-6b5455df9f01.wav" },
4856
- { id: "Vindemiatrix", name: "Vindemiatrix", description: "Graceful and refined feminine tone.", tags: ["Female", "Graceful", "Refined"], provider: "google", previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/3bb0c1fb-1710-4a78-a16d-dd0553d8fa8e.wav" },
4857
- { id: "Zubenelgenubi", name: "Zubenelgenubi", description: "Unique and distinctive character voice.", tags: ["Male", "Unique", "Distinctive"], provider: "google", previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/dad7c645-0946-4dcc-90be-d5fa46fbc03f.wav" }
4858
- ];
4859
4711
  var DEFAULT_GROK_VOICE_ID = "eve";
4860
- var GROK_VOICES = [
4861
- { id: "eve", name: "Eve", description: "Warm and balanced everyday voice.", tags: ["Female", "Warm", "Balanced"], provider: "grok", previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/4c668ccd-9644-43f9-8df1-a07354a04817.mp3" },
4862
- { id: "ara", name: "Ara", description: "Clear and expressive narrator.", tags: ["Female", "Clear", "Expressive"], provider: "grok", previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/76e3125c-d58e-4578-b410-c1c5b18f3fdf.mp3" },
4863
- { id: "rex", name: "Rex", description: "Bold and assertive with strong presence.", tags: ["Male", "Bold", "Assertive"], provider: "grok", previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/abb44e3c-0a1c-4aae-9414-76152a9f1e66.mp3" },
4864
- { id: "sal", name: "Sal", description: "Smooth and measured conversational tone.", tags: ["Neutral", "Smooth", "Conversational"], provider: "grok", previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/9ee27062-dabc-4460-ae2a-fd877f4c9005.mp3" },
4865
- { id: "leo", name: "Leo", description: "Confident and resonant masculine voice.", tags: ["Male", "Confident", "Resonant"], provider: "grok", previewUrl: "https://cdn-cms-uploads.picsart.com/cms-uploads/be019e3e-b935-42ab-8685-f321a94d42f7.mp3" }
4866
- ];
4867
- var ASYNC_DEFAULT_VOICE_ID = "cca0e076-94b9-4c6d-86b7-546168f11174";
4868
- var ASYNC_VOICES = [
4869
- { id: "cca0e076-94b9-4c6d-86b7-546168f11174", name: "Jennie", description: "A clear and professional female voice with a composed and authoritative tone. She speaks with precise articulation and a steady pace, making complex information easy to understand. Ideal for corporate presentations, educational content, business narration, or explainer videos.", tags: ["Female", "British (UK)", "Conversational AI", "IVR", "Informative/Educational", "Commercial/Advertisement"], provider: "async" },
4870
- { id: "f493c663-b272-493e-8b78-72d2262a2a8d", name: "Stella", description: "Warm, lively female voice with a naturally conversational tone. Sweet and expressive delivery that feels effortless and human, with soft emotional nuance, playful energy, and fluid pacing.", tags: ["Female", "Conversational AI", "Storytelling"], provider: "async" },
4871
- { id: "317bf805-4b42-417b-9474-10807e2f67c9", name: "Max", description: "This is a confident male voice with a clear, smooth, and slightly formal delivery. The tone is informative and reassuring, making it suitable for educational content, corporate presentations, or sophisticated commercial advertisements that aim to build trust and convey expertise.", tags: ["Male", "British (UK)", "Informative/Educational", "Commercial/Advertisement"], provider: "async" },
4872
- { id: "3950360d-4810-4c65-a0b8-eb5b4b3b4231", name: "Hayes", description: "Male voice with a clear, articulate, and steady vocal quality. He speaks with a calm, professional, and informative tone, carrying a neutral North American accent. This voice is ideal for corporate narration, educational content, documentaries, or any material requiring precise and authoritative delivery.", tags: ["Male", "American (US)", "Informative/Educational", "Audiobook", "Podcast"], provider: "async" },
4873
- { id: "a6268eaf-976d-4d44-871d-57e1d58002c7", name: "Elara", description: "This female voice features a clear, bright, and warm vocal quality. She delivers content with a friendly, conversational tone and clear articulation. Ideal for corporate storytelling, informative content, or friendly commercial narrations.", tags: ["Female", "American (US)", "Informative/Educational", "Storytelling", "Commercial/Advertisement"], provider: "async" },
4874
- { id: "84905ece-2420-47b5-b3d6-964e62200c73", name: "Cleo", description: "Warm female voice with a gentle, inviting tone, delivering narration in a smooth, steady pace. This voice is perfect for audiobooks, children's stories, or any content requiring a comforting and engaging storytelling style.", tags: ["Female", "British (UK)", "Audiobook", "Storytelling"], provider: "async" },
4875
- { id: "a44e2f09-6897-4e1e-8573-631207c53f6d", name: "Fisher", description: "This is a warm and clear male voice with a calm, conversational tone. It's well-suited for educational content, corporate presentations, and audiobooks that require an engaging yet authoritative delivery. The speaker's steady pace and balanced intonation make it easy to follow and absorb information.", tags: ["Male", "American (US)", "Informative/Educational", "Audiobook"], provider: "async" },
4876
- { id: "8f7ad606-26df-400a-8336-e7162a977be7", name: "Corin", description: "Professional male voice with a warm vocal quality and an authoritative yet friendly tone. This voice is ideal for corporate presentations, informative content, or commercials that require a trustworthy and engaging delivery.", tags: ["Male", "American (US)", "Informative/Educational", "Commercial/Advertisement", "Conversational AI", "Storytelling"], provider: "async" },
4877
- { id: "c8dab279-6c67-468c-977d-ce4081fa3936", name: "Thaddeus", description: "Clear, well-articulated male voice with a calm and informative tone. The intonation is precise and even, making it ideal for educational content, corporate presentations, or conversational AI that requires a professional and steady delivery.", tags: ["Male", "American (US)", "Informative/Educational", "Conversational AI"], provider: "async" },
4878
- { id: "054c9aed-4786-4fa5-a317-09abd199e21f", name: "Lucina", description: "Clear and smooth female voice with excellent articulation and a calm, engaging tone. Her British accent and steady pace make her ideal for storytelling, audiobooks, and informative narration.", tags: ["Female", "British (UK)", "Audiobook", "Informative/Educational", "Storytelling"], provider: "async" },
4879
- { id: "ef932845-cfe9-4748-a123-454664076938", name: "Acadia", description: "Clear and authoritative female voice with a smooth, energetic delivery. She speaks with a commanding yet reassuring tone, emphasizing key phrases effectively. This voice is ideal for corporate narration, motivational content, or informative commercials that require clear communication and impact.", tags: ["Female", "American (US)", "Commercial/Advertisement", "Informative/Educational", "Motivational"], provider: "async" },
4880
- { id: "cfc8833a-dc45-40e9-9279-57cad23e3c09", name: "Huxley", description: "Clear, well-articulated male voice with a calm and authoritative tone, delivering information with precision. This professional voice is ideal for corporate presentations, educational content, or informative narrations that require a steady and confident delivery.", tags: ["Male", "American (US)", "Informative/Educational", "Commercial/Advertisement", "Audiobook"], provider: "async" },
4881
- { id: "5d20dd0a-a781-43ea-b06c-56892a691715", name: "Winslet", description: "Clear and articulate female voice with a smooth, bright quality. The delivery is calm, professional, and gently encouraging, maintaining a steady, even pace. This voice is well-suited for corporate presentations, educational content, narration, or conversational AI where a composed and clear presence is desired.", tags: ["Female", "British (UK)", "Informative/Educational", "Conversational AI", "Storytelling", "Commercial/Advertisement"], provider: "async" },
4882
- { id: "46ffc709-542b-409c-a8a9-aa5d3e0e1cfc", name: "Jethro", description: "Well-articulated male voice with a clear, authoritative, and steady tone, demonstrating precise pronunciation. This voice is ideal for informative and educational content, corporate presentations, or any narration requiring clarity and a composed delivery.", tags: ["Male", "American (US)", "Informative/Educational", "Narration", "Podcast"], provider: "async" },
4883
- { id: "e5a67eaf-6e5a-4488-9fb9-4806bd7fea54", name: "Elio", description: "This is a confident male voice with a clear, bright tone and an energetic delivery. It's ideal for commercials, advertisements, and informative content where an authoritative yet engaging presence is desired to capture attention.", tags: ["Male", "American (US)", "Commercial/Advertisement", "Informative/Educational"], provider: "async" },
4884
- { id: "c01e9ac9-dc1b-4263-9b70-091f919c05f4", name: "Rupert", description: "Clear and resonant male voice with an articulate British accent. The tone is authoritative and informative, delivered with precision and a measured pace. Ideal for corporate narration, educational content, documentaries, or impactful presentations.", tags: ["Male", "British (UK)", "Informative/Educational", "Storytelling", "Audiobook", "Commercial/Advertisement"], provider: "async" },
4885
- { id: "d7eb91fb-c2a7-45fd-b65a-80b8b499be7f", name: "Eira", description: "Clear and bright female voice with a friendly, conversational tone. Her speech is articulate and has a pleasant, informative cadence, making it easy to follow. This voice is ideal for IVR systems, conversational AI, or customer service applications, as well as commercials requiring a clear and engaging delivery.", tags: ["Female", "American (US)", "Conversational AI", "IVR", "Commercial/Advertisement", "Informative/Educational"], provider: "async" },
4886
- { id: "3f1e185f-6e91-4253-b94a-d8b53f6214be", name: "Nyra", description: "Crisp and highly articulate, this female voice delivers information with bright precision. Her neutral American accent and energetic pacing make complex concepts feel approachable and easy to follow. She shines in financial explainers, e-learning modules, and any content requiring unwavering clarity and engagement.", tags: ["Female", "American (US)", "Informative/Educational", "Commercial/Advertisement", "Podcast"], provider: "async" },
4887
- { id: "8288f28a-a3f4-4792-a26e-d762fc2263b9", name: "Arian", description: "A voice of thoughtful authority, this male speaker brings clarity to complex subjects with a mid-range warmth that feels both knowledgeable and approachable. His articulate, measured delivery is like a guiding hand through new information, perfect for someone explaining big ideas. This voice excels in educational narration, science documentaries, and explainer videos that need a trusted guide.", tags: ["Male", "American (US)", "Informative/Educational", "Audiobook", "Podcast", "Storytelling"], provider: "async" },
4888
- { id: "854eef1c-9aae-41ae-8849-2a32b9b349bb", name: "Lily", description: "Unveiling facts with crisp precision, this female voice carries a bright, almost clinical clarity. Her Standard British delivery is meticulously articulated, making complex information feel effortlessly digestible. She excels in educational narration, corporate explainers, and any scenario requiring a trustworthy, authoritative, yet engaging guide.", tags: ["Female", "British (UK)", "Informative/Educational", "Podcast", "Conversational AI"], provider: "async" },
4889
- { id: "a5e830d5-e543-4250-9724-a24c452fa248", name: "Pierce", description: "Delivering with dynamic energy, this resonant male voice carries a powerful, almost theatrical presence that grabs attention. His crisp articulation and rhythmic emphasis imbue each statement with a sense of urgency, akin to a major announcement. This commanding style is tailor-made for high-impact commercials, movie trailers, and promotional content designed for immediate impact.", tags: ["Male", "American (US)", "Commercial/Advertisement", "Movie trailer", "Motivational"], provider: "async" },
4890
- { id: "15a92057-54a7-4bb8-979c-38f44581fb8c", name: "Kaela", description: "With a crisp, bright clarity that cuts through like morning light, this voice delivers information with an engaging, nimble precision. She sounds like a knowledgeable friend guiding you through a process, infusing every word with persuasive energy. This energetic yet clear style shines in explainer videos, product demonstrations, and engaging e-learning modules.", tags: ["Female", "American (US)", "Informative/Educational", "Commercial/Advertisement", "Conversational AI"], provider: "async" },
4891
- { id: "f57e9942-4d9e-4b05-8a0c-585359eef0dd", name: "Elowen", description: "Her voice rings with a bright, articulate clarity, delivering each word with a helpful and assured tone. It carries the approachable warmth of a trusted advisor, blending professional precision with an inviting, conversational flow. She brings life to IVR systems, customer support, and informative e-learning modules where trustworthiness and ease of understanding are paramount.", tags: ["Female", "American (US)", "Conversational AI", "IVR", "Informative/Educational"], provider: "async" },
4892
- { id: "965d9bd7-9e95-4cdd-a798-80a5233705bd", name: "Freya", description: "Sparkling with clarity and a confident British lilt, this female voice delivers information with approachable authority. Her precise articulation and bright, engaging tone make complex topics easy to digest, like a trusted guide leading the way. This voice shines in corporate presentations, e-learning, and explainer videos.", tags: ["Female", "British (UK)", "Informative/Educational", "Storytelling"], provider: "async" },
4893
- { id: "66254e55-d74a-4b23-a12a-cccdd14a25a0", name: "Lenny", description: "Projecting an air of measured authority, this male voice articulates with crisp, British precision, maintaining a consistent, informative tone. Each word is delivered with the clarity of a well-rehearsed lecture, ensuring understanding without losing pace. This voice is built for corporate training, detailed explainers, and any scenario where precise, factual delivery is paramount.", tags: ["Male", "British (UK)", "Informative/Educational"], provider: "async" },
4894
- { id: "8bab777e-1a1e-43d8-915d-eaafcb446e9d", name: "Alessa", description: "Like a seasoned presenter, this female voice maintains an unflappable composure, delivering information with a smooth, unwavering clarity. Her even-keeled tone and neutral American accent exude absolute reliability, making her built for corporate explainers, detailed technical presentations, and dependable IVR systems.", tags: ["Female", "American (US)", "Informative/Educational", "IVR", "Conversational AI"], provider: "async" },
4895
- { id: "2d83227c-1abf-47c0-902d-f82448bdc598", name: "Pandora", description: "This female voice resonates with an impressive clarity, her bright and steady tone delivering every word with unwavering precision. Her General American English is impeccably enunciated, bringing to mind a highly capable instructor. She's built for e-learning modules, corporate training, and technical narrations where absolute accuracy and authority are essential.", tags: ["Female", "American (US)", "Informative/Educational", "Storytelling"], provider: "async" },
4896
- { id: "4a7876f0-5fb4-4ed8-a104-890bc30d9832", name: "Fia", description: "Whispering secrets and weaving tales, this female voice carries a delicate, breathy quality that instantly evokes mystery. Her delivery is hushed and reflective, building a quiet suspense that beckons listeners closer. She shines in dark fantasy audiobooks, narrative podcasts with an eerie twist, and introspective storytelling.", tags: ["Female", "American (US)", "Audiobook", "Storytelling", "Podcast"], provider: "async" },
4897
- { id: "f7f4fee8-845b-49d2-be7e-6ff7c8706b55", name: "Abbott", description: "Gravitas pours from this male voice, delivered with a resonant British clarity that lends authority to every word. There's a measured, almost theatrical precision to his intonation, evoking a sense of profound discovery or serious exposition. This voice brings an impactful presence to documentaries, scientific narration, and high-stakes corporate messaging.", tags: ["Male", "British (UK)", "Informative/Educational", "Storytelling", "Audiobook"], provider: "async" },
4898
- { id: "b355a1d2-f989-4e62-a997-5de0bb2aa841", name: "Kael", description: "This male voice delivers complex information with surgical precision and unwavering clarity. His neutral American accent and slightly accelerated, yet perfectly articulated pace makes it feel like an authoritative lecture, ensuring every technical detail is heard. Such a precise, knowledge-driven delivery shines in scientific explainers, e-learning modules, and corporate training scenarios.", tags: ["Male", "American (US)", "Informative/Educational"], provider: "async" },
4899
- { id: "ee89b03c-5275-488a-b5d2-ca5ca364e857", name: "Orla", description: "Radiant and articulate, this female voice carries a bright, confident tone with a precise British accent. She delivers information with an engaging crispness, like a polished keynote speaker, bringing clarity and authority to corporate presentations, detailed explainers, and brand narratives.", tags: ["Female", "British (UK)", "Informative/Educational", "Commercial/Advertisement", "Podcast"], provider: "async" },
4900
- { id: "fb9cc041-75e5-4ac5-ae7f-c763f1e54797", name: "Sable", description: "Hear a voice with the dependable clarity of a seasoned guide, each word precisely delivered yet flowing with an approachable warmth. He conveys information with an earnest, engaging rhythm, making him a compelling presence in nature documentaries, property showcases, and any narrative that benefits from a reassuring, knowledgeable delivery.", tags: ["Male", "American (US)", "Informative/Educational", "Storytelling", "Commercial/Advertisement"], provider: "async" },
4901
- { id: "c81384a9-3dce-48d2-bb5b-b0875f2db37e", name: "Marnie", description: "Radiating with bright energy and a crisp British delivery, this female voice engages listeners with a confident, conversational flow. Her articulate and upbeat style brings life to product showcases and contemporary brand advertisements, particularly those requiring a relatable, persuasive touch.", tags: ["Female", "British (UK)", "Commercial/Advertisement", "Informative/Educational"], provider: "async" },
4902
- { id: "9e5001fa-5367-4f6d-a079-6bfc0ddbff69", name: "Sera", description: "Bright, almost crystalline clarity defines this voice, articulating every word with the welcoming precision of an advanced digital interface. She guides listeners through tasks and information with an unwavering, upbeat consistency. This presence shines in sophisticated IVR, user onboarding, or conversational AI, where a reassuringly efficient presence is key.", tags: ["Female", "American (US)", "IVR", "Conversational AI", "Informative/Educational"], provider: "async" },
4903
- { id: "17486b3b-2ffb-43e7-9d81-3ed3d147a497", name: "Virel", description: "With an unwavering precision, this voice delivers each word with crisp clarity and an authoritative, yet controlled, power. She commands attention like a seasoned leader; a delivery built for high-stakes corporate communications, technical explainers, and critical defense briefings.", tags: ["Female", "American (US)", "Informative/Educational", "IVR", "Conversational AI"], provider: "async" },
4904
- { id: "44523faf-3c13-469e-961e-eb7c5496cb90", name: "Liora", description: "This voice feels like a well-organized thought, delivering information with an articulate, almost crisp precision. Her tone is clear and consistently steady, making complex instructions sound effortlessly manageable. It's a voice perfectly built for guiding users through processes, making it a standout for IVR systems, e-learning modules, and product tutorials.", tags: ["Female", "American (US)", "IVR", "Informative/Educational", "Conversational AI"], provider: "async" },
4905
- { id: "350bf05c-7858-49c1-859e-ef1e657d43f2", name: "Riven", description: "Bright, articulate British accent defines this male voice, carrying a tone that's both warmly informative and efficiently engaging. His delivery feels like a trusted guide, calmly navigating listeners through information with a subtle, reassuring cadence. This makes him an excellent fit for IVR systems, e-learning content, and customer service platforms that prioritize clarity and approachability.", tags: ["Male", "British (UK)", "IVR", "Informative/Educational", "Conversational AI"], provider: "async" },
4906
- { id: "8788ac4f-2156-40ce-8030-7a9a0a9b9161", name: "Elys", description: "Her voice has the crystalline clarity of a well-presented solution, with a bright, articulate delivery that feels both professional and approachable. There's an understated energy in her precise yet flowing speech, as if she's confidently simplifying complex information for you. She brings life to corporate explainers, e-learning modules, and any narrative requiring a trustworthy, engaging guide.", tags: ["Female", "American (US)", "Informative/Educational", "Commercial/Advertisement", "Conversational AI"], provider: "async" },
4907
- { id: "348aff4f-dff7-4871-81d5-fc31c3d90ef6", name: "Dreena", description: "Her voice cuts through with a crisp, no-nonsense clarity, commanding attention with its precise articulation. She speaks with the firm confidence of an expert, making complex instructions sound effortlessly simple. This voice brings life to product demonstrations, corporate training, and persuasive marketing content.", tags: ["Female", "American (US)", "Commercial/Advertisement", "Informative/Educational"], provider: "async" },
4908
- { id: "b976d8b2-e1f8-4c22-b6ba-87ce392f0f01", name: "Rhea", description: "Brimming with the bright, crisp energy of a fresh morning, this voice articulates information with an upbeat, professional cadence. Every word lands with precise clarity, carrying an unflagging helpfulness that feels both organized and inviting. It\u2019s built for IVR systems, instructional narrations, and any setting requiring direct, confident communication.", tags: ["Female", "American (US)", "IVR", "Informative/Educational", "Commercial/Advertisement"], provider: "async" },
4909
- { id: "0aef6559-9098-4860-8224-13e038ab3aef", name: "Vela", description: "Sparkling clarity defines this voice, delivering information with an engaging, rapid-fire precision. There's an energetic, yet reassuring presence that guides listeners through details with unwavering confidence and a forward-moving pace. This vocal character is built for IVR systems, fast-paced explainers, and any scenario demanding clear, efficient, and engaging instruction.", tags: ["Female", "American (US)", "IVR", "Informative/Educational", "Conversational AI"], provider: "async" },
4910
- { id: "1e5d72bd-4a36-4abe-9b57-15dfc2b3841c", name: "Nymera", description: "Her voice has an invigorating snap, cutting through with bright clarity and an articulate, confident pace. She speaks with a persuasive energy, each word landing with an almost motivational zeal. This delivery brings life to fast-paced commercials, energetic product explainers, and engaging marketing campaigns.", tags: ["Female", "American (US)", "Commercial/Advertisement", "Informative/Educational", "Motivational"], provider: "async" },
4911
- { id: "20180bd3-4f7a-4d83-9599-9a40c282ef04", name: "Isolde", description: "Like a well-lit path on a clear day, this voice navigates information with bright articulation and a reassuring cadence. There\u2019s a pleasant, efficient energy to her delivery, instantly conveying competence and approachability. She shines in customer service AI, IVR prompts, and straightforward e-learning.", tags: ["Female", "American (US)", "Conversational AI", "Informative/Educational", "IVR"], provider: "async" },
4912
- { id: "66318ebc-62a9-437a-989a-9bd148ec829a", name: "Lirien", description: "This voice feels like a helpful virtual assistant: bright, articulate, and always a step ahead. Her tone is clear and consistently encouraging, with a friendly yet informative lilt that makes complex instructions easy to follow. She is designed for interactive guides, conversational AI, and e-learning platforms where clarity and approachability are paramount.", tags: ["Female", "American (US)", "Conversational AI", "Informative/Educational"], provider: "async" },
4913
- { id: "dfa6d420-4742-452f-b2fb-5d7ba0c3852e", name: "Zella", description: "With a bright, no-nonsense delivery, this voice cuts through like a clear morning announcement, making complex information instantly digestible. Her crisp articulation and confident, slightly rapid pace bring a decisive authority to corporate presentations, explainer videos, or any content requiring precise, unyielding clarity.", tags: ["Female", "American (US)", "Informative/Educational", "Commercial/Advertisement", "Newscasting"], provider: "async" },
4914
- { id: "9e9a769b-a283-4b03-93a5-bee4a5bd62bc", name: "Avenna", description: "Her voice carries a polished, articulate clarity, like a trusted guide leading you through intricate details. This speaker's precise British delivery, with its measured pace and confident intonation, projects an assured authority that feels both approachable and highly informed. She excels in corporate training, complex explainers, and any scenario where clear, convincing exposition is paramount.", tags: ["Female", "British (UK)", "Informative/Educational", "Commercial/Advertisement"], provider: "async" },
4915
- { id: "2808aed4-85d9-4b61-87d9-daefdaad29af", name: "Mirelle", description: "A voice like a refreshing glass of water: crisp, clear, and utterly revitalizing. She offers a naturally upbeat and helpful tone, with a slight, friendly lilt that makes every instruction feel like a pleasant conversation. This vibrant delivery shines in conversational AI, IVR systems, and interactive e-learning.", tags: ["Female", "American (US)", "Conversational AI", "IVR", "Informative/Educational"], provider: "async" },
4916
- { id: "d8acc796-5d2c-475c-ae8e-2f1c8158490c", name: "Calia", description: "Articulate British female voice that projects authority with a polished, measured tone. Her delivery maintains a professional distance, yet carries a subtle underlying warmth, making complex information accessible. She's built for corporate explainers, medical narrations, and educational content where clarity and gravitas are paramount.", tags: ["Female", "British (UK)", "Informative/Educational", "Newscasting"], provider: "async" },
4917
- { id: "059fee9c-51a5-4db9-8c8c-1ff1ede29cf1", name: "Lunea", description: "A British voice that resonates with unwavering professionalism, her delivery is both clear and deeply reassuring. She speaks with a composed precision, making complex information feel effortlessly digestible. This vocal presence is built for corporate explainers, high-stakes informational audio, and sophisticated IVR systems.", tags: ["Female", "British (UK)", "Informative/Educational", "Storytelling"], provider: "async" },
4918
- { id: "6d891f84-452e-4412-a72a-f00eea0f1fd7", name: "Lucan", description: "With a confident, up-tempo delivery, this male voice cuts through the noise like a well-oiled presentation. He articulates complex information with energetic precision, making it immediately digestible and persuasive. This commanding vocal presence shines in product demonstrations, corporate training, and fast-paced advertisements for innovative solutions.", tags: ["Male", "American (US)", "Commercial/Advertisement", "Informative/Educational"], provider: "async" },
4919
- { id: "6112718a-871e-46f6-abb3-d0cdd1f4368a", name: "Tarian", description: "With a sparkling clarity and an effortlessly articulate delivery, this voice possesses a guiding, upbeat energy that makes complex information feel easily digestible. He speaks with the approachable confidence of a favorite teacher, shining in educational content, how-to videos, and engaging explainer narrations.", tags: ["Male", "American (US)", "Informative/Educational", "Podcast", "Conversational AI"], provider: "async" },
4920
- { id: "544ba1a4-4a04-4b93-9aaf-fadb09fed104", name: "Arlo", description: "Crisp and unwavering, this male voice delivers each phrase with the cool precision of a finely tuned machine. It guides listeners through information with unshakeable, programmed clarity, at home in complex IVR systems, technical support prompts, or any application requiring absolute instructional directness.", tags: ["Male", "American (US)", "IVR", "Informative/Educational"], provider: "async" },
4921
- { id: "9f5d9d57-b7bb-4ee3-b627-d7402ed00d15", name: "Jovan", description: "This voice bounces with a bright, friendly energy, like a morning radio show host sharing interesting tidbits. His delivery is consistently clear and engaging, marked by an upbeat intonation that makes even simple information feel lively. He brings a welcoming, enthusiastic presence to narrative podcasts, short-form explainers, and conversational AI interfaces.", tags: ["Male", "American (US)", "Podcast", "Storytelling", "Informative/Educational", "Conversational AI"], provider: "async" },
4922
- { id: "721d6b30-7601-4643-9447-6de1be2bd92e", name: "Neron", description: "A voice that projects confident ease, cutting through the noise with approachable clarity and a natural, engaging rhythm. He carries an articulate authority, yet remains conversational and relatable, like a trusted professional sharing insights. This voice shines in corporate explainers, impactful commercials, and any project needing a persuasive, yet genuine delivery.", tags: ["Male", "American (US)", "Commercial/Advertisement", "Informative/Educational", "Conversational AI"], provider: "async" },
4923
- { id: "f161bd60-c617-44b0-8275-7f879c96e86c", name: "Ziven", description: "Unpacking information with a precise, yet friendly earnestness, this voice possesses a clear, resonant quality that cuts through distractions. He speaks with an understated authority, making even technical details sound relatable and important. It shines in product demonstrations, e-learning courses, and persuasive marketing content that seeks to build genuine consumer trust.", tags: ["Male", "American (US)", "Informative/Educational", "Commercial/Advertisement", "Podcast"], provider: "async" },
4924
- { id: "610df5e1-2fa1-42e8-8dcd-988d2ec2d8f3", name: "Dax", description: "This voice carries a polished, business-like resonance, delivering information with crisp clarity and a confident, forward-driving energy. There\u2019s an undeniable competence in his delivery, making complex topics feel accessible and important; it shines in corporate presentations, informative explainers, and any scenario demanding a direct, authoritative presence.", tags: ["Male", "American (US)", "Informative/Educational", "Commercial/Advertisement", "Podcast"], provider: "async" },
4925
- { id: "3f38104f-9327-4554-873d-7f092caf1256", name: "Orien", description: "A voice built for clarity, this male speaker delivers information with crisp precision and a direct, confident cadence. He sounds like a seasoned guide navigating complex data, making him a natural fit for technical explainers, corporate training, and informative AI interactions.", tags: ["Male", "American (US)", "Informative/Educational", "Conversational AI", "Podcast"], provider: "async" },
4926
- { id: "07c10ae2-0007-4551-841d-f8dcbee53433", name: "Lior", description: "This voice cuts through the noise with a crisp, assertive clarity, driving information forward with energetic confidence. He sounds like a seasoned presenter equally at home narrating an action-packed game trailer or explaining complex concepts with compelling conviction. Its dynamic delivery brings life to commercials, corporate presentations, and fast-paced e-learning modules.", tags: ["Male", "American (US)", "Commercial/Advertisement", "Informative/Educational", "Motivational"], provider: "async" },
4927
- { id: "5f41badd-5f53-4460-a5b2-63dda5503490", name: "Eryx", description: "An effortlessly clean voice with an upbeat, articulate delivery that commands attention without being forceful. He has a precise rhythm and consistent energy, making complex information sound clear and engaging. This voice is built for fast-paced commercials, product explainers, and corporate presentations that need to captivate.", tags: ["Male", "American (US)", "Commercial/Advertisement", "Informative/Educational"], provider: "async" },
4928
- { id: "a8915cb1-a587-4313-841a-ddc74ff17050", name: "Tyren", description: "There's an unyielding clarity to this voice, a focused energy in its mid-range delivery that makes complex information feel effortlessly digestible. He moves through sentences with the brisk, confident pace of a well-prepared keynote speaker. This direct, articulate style shines in corporate explainers, tech demos, and any informative content demanding precision and professionalism.", tags: ["Male", "American (US)", "Informative/Educational", "Commercial/Advertisement", "Conversational AI"], provider: "async" },
4929
- { id: "3010fa3f-897a-41e7-a426-a06f29f61f78", name: "Nox", description: "This voice delivers information with a crisp, energetic forward momentum, each word articulated clearly and precisely. He possesses a confident, almost assertive tone, like a thought leader presenting new ideas, making him compelling for tech explainers, business presentations, or any content requiring a dynamic, authoritative delivery.", tags: ["Male", "American (US)", "Informative/Educational", "Commercial/Advertisement", "Podcast"], provider: "async" },
4930
- { id: "8abd608c-b8d3-4193-8d54-9976911a337c", name: "Elric", description: "There's an inviting warmth in this male voice, with a grounded clarity that speaks to genuine experience. His delivery feels like a trusted friend sharing insights, marked by an articulate, unforced rhythm. This voice shines in narrative podcasts, thoughtful documentaries, and any conversational AI needing a touch of human relatability.", tags: ["Male", "American (US)", "Podcast", "Storytelling", "Informative/Educational", "Conversational AI", "Commercial/Advertisement"], provider: "async" },
4931
- { id: "43064fb0-6723-4f2c-a311-eaf6a5d2f0e5", name: "Varian", description: "This voice resonates with a profound, almost professorial authority, each word delivered with the steady weight of considered knowledge. He possesses an unhurried cadence that guides listeners through intricate details, like an expert lecturer unveiling a hidden truth. It brings an undeniable gravitas to long-form documentaries, complex educational modules, and high-stakes corporate narration.", tags: ["Male", "American (US)", "Informative/Educational", "Storytelling", "Commercial/Advertisement", "Audiobook"], provider: "async" },
4932
- { id: "adf91049-3cab-4e62-b40c-be00fe34e0e6", name: "Zoran", description: "With a bright, forward projection, this voice commands attention through its impeccable clarity and precise articulation, effortlessly conveying complex information or dramatic narrative. There's a dynamic energy that feels both assured and engaging, like a seasoned presenter guiding you through important concepts. It finds a natural home in corporate training, high-energy commercials, and detailed explainer videos.", tags: ["Male", "American (US)", "Commercial/Advertisement", "Informative/Educational", "Podcast"], provider: "async" },
4933
- { id: "04da033a-8919-4553-8fc5-eb6869e0c0e1", name: "Miro", description: "With a textured resonance that suggests both wisdom and approachability, this voice delivers each phrase with earnest conviction. He sounds like a grounded mentor, guiding listeners through complex information with steady assurance. This vocal character shines in public service announcements, documentary narration, and corporate explainers demanding unwavering credibility.", tags: ["Male", "American (US)", "Informative/Educational", "Commercial/Advertisement", "Storytelling"], provider: "async" },
4934
- { id: "9f2e03d7-714d-48a5-a0e7-58c2b7efad23", name: "Dalen", description: "This voice possesses a grounded, articulate clarity, delivering each phrase with a steady, reassuring conviction. He speaks with the approachable authority of an experienced guide, making complex information digestible and trustworthy, particularly compelling for informative explainers, corporate training, and persuasive presentations.", tags: ["Male", "American (US)", "Informative/Educational", "Commercial/Advertisement", "Motivational"], provider: "async" },
4935
- { id: "c1820aa0-467e-4b13-8f73-418f950dba51", name: "Ronix", description: "With a voice like polished oak, this male speaker presents information with unwavering clarity and an assured, steady rhythm. He sounds like a seasoned guide, meticulously leading listeners through complex topics without a hint of rush. This voice brings life to nature documentaries, educational modules, and serious corporate narrations.", tags: ["Male", "American (US)", "Informative/Educational", "Storytelling", "Podcast", "Audiobook"], provider: "async" },
4936
- { id: "befbed31-f461-4bdc-8900-fe786fbeffc3", name: "Jarek", description: "With the steady composure of a seasoned chronicler, this male voice delivers information with crisp, unhurried articulation and an inherently factual tone. Each word is placed with purpose, creating a credible and consistent sound that cuts through noise. He brings history, scientific explanations, and detailed reports to life in documentaries, e-learning platforms, and corporate informational videos.", tags: ["Male", "American (US)", "Informative/Educational", "Storytelling", "Podcast", "Audiobook"], provider: "async" },
4937
- { id: "d7979182-36b7-4ae5-8284-1962050da404", name: "Nyxie", description: "With the polished precision of a BBC newsreader, this British female voice articulates every word with clear, confident authority, hinting at deep subject matter expertise. Her measured cadence and informative tone shine in educational modules, medical explainers, and any scenario demanding factual accuracy and a reassuring presence.", tags: ["Female", "British (UK)", "Informative/Educational", "Audiobook", "Podcast"], provider: "async" },
4938
- { id: "0e8463d7-5e80-47bf-b900-3bbf4e3e564a", name: "Soren", description: "Warm, friendly, and naturally conversational, it delivers messages with a relaxed charm that never sounds forced or overly polished. Its smooth, engaging tone is perfect for commercials, brand campaigns, product promotions, and everyday customer communication, creating an authentic connection that feels both trustworthy and relatable.", tags: ["Male", "American (US)", "Commercial/Advertisement"], provider: "async" },
4939
- { id: "b0641d1a-e342-41d0-8a56-63781d487ca3", name: "Viona", description: "A luminous female voice delivers information with unshakeable clarity and a steady, reassuring cadence. Her standard American English articulation is crisp, making complex topics easy to follow, and a subtle warmth in her tone fosters trust without being overly intimate. This voice shines in e-learning modules, explainer videos, and any content where confident, reliable instruction is paramount.", tags: ["Female", "American (US)", "Informative/Educational", "Podcast"], provider: "async" },
4940
- { id: "34123cc6-9377-4a13-8b4c-ed274cbe317a", name: "Selene", description: "Crisp and helpful, this female voice carries a bright, inviting cadence with a subtle upward inflection that makes every interaction feel like a friendly chat. Her precise articulation and clear, confident delivery are tailor-made for conversational AI, IVR systems, and helpful customer service prompts.", tags: ["Female", "American (US)", "Conversational AI", "IVR"], provider: "async" },
4941
- { id: "4c71b60f-357f-4569-9867-cd1ce4ff58c8", name: "Rachiel", description: "With a voice like finely-tuned crystal, this speaker offers crisp British articulation that cuts through with intelligent clarity. Her delivery balances authority with an engaging precision, making complex information feel effortlessly digestible. She shines in corporate explainers, analytical podcasts, and educational content where impactful communication is key.", tags: ["Female", "British (UK)", "Informative/Educational", "Podcast", "Commercial/Advertisement"], provider: "async" },
4942
- { id: "d1a08ee2-2706-4743-898c-882238036c81", name: "Corbin", description: "Well-articulated male voice with a clear and factual tone, emphasizing key words for impact. Ideal for documentaries, presentations, and educational content that requires precision and authority.", tags: ["Male", "British (UK)", "Informative/Educational"], provider: "async" },
4943
- { id: "c6db469b-929f-4066-896c-165f60d09162", name: "Abigail", description: "Calm and informative female voice with a smooth, steady pace, ideal for commercials or advertisements that deliver content in a subtle, non-pushy manner while still engaging the audience with clarity.", tags: ["Female", "American (US)", "Commercial/Advertisement", "Informative/Educational", "Conversational AI"], provider: "async" },
4944
- { id: "be6bbe5d-5f45-4ad8-bec9-ed6a7cdf5311", name: "Faith", description: "Calm, neutral-tone female voice that is soothing and professional. This voice is well-suited for corporate presentations, meditation guides, or customer service applications, where a balanced and composed tone is necessary to ensure clear communication while keeping the listener at ease.", tags: ["Female", "American (US)", "Commercial/Advertisement"], provider: "async" },
4945
- { id: "aa40e5b8-af38-4f88-ab43-1fd5ca9749c6", name: "Kimberly", description: "Versatile and engaging female voice, ideal for commercials. Her tone can be both energetic and calming, making her perfect for a range of advertisements, from product promotions to brand messaging, ensuring the message is clear and impactful.", tags: ["Female", "American (US)", "Commercial/Advertisement"], provider: "async" },
4946
- { id: "7cd2e6c8-a8f8-4115-a757-9397c0127e50", name: "Dave", description: "Steady, professional male voice with a composed, confident tone. Clear, reliable, and well-balanced, it delivers information with precision and calm authority. Perfect for corporate narration, educational content, audiobooks, or formal presentations.", tags: ["Male", "Informative/Educational", "IVR"], provider: "async" },
4947
- { id: "7a3ef29d-8962-4722-adfb-fda21e0d821e", name: "Grace", description: "Upbeat female Australian voice with an inviting delivery and positive energy, perfect for friendly and informative presentations, commercials, and promotional content.", tags: ["Female", "Australian (AU)", "Strong Accents", "Informative/Educational", "Commercial/Advertisement"], provider: "async" },
4948
- { id: "13616e5f-6fda-4247-b548-8821cb71fb54", name: "Alden", description: "Male voice with an intense, commanding tone of authority, perfect for character and movie trailer narration. His strong presence and powerful delivery create a sense of urgency and dominance, making him ideal for roles that require confidence and intensity.", tags: ["Male", "British (UK)", "Character", "Movie trailer"], provider: "async" },
4949
- { id: "041937f9-3a23-4eef-a206-7c1656243825", name: "Renly", description: "Deep, ominous male voice that commands attention and instills caution. Perfect for warnings, alerts, suspenseful narrations, videogames and authoritative ai announcements.", tags: ["Male", "American (US)", "Character"], provider: "async" },
4950
- { id: "fb8c1498-1d6b-446c-891e-163a79e6d817", name: "Violet", description: "Calm and neutral female voice with a moderate pace, providing information in a clear and approachable manner. This voice is well-suited for tutorials, explainer videos, or customer service applications, where a reassuring, steady tone is needed to convey information effectively without overwhelming the listener.", tags: ["Female", "British (UK)", "Informative/Educational", "Newscasting", "Conversational AI"], provider: "async" },
4951
- { id: "f912f511-6b44-46dd-bd40-be3031201561", name: "Joel", description: "British male voice with an informative, educational style, delivering content in a balanced, professional, and direct manner. Perfect for e-learning courses, corporate training, instructional videos, and educational presentations, offering clear, authoritative communication that engages the audience while maintaining a focus on the message.", tags: ["Male", "British (UK)", "Informative/Educational"], provider: "async" },
4952
- { id: "f5b7eb43-2365-410a-95e0-beb92768809c", name: "Xavier", description: "Calm, measured voice with a smooth and steady delivery. Ideal for narrations, guided tutorials, and professional presentations where clarity, composure, and a polished tone create an engaging and easy-to-follow listening experience.", tags: ["Male", "American (US)", "Informative/Educational", "Conversational AI"], provider: "async" },
4953
- { id: "f26d400a-a7ff-4522-b098-485b2f34b123", name: "Esmeralda", description: "Female voice with robotic enunciation and artificial pauses, delivering information in a precise and structured manner. Ideal for IVR systems, AI assistants, or automated announcements where clarity and consistency are essential.", tags: ["Female", "British (UK)", "IVR", "Informative/Educational"], provider: "async" },
4954
- { id: "f26c8c45-049e-46c7-a6bd-b217d9255d3e", name: "Koharu", description: "Gentle, sweet Japanese female voice with a reflective and mindful tone. Calm, empathetic, and soothing, it conveys warmth and understanding with every word. Perfect for storytelling, audiobooks, or thoughtful narration, it creates a serene, engaging, and emotionally resonant listening experience.", tags: ["Female", "Storytelling", "Audiobook"], provider: "async" },
4955
- { id: "ec82ea24-3249-4981-a28f-65a78d2a2cd0", name: "Robert", description: "An engaging, informative, and friendly voice, ideal for nature documentaries. This voice blends warmth with clarity, delivering facts in an accessible and captivating way. Perfect for guiding audiences through the wonders of the natural world with a balance of knowledge and storytelling.", tags: ["Male", "British (UK)", "Informative/Educational", "Conversational AI"], provider: "async" },
4956
- { id: "ec4f77d4-60fa-4707-a094-ad18fdfbaa97", name: "Lila", description: "British female voice with a commercial and newscasting style, delivering content in a calm tone with light intonation and conversational pacing. Ideal for news reports, corporate videos, and product promotions, offering a professional yet approachable sound that engages the audience while maintaining a smooth, natural flow.", tags: ["Female", "British (UK)", "Newscasting", "Commercial/Advertisement"], provider: "async" },
4957
- { id: "e8490197-0f00-4089-8b7f-e32f331a6edf", name: "Brooks", description: "Male voice that is deep and imposing, with a serious tone that instills intensity for storytelling. His strong, commanding presence enhances the narrative, creating a powerful atmosphere that draws listeners in and adds weight to the unfolding story.", tags: ["Male", "American (US)", "Storytelling"], provider: "async" },
4958
- { id: "e7e88155-71c0-4e51-a3b4-8022468f7eca", name: "Dacian", description: "Calm, measured Romanian male voice with a steady, clear, and professional tone. Articulate, approachable, and reliable, he delivers information or educational content effectively. Warm, composed, and engaging, his voice ensures clarity and understanding while maintaining a trustworthy and focused presence.", tags: ["Male", "Informative/Educational"], provider: "async" },
4959
- { id: "e590a00d-1925-4759-aea8-21e3beabafac", name: "Lennox", description: "Male voice with a calm tone, ideal for storytelling and audiobooks. His steady, soothing delivery creates a relaxing listening experience, allowing the story to unfold naturally and keeping the listener engaged with a tranquil, clear narration.", tags: ["Male", "American (US)", "Audiobook", "Storytelling"], provider: "async" },
4960
- { id: "e4db0c1b-f72d-494c-baa8-43c44d5765b6", name: "Vanessa", description: "Female voice with a British accent, delivering a character-driven style with a slightly pretentious yet curious tone. Perfect for animated characters, audiobooks, or video games where a refined, inquisitive, and somewhat haughty personality adds charm and depth. Ideal for roles that require a mix of sophistication, wit, and playful intrigue.", tags: ["Female", "British (UK)", "Character"], provider: "async" },
4961
- { id: "e486f733-9769-4f8a-a8e2-d39e4e3eab81", name: "Simon", description: "Balanced male voice with a professional tone, delivering information with clarity and confidence. Ideal for corporate narrations, e-learning, and business presentations where a polished and engaging delivery enhances credibility and listener engagement.", tags: ["Male", "American (US)", "Informative/Educational"], provider: "async" },
4962
- { id: "e0f39dc4-f691-4e78-bba5-5c636692cc04", name: "Nyomi", description: "Female voice with an informative, clinical tone, which can be used for newscasting and informative content. This voice delivers facts with clarity and precision, maintaining a professional and authoritative presence. Suitable for news reports, documentaries, and educational material that require a composed and objective delivery.", tags: ["Female", "British (UK)", "Newscasting", "Informative/Educational", "Conversational AI"], provider: "async" },
4963
- { id: "e098922a-9410-4d96-8e3c-402e26f7160b", name: "Jack", description: "Male voice featuring a strong Australian accent, exuding authority and professionalism. It's perfect for situations that require a confident, informative tone, such as corporate presentations, training modules, or educational content. Its clear, commanding delivery makes it ideal for high-impact commercials, product demos, or any content where trust and expertise are essential.", tags: ["Male", "Australian (AU)", "Informative/Educational"], provider: "async" },
4964
- { id: "df05515b-b647-4b60-9387-b0642c51b235", name: "Penelope", description: "Neutral, even-toned voice with plain speech, delivering information in a straightforward and unobtrusive manner. Ideal for instructional content, automated responses, or professional settings where clarity and consistency are key without adding emotional emphasis.", tags: ["Female", "American (US)", "Informative/Educational"], provider: "async" },
4965
- { id: "dd063dd5-c566-437e-b82a-a4f98eae1f38", name: "Hinano", description: "Soft, polite, and balanced Japanese female voice with clear articulation and natural warmth. Calm and professional, it suits both audiobooks and IVR systems, offering a reassuring, pleasant tone that feels approachable yet precise \u2014 ideal for guiding, narrating, or gently engaging the listener.", tags: ["Female", "IVR", "Audiobook"], provider: "async" },
4966
- { id: "dbf08c3e-d33a-4afb-bdb3-0f024a687d19", name: "Brayden", description: "Rich, flamboyant male voice with a pretentious tone, spoken with an air of superiority, similar to Donald Trump's voice. The delivery is dramatic and exaggerated, with carefully placed emphasis that adds flair and arrogance.", tags: ["Male", "American (US)", "Character", "Impersonation"], provider: "async" },
4967
- { id: "db21e50c-9c85-4177-9bb2-9bf177890e44", name: "Abel", description: "Male voice with an authoritative tone, calm delivery, and clear articulation, perfect for informative and educational content. His subtle emphasis on key points enhances understanding, creating a focused and engaging experience for the listener while maintaining a professional presence.", tags: ["Male", "American (US)", "Informative/Educational"], provider: "async" },
4968
- { id: "d7114790-534e-4007-b80d-6d176230553c", name: "Nellie", description: "Bold British-accented female voice with a slightly sharp, newscasting style. This voice delivers with clarity and confidence, ideal for news, reports, and formal announcements, ensuring a strong, professional presence while maintaining a sharp and impactful delivery.", tags: ["Female", "British (UK)", "Newscasting", "Informative/Educational"], provider: "async" }
4969
- ];
4712
+ var ASYNC_DEFAULT_VOICE_ID = "cca0e076-b350-4966-b570-4c2fca50b525";
4970
4713
  var SEEDAUDIO_DEFAULT_VOICE_ID = "en_male_tim_uranus_bigtts";
4971
- var SEEDAUDIO_EN_ZH_VOICES = [
4972
- { id: "zh_female_vv_uranus_bigtts", name: "Vivi", description: "A youthful and vibrant female voice.", tags: ["Female", "Multilingual"], provider: "seedaudio" },
4973
- { id: "zh_female_xiaohe_uranus_bigtts", name: "Mindy", description: "A gentle, soft-spoken, and slightly mature female voice.", tags: ["Female", "Multilingual"], provider: "seedaudio" },
4974
- { id: "en_female_stokie_uranus_bigtts", name: "Stokie", description: "A trendy, casual, and expressive young female voice.", tags: ["Female", "English"], provider: "seedaudio" },
4975
- { id: "en_female_dacey_uranus_bigtts", name: "Dacey", description: "A warm, empathetic, and highly engaging female voice.", tags: ["Female", "English"], provider: "seedaudio" },
4976
- { id: "en_male_tim_uranus_bigtts", name: "Tim", description: "A clear, versatile, and friendly mid-range male voice.", tags: ["Male", "English"], provider: "seedaudio" },
4977
- { id: "zh_male_m191_uranus_bigtts", name: "Kian", description: "A steady, clear, and versatile mid-range male voice.", tags: ["Male", "Multilingual"], provider: "seedaudio" },
4978
- { id: "zh_male_taocheng_uranus_bigtts", name: "Cedric", description: "A dynamic, spirited, and energetic young male voice.", tags: ["Male", "Multilingual"], provider: "seedaudio" },
4979
- { id: "zh_male_sophie_uranus_bigtts", name: "Sophie", description: "A smooth, modern, and soft-spoken young voice.", tags: ["Female", "Multilingual"], provider: "seedaudio" },
4980
- { id: "zh_female_yingyujiaoxue_uranus_bigtts", name: "Jean", description: "A clear, authoritative yet encouraging female voice.", tags: ["Female", "Multilingual"], provider: "seedaudio" },
4981
- { id: "zh_male_dayi_uranus_bigtts", name: "Magnus", description: "A mature, resonant, and slightly dramatic male voice.", tags: ["Male", "Multilingual"], provider: "seedaudio" },
4982
- { id: "zh_female_mizai_uranus_bigtts", name: "Mabel", description: "A youthful, playful voice with a kid vibe.", tags: ["Female", "Multilingual"], provider: "seedaudio" },
4983
- { id: "zh_female_jitangnv_uranus_bigtts", name: "Nadia", description: "A mature, soothing, and deeply emotional female voice.", tags: ["Female", "Multilingual"], provider: "seedaudio" },
4984
- { id: "zh_female_meilinvyou_uranus_bigtts", name: "Opal", description: "A sweet, intimate, and affectionate young female voice.", tags: ["Female", "Multilingual"], provider: "seedaudio" },
4985
- { id: "zh_female_liuchangnv_uranus_bigtts", name: "Pearl", description: "A clear, steady, and highly articulate female voice.", tags: ["Female", "Multilingual"], provider: "seedaudio" },
4986
- { id: "zh_male_ruyayichen_uranus_bigtts", name: "Quentin", description: "A refined, gentle, and elegant young male voice.", tags: ["Male", "Multilingual"], provider: "seedaudio" },
4987
- { id: "zh_female_cancan_uranus_bigtts", name: "Corinne", description: "A young, vivid and energetic female voice.", tags: ["Female", "Multilingual"], provider: "seedaudio" },
4988
- { id: "zh_female_tianmeixiaoyuan_uranus_bigtts", name: "Esther", description: "A fresh, innocent, and youthful female voice.", tags: ["Female", "Multilingual"], provider: "seedaudio" },
4989
- { id: "zh_female_tianmeitaozi_uranus_bigtts", name: "Freya", description: "A soft, bright, and incredibly sweet young female voice.", tags: ["Female", "Multilingual"], provider: "seedaudio" },
4990
- { id: "zh_female_shuangkuaisisi_uranus_bigtts", name: "Gigi", description: "A crisp, fast-paced, and confident young female voice.", tags: ["Female", "Multilingual"], provider: "seedaudio" },
4991
- { id: "zh_female_peiqi_uranus_bigtts", name: "Holly", description: "A childlike, innocent little girl's voice.", tags: ["Female", "Multilingual"], provider: "seedaudio" },
4992
- { id: "zh_female_xiaoxue_uranus_bigtts", name: "Lyla", description: "A pure, steady, and crystal-clear young female voice.", tags: ["Female", "Multilingual"], provider: "seedaudio" },
4993
- { id: "zh_female_yuanqi_uranus_bigtts", name: "Daisy", description: "An energetic, cheerful, and optimistic young female voice.", tags: ["Female", "Multilingual"], provider: "seedaudio" },
4994
- { id: "zh_female_kefunvsheng_uranus_bigtts", name: "Tracy", description: "A polished, professional, and courteous female voice.", tags: ["Female", "Multilingual"], provider: "seedaudio" },
4995
- { id: "zh_male_shaonianzixin_uranus_bigtts", name: "Jess", description: "A bright, confident, and energetic teenage male voice.", tags: ["Male", "Multilingual"], provider: "seedaudio" },
4996
- { id: "zh_female_linjianvhai_uranus_bigtts", name: "Pinky", description: "A warm, friendly, and approachable young female voice.", tags: ["Female", "Multilingual"], provider: "seedaudio" },
4997
- { id: "zh_female_kiwi_uranus_bigtts", name: "Sweety", description: "A bright, cheerful, and modern young female voice.", tags: ["Female", "Multilingual"], provider: "seedaudio" },
4998
- { id: "zh_female_sajiaoxuemei_uranus_bigtts", name: "Sandy", description: "A very young, sweet, and playful female voice.", tags: ["Female", "Multilingual"], provider: "seedaudio" },
4999
- { id: "zh_male_liufei_uranus_bigtts", name: "Felix", description: "A clear and energetic voice.", tags: ["Male", "Chinese"], provider: "seedaudio" },
5000
- { id: "zh_female_qingxinnvsheng_uranus_bigtts", name: "Celeste", description: "A fresh and clear female voice.", tags: ["Female", "Chinese"], provider: "seedaudio" },
5001
- { id: "zh_male_sunwukong_uranus_bigtts", name: "Monkey King", description: "A Monkey King character voice.", tags: ["Male", "Chinese", "Character"], provider: "seedaudio" },
5002
- { id: "en_male_adam-imitation_uranus_bigtts", name: "Rowan", description: "An easygoing, natural young man with a cool, aloof edge.", tags: ["Male", "English (US)"], provider: "seedaudio" },
5003
- { id: "en_male_alberto_uranus_bigtts", name: "Alberto", description: "A gentle, approachable man with a low, soothing tone.", tags: ["Male", "English (US)"], provider: "seedaudio" },
5004
- { id: "en_male_alex_uranus_bigtts", name: "Alex", description: "An objective, composed young man with a warm, clear voice.", tags: ["Male", "English (US)"], provider: "seedaudio" },
5005
- { id: "en_female_allison_uranus_bigtts", name: "Allison", description: "An upbeat, enthusiastic college-aged woman, full of energy.", tags: ["Female", "English (US)", "Dubbing"], provider: "seedaudio" },
5006
- { id: "en_female_authoritative-british_uranus_bigtts", name: "Charlotte", description: "A bright, crisp older sister with tension and drive.", tags: ["Female", "English (US)", "Education"], provider: "seedaudio" },
5007
- { id: "en_female_authoritative-informative_uranus_bigtts", name: "Margaret", description: "A gentle, sincere big sister with a soft, unhurried tone.", tags: ["Female", "English (US)"], provider: "seedaudio" },
5008
- { id: "en_male_bill-jones_uranus_bigtts", name: "Jones", description: "A humorous uncle with a thick Southern American accent.", tags: ["Male", "English (US)", "Entertainment"], provider: "seedaudio" },
5009
- { id: "en_male_bill_jones_corey_uranus_bigtts", name: "Bill", description: "A steady, self-assured male professional with composure.", tags: ["Male", "English (US)"], provider: "seedaudio" },
5010
- { id: "en_male_brad_pitt_p1_uranus_bigtts", name: "Brad Pitt", description: "A laid-back man with a low, husky, relaxed voice.", tags: ["Male", "English (US)"], provider: "seedaudio" },
5011
- { id: "en_female_brittney_uranus_bigtts", name: "Brittney", description: "A warm, intelligent older sister with a tender heart.", tags: ["Female", "English (US)"], provider: "seedaudio" },
5012
- { id: "en_female_brittney_pimintel_uranus_bigtts", name: "Zoe", description: "A bright, spirited young girl bursting with energy.", tags: ["Female", "English (US)", "Audiobook"], provider: "seedaudio" },
5013
- { id: "en_male_bruce_uranus_bigtts", name: "Adrian", description: "A composed, level-headed gentleman with rational restraint.", tags: ["Male", "English (US)"], provider: "seedaudio" },
5014
- { id: "en_male_chandler_p1_uranus_bigtts", name: "Leo", description: "A theatrical man with dramatic intonation and expressiveness.", tags: ["Male", "English (US)", "Entertainment"], provider: "seedaudio" },
5015
- { id: "en_male_cowboy-bob_uranus_bigtts", name: "Bob", description: "A mature man with a deep, resonant, slightly raspy voice.", tags: ["Male", "English (US)"], provider: "seedaudio" },
5016
- { id: "en_male_cowboy_john_b_uranus_bigtts", name: "John", description: "An energetic, flamboyant uncle with a Southern accent.", tags: ["Male", "English (US)", "Entertainment"], provider: "seedaudio" },
5017
- { id: "en_male_david_uranus_bigtts", name: "David", description: "A middle-aged man with a deep, weighty, unhurried voice.", tags: ["Male", "English (US)"], provider: "seedaudio" },
5018
- { id: "en_male_deep-voice_uranus_bigtts", name: "Orion", description: "A solid, textured voice with a slow pace and drama.", tags: ["Male", "English (US)", "Entertainment"], provider: "seedaudio" },
5019
- { id: "en_male_diyuwenrounan_uranus_bigtts", name: "Julian", description: "A refined, gentle, sincere man with an easygoing manner.", tags: ["Male", "English (US)", "Audiobook"], provider: "seedaudio" },
5020
- { id: "en_male_evil-guy-oxley_uranus_bigtts", name: "Harrison", description: "A rigorous, professional heavyweight with commanding presence.", tags: ["Male", "English (US)", "Dubbing"], provider: "seedaudio" },
5021
- { id: "en_male_excited-male-voice_uranus_bigtts", name: "Jasper", description: "A passionate young male voice with sweeping intonation.", tags: ["Male", "English (US)", "Entertainment"], provider: "seedaudio" },
5022
- { id: "en_male_father-christmas_uranus_bigtts", name: "Alfred", description: "An elder with a deep, resonant voice and clear articulation.", tags: ["Male", "English (US)"], provider: "seedaudio" },
5023
- { id: "en_female_female_tutor_ms-jenny_uranus_bigtts", name: "Holly", description: "An enthusiastic, energetic female host with a vivid style.", tags: ["Female", "English (US)", "Education"], provider: "seedaudio" },
5024
- { id: "en_male_fernando-martinez_uranus_bigtts", name: "Felix", description: "A cheerful, lively male voice, contagious in emotion.", tags: ["Male", "English (US)"], provider: "seedaudio" },
5025
- { id: "en_male_godfather_uranus_bigtts", name: "Godfather", description: "A mature man with sincere emotion and a gentle, unhurried tone.", tags: ["Male", "English (US)", "Audiobook"], provider: "seedaudio" },
5026
- { id: "en_male_gollum_uranus_bigtts", name: "Gollum", description: "A wacky, over-the-top voice skilled at playful characters.", tags: ["Male", "English (US)", "RolePlay"], provider: "seedaudio" },
5027
- { id: "en_male_hades_uranus_bigtts", name: "Beau", description: "A free-spirited mature man with a relaxed, easygoing tone.", tags: ["Male", "English (US)"], provider: "seedaudio" },
5028
- { id: "en_female_hayley_uranus_bigtts", name: "Hayley", description: "A lively female voice with strong emotional tension.", tags: ["Female", "English (US)", "Education"], provider: "seedaudio" },
5029
- { id: "en_male_jamie_uranus_bigtts", name: "Jamie", description: "A hearty, sincere, witty male voice full of energy.", tags: ["Male", "English (US)"], provider: "seedaudio" },
5030
- { id: "en_female_jane_uranus_bigtts", name: "Jane", description: "An energetic young girl with vivid, expressive emotion.", tags: ["Female", "English (US)", "Dubbing"], provider: "seedaudio" },
5031
- { id: "en_female_jenny_uranus_bigtts", name: "Jenny", description: "A cheerful, warm, and talkative personality.", tags: ["Female", "English (US)"], provider: "seedaudio" },
5032
- { id: "en_male_jidongchuanjiaoshi_uranus_bigtts", name: "Blaze", description: "An immersive, passionate performance with fervent intonation.", tags: ["Male", "English (US)", "Entertainment"], provider: "seedaudio" },
5033
- { id: "en_male_jimmy_uranus_bigtts", name: "Jimmy", description: "A sunny young man, vivid and engaging at sharing stories.", tags: ["Male", "English (US)"], provider: "seedaudio" },
5034
- { id: "en_female_joanne_uranus_bigtts", name: "Joanne", description: "A crisp, lively young female voice with a relaxed feel.", tags: ["Female", "English (US)"], provider: "seedaudio" },
5035
- { id: "en_male_joker_uranus_bigtts", name: "Joker", description: "A middle-aged voice with a slow pace and warm, magnetic tone.", tags: ["Male", "English (US)", "Entertainment"], provider: "seedaudio" },
5036
- { id: "en_male_josh_uranus_bigtts", name: "Josh", description: "A clear, bright, cheerful, energetic young man.", tags: ["Male", "English (US)", "Dubbing"], provider: "seedaudio" },
5037
- { id: "en_male_josh_coery_uranus_bigtts", name: "Josiah", description: "A businesslike young man with a deep, dignified voice.", tags: ["Male", "English (US)", "Education"], provider: "seedaudio" },
5038
- { id: "en_male_kevin_uranus_bigtts", name: "Kevin", description: "A warm, magnetic middle-aged voice with fluent delivery.", tags: ["Male", "English (US)", "Education"], provider: "seedaudio" },
5039
- { id: "en_male_knightley_uranus_bigtts", name: "Knightley", description: "A deep, magnetic middle-aged male voice with a steady manner.", tags: ["Male", "English (US)", "Audiobook"], provider: "seedaudio" },
5040
- { id: "en_female_lana_del_rey_kelley_d_p1_uranus_bigtts", name: "Lynn", description: "A soft, slightly husky young female voice.", tags: ["Female", "English (US)", "RolePlay"], provider: "seedaudio" },
5041
- { id: "en_female_lana_del_rey_parky_s_p1_uranus_bigtts", name: "Ivy", description: "A gentle, soft female voice with a warm, natural tone.", tags: ["Female", "English (US)", "CustomerService"], provider: "seedaudio" },
5042
- { id: "en_male_marcus_uranus_bigtts", name: "Marcus", description: "A mellow, deep mature male voice skilled at storytelling.", tags: ["Male", "English (US)"], provider: "seedaudio" },
5043
- { id: "en_female_mel_uranus_bigtts", name: "Mel", description: "A lively, dynamic female voice with vivid ups and downs.", tags: ["Female", "English (US)", "Education"], provider: "seedaudio" },
5044
- { id: "en_male_michael_uranus_bigtts", name: "Hank", description: "A laid-back man with a deep, magnetic, easygoing voice.", tags: ["Male", "English (US)"], provider: "seedaudio" },
5045
- { id: "en_male_michael-mouse_uranus_bigtts", name: "Chip", description: "A cartoonish, high-pitched, exaggerated comical voice.", tags: ["Male", "English (US)", "Entertainment"], provider: "seedaudio" },
5046
- { id: "en_male_michael_kevin_uranus_bigtts", name: "Michael Kevin", description: "A professional narrator\u2014gentle, bright, and persuasive.", tags: ["Male", "English (US)"], provider: "seedaudio" },
5047
- { id: "en_male_motivational-coach_uranus_bigtts", name: "Rory", description: "An energetic college-aged man, full of emotion and dynamic.", tags: ["Male", "English (US)", "Entertainment"], provider: "seedaudio" },
5048
- { id: "en_female_myra_uranus_bigtts", name: "Myra", description: "A sweet, lively young-girl voice that tells stories gently.", tags: ["Female", "English (US)", "Education"], provider: "seedaudio" },
5049
- { id: "en_female_myra_cmb_uranus_bigtts", name: "Sunny", description: "A crisp, lively young female voice full of enthusiasm.", tags: ["Female", "English (US)", "Education"], provider: "seedaudio" },
5050
- { id: "en_female_nadia_uranus_bigtts", name: "Blair", description: "A clean, clear young female voice with a gentle way of speaking.", tags: ["Female", "English (US)"], provider: "seedaudio" },
5051
- { id: "en_female_natasha_uranus_bigtts", name: "Natasha", description: "A bright, vivid, warm and approachable conversational voice.", tags: ["Female", "English (US)"], provider: "seedaudio" },
5052
- { id: "en_female_pleasant-female_uranus_bigtts", name: "Elaine", description: "A gentle, lovely young lady with heartfelt warmth.", tags: ["Female", "English (US)", "Audiobook"], provider: "seedaudio" },
5053
- { id: "en_female_rachel_p1_uranus_bigtts", name: "Rachel", description: "A bright, clear young female voice with strong dramatic flair.", tags: ["Female", "English (US)", "Entertainment"], provider: "seedaudio" },
5054
- { id: "en_male_ronald_uranus_bigtts", name: "Ronald", description: "A British gentleman with a deep, resonant, dignified voice.", tags: ["Male", "English (US)", "Audiobook"], provider: "seedaudio" },
5055
- { id: "en_male_russell_uranus_bigtts", name: "Russell", description: "A warm, bright, sincere American boyfriend voice.", tags: ["Male", "English (US)"], provider: "seedaudio" },
5056
- { id: "en_female_scarlet_p1_uranus_bigtts", name: "Scarlet", description: "A gentle, deeply affectionate older sister.", tags: ["Female", "English (US)", "CustomerService"], provider: "seedaudio" },
5057
- { id: "en_female_sharron_uranus_bigtts", name: "Sharron", description: "A young lady with a soft, slightly husky, easygoing voice.", tags: ["Female", "English (US)", "Entertainment"], provider: "seedaudio" },
5058
- { id: "en_male_simba_p1_uranus_bigtts", name: "Simba", description: "A bright yet husky young male voice with strong expressiveness.", tags: ["Male", "English (US)"], provider: "seedaudio" },
5059
- { id: "en_female_skye_uranus_bigtts", name: "Skye", description: "A clear, candid older sister who speaks from the heart.", tags: ["Female", "English (US)"], provider: "seedaudio" },
5060
- { id: "en_male_tom_hiddleston_p1_uranus_bigtts", name: "Tom", description: "A deep, reserved uncle with a narrative reciting style.", tags: ["Male", "English (US)"], provider: "seedaudio" },
5061
- { id: "en_male_valentino_uranus_bigtts", name: "Valentino", description: "A sunny, cheerful young man full of warmth and energy.", tags: ["Male", "English (US)"], provider: "seedaudio" },
5062
- { id: "en_male_valentino_corey_uranus_bigtts", name: "Clark", description: "A mature, dignified uncle with a steady narration style.", tags: ["Male", "English (US)", "Dubbing"], provider: "seedaudio" },
5063
- { id: "en_female_wenrouzhishijieshuonv_uranus_bigtts", name: "Megan", description: "A gentle, fun older sister sharing knowledge in a relaxed way.", tags: ["Female", "English (US)", "CustomerService"], provider: "seedaudio" },
5064
- { id: "en_female_xinwenjieshuonv_uranus_bigtts", name: "Kayla", description: "An enthusiastic, outgoing female student full of expressiveness.", tags: ["Female", "English (US)", "RolePlay"], provider: "seedaudio" },
5065
- { id: "en_male_yangguangjieshuonan_uranus_bigtts", name: "Dylan", description: "A witty, humorous uncle with a vivid narrative style.", tags: ["Male", "English (US)"], provider: "seedaudio" },
5066
- { id: "en_female_zendaya_p1_uranus_bigtts", name: "Zendaya", description: "An easygoing, approachable older sister full of energy.", tags: ["Female", "English (US)", "Education"], provider: "seedaudio" }
5067
- ];
5068
- var SEEDAUDIO_OTHER_LANGUAGE_VOICES = [
5069
- { id: "de_male_seven_uranus_bigtts", name: "Sven", description: "A steady, clear, and confident male voice.", tags: ["Male", "German"], provider: "seedaudio" },
5070
- { id: "jp_female_minimi_uranus_bigtts", name: "Minimi", description: "A high-pitched, sweet, 'kawaii' young female voice.", tags: ["Female", "Japanese"], provider: "seedaudio" },
5071
- { id: "fr_male_usseau_uranus_bigtts", name: "Usseau", description: "A sophisticated, crisp, and articulate male voice.", tags: ["Male", "French"], provider: "seedaudio" },
5072
- { id: "es_male_felipe_uranus_bigtts", name: "Felipe", description: "An energetic, upbeat, and charismatic young male voice.", tags: ["Male", "Spanish (MX)"], provider: "seedaudio" },
5073
- { id: "id_male_han_uranus_bigtts", name: "Han", description: "A modern, smooth, and friendly young adult male voice.", tags: ["Male", "Indonesian"], provider: "seedaudio" },
5074
- { id: "pt_male_martins_uranus_bigtts", name: "Martins", description: "A charismatic, warm, and expressive male voice.", tags: ["Male", "Portuguese (BR)"], provider: "seedaudio" },
5075
- { id: "it_male_enzo_uranus_bigtts", name: "Enzo", description: "An authentic, charismatic, and warm Italian male voice.", tags: ["Male", "Italian"], provider: "seedaudio" },
5076
- { id: "kr_male_shane_uranus_bigtts", name: "Jihoon", description: "A polished, modern, and smooth Korean male voice.", tags: ["Male", "Korean"], provider: "seedaudio" },
5077
- { id: "ja_female_bv024_uranus_bigtts", name: "Bonnie", description: "A gentle, soft, warm female college student.", tags: ["Female", "Japanese"], provider: "seedaudio" },
5078
- { id: "ja_female_bv520_uranus_bigtts", name: "Poppy", description: "An energetic young woman with an anime-dubbing style.", tags: ["Female", "Japanese", "Dubbing"], provider: "seedaudio" },
5079
- { id: "ja_female_bv521_uranus_bigtts", name: "Aoi", description: "A sweet, lively young woman with strong performance appeal.", tags: ["Female", "Japanese", "Entertainment"], provider: "seedaudio" },
5080
- { id: "ja_female_bv522_uranus_bigtts", name: "Hana", description: "A professional, dignified young woman with a broadcast tone.", tags: ["Female", "Japanese"], provider: "seedaudio" },
5081
- { id: "ja_female_bv523_uranus_bigtts", name: "Lily", description: "An innocent, carefree little girl full of childlike charm.", tags: ["Female", "Japanese", "Entertainment"], provider: "seedaudio" },
5082
- { id: "ja_male_bv524_uranus_bigtts", name: "Ken", description: "A capable, professional young man with a calm, restrained tone.", tags: ["Male", "Japanese"], provider: "seedaudio" },
5083
- { id: "ja_female_minimi_uranus_bigtts", name: "Minimi", description: "A vibrant, hearty young woman with an outgoing personality.", tags: ["Female", "Japanese"], provider: "seedaudio" },
5084
- { id: "ja_female_shirou_uranus_bigtts", name: "Shirou", description: "A spirited, straightforward young woman with anime style.", tags: ["Female", "Japanese", "Dubbing"], provider: "seedaudio" },
5085
- { id: "de_female_bv081_uranus_bigtts", name: "Stella", description: "An objective, composed, and professional young female voice.", tags: ["Female", "German", "Education"], provider: "seedaudio" },
5086
- { id: "de_male_sven_uranus_bigtts", name: "Sven", description: "A middle-aged man with a deep, magnetic, slightly raspy voice.", tags: ["Male", "German"], provider: "seedaudio" },
5087
- { id: "es_female_bv084_uranus_bigtts", name: "Gracie", description: "A rational, capable woman with clear, organized narration.", tags: ["Female", "Spanish"], provider: "seedaudio" },
5088
- { id: "es_male_dani_uranus_bigtts", name: "Dani", description: "An enthusiastic, talkative uncle with a charming style.", tags: ["Male", "Spanish", "Audiobook"], provider: "seedaudio" },
5089
- { id: "es_male_guillem_uranus_bigtts", name: "Guillem", description: "An easygoing, cheerful, approachable young man.", tags: ["Male", "Spanish", "Audiobook"], provider: "seedaudio" },
5090
- { id: "es_female_ht_mx_f6_uranus_bigtts", name: "Marisol", description: "A lively, enthusiastic girl-next-door full of energy.", tags: ["Female", "Spanish"], provider: "seedaudio" },
5091
- { id: "mx_female_bv065_uranus_bigtts", name: "Irene", description: "A calm, objective, efficient, well-organized young woman.", tags: ["Female", "Spanish (MX)", "Education"], provider: "seedaudio" },
5092
- { id: "mx_male_bv165dialogue_uranus_bigtts", name: "Diego", description: "A charming young man with a magnetic, vivid dialogue style.", tags: ["Male", "Spanish (MX)", "Audiobook"], provider: "seedaudio" },
5093
- { id: "mx_male_bv165narrator_uranus_bigtts", name: "Marcos", description: "A steady, mature man with a deep, magnetic, professional tone.", tags: ["Male", "Spanish (MX)", "Audiobook"], provider: "seedaudio" },
5094
- { id: "mx_female_bv166dialogue_uranus_bigtts", name: "Lucy", description: "A playful, cheerful, lovely young woman with vivid emotion.", tags: ["Female", "Spanish (MX)"], provider: "seedaudio" },
5095
- { id: "mx_female_bv166emotion_uranus_bigtts", name: "Rosa", description: "A young woman with intense emotion and dramatic tension.", tags: ["Female", "Spanish (MX)"], provider: "seedaudio" },
5096
- { id: "mx_female_bv166narrator_uranus_bigtts", name: "Freya", description: "A distinctive young woman skilled at vivid storytelling.", tags: ["Female", "Spanish (MX)", "Audiobook"], provider: "seedaudio" },
5097
- { id: "mx_male_felipe_uranus_bigtts", name: "Felipe", description: "An enthusiastic, sharp-witted young man building suspense.", tags: ["Male", "Spanish (MX)"], provider: "seedaudio" },
5098
- { id: "mx_male_ht_mx_m012_uranus_bigtts", name: "Derek", description: "An objective, restrained young man with a professional style.", tags: ["Male", "Spanish (MX)", "Education"], provider: "seedaudio" },
5099
- { id: "mx_female_leslie_uranus_bigtts", name: "Leslie", description: "An approachable, gentle young woman with a soft pace.", tags: ["Female", "Spanish (MX)"], provider: "seedaudio" },
5100
- { id: "mx_male_marcelo_uranus_bigtts", name: "Marcelo", description: "A gentle, refined, steady, dignified young man.", tags: ["Male", "Spanish (MX)"], provider: "seedaudio" },
5101
- { id: "fr_female_fr_bv078_uranus_bigtts", name: "Simone", description: "A steady, professional, even-tempered auntie.", tags: ["Female", "French", "Dubbing"], provider: "seedaudio" },
5102
- { id: "fr_female_fr_f47_uranus_bigtts", name: "Camille", description: "A professional, capable older sister with a calm style.", tags: ["Female", "French", "CustomerService"], provider: "seedaudio" },
5103
- { id: "fr_male_fr_m29_uranus_bigtts", name: "Maurice", description: "A mature, steady uncle with a resonant, dignified voice.", tags: ["Male", "French", "Dubbing"], provider: "seedaudio" },
5104
- { id: "id_male_bv160_uranus_bigtts", name: "Rocco", description: "An impassioned young man with intensely dramatic delivery.", tags: ["Male", "Indonesian"], provider: "seedaudio" },
5105
- { id: "id_male_bv160dialogue_uranus_bigtts", name: "Jude", description: "A young man with a dramatic, emotional performance style.", tags: ["Male", "Indonesian"], provider: "seedaudio" },
5106
- { id: "id_male_bv160narration_uranus_bigtts", name: "Hugo", description: "A rational, steady young man skilled at narrative storytelling.", tags: ["Male", "Indonesian", "Audiobook"], provider: "seedaudio" },
5107
- { id: "id_female_bv161_uranus_bigtts", name: "Clara", description: "A gentle, even-tempered young woman with a bright, soft voice.", tags: ["Female", "Indonesian"], provider: "seedaudio" },
5108
- { id: "id_female_bv161dialogue_uranus_bigtts", name: "Sylvia", description: "A young woman with shifting emotions and film-dialogue atmosphere.", tags: ["Female", "Indonesian"], provider: "seedaudio" },
5109
- { id: "id_female_bv161narration_uranus_bigtts", name: "Celeste", description: "A sweet, lively female lead with emotionally rich narration.", tags: ["Female", "Indonesian"], provider: "seedaudio" },
5110
- { id: "id_female_bv164_uranus_bigtts", name: "Crew", description: "A blend of diverse voices for vivid multi-person dialogue.", tags: ["Female", "Indonesian"], provider: "seedaudio" },
5111
- { id: "id_male_bv164dialogue_uranus_bigtts", name: "Elian", description: "A gentle, refined young man with a dramatic performance style.", tags: ["Male", "Indonesian", "Dubbing"], provider: "seedaudio" },
5112
- { id: "id_male_bv164narration_uranus_bigtts", name: "Ronan", description: "A professional, steady, calm mature uncle.", tags: ["Male", "Indonesian", "Audiobook"], provider: "seedaudio" },
5113
- { id: "id_female_f20_uranus_bigtts", name: "Chloe", description: "An energetic, lively young woman with an elegant air.", tags: ["Female", "Indonesian", "Dubbing"], provider: "seedaudio" },
5114
- { id: "id_male_m08_uranus_bigtts", name: "Kyle", description: "A rational, steady young man with a professional narration style.", tags: ["Male", "Indonesian"], provider: "seedaudio" },
5115
- { id: "id_female_phulia_uranus_bigtts", name: "Phulia", description: "A lively, cheerful young woman full of emotion and tension.", tags: ["Female", "Indonesian"], provider: "seedaudio" },
5116
- { id: "pt_male_bv172_uranus_bigtts", name: "Sam", description: "A two-person dialogue with contrasting fast and slow pacing.", tags: ["Male", "Portuguese (BR)"], provider: "seedaudio" },
5117
- { id: "pt_male_bv172dialogue_uranus_bigtts", name: "Walter", description: "A resonant, husky middle-aged uncle with a film-dialogue feel.", tags: ["Male", "Portuguese (BR)", "Dubbing"], provider: "seedaudio" },
5118
- { id: "pt_male_bv172emotion_uranus_bigtts", name: "Vincent", description: "A middle-aged voice with intense emotion and dramatic flair.", tags: ["Male", "Portuguese (BR)", "Education"], provider: "seedaudio" },
5119
- { id: "pt_male_bv172narrator_uranus_bigtts", name: "Miles", description: "A rational, calm, rigorous, professional male narrator.", tags: ["Male", "Portuguese (BR)", "Audiobook"], provider: "seedaudio" },
5120
- { id: "pt_female_bv173_uranus_bigtts", name: "Diana", description: "A professional, composed, sharp, capable female narrator.", tags: ["Female", "Portuguese (BR)"], provider: "seedaudio" },
5121
- { id: "pt_female_bv173dialogue_uranus_bigtts", name: "Elena", description: "An elegant, mature idol-drama female lead.", tags: ["Female", "Portuguese (BR)"], provider: "seedaudio" },
5122
- { id: "pt_female_bv173emotion_uranus_bigtts", name: "Lola", description: "An enthusiastic performer full of emotion and expressive tension.", tags: ["Female", "Portuguese (BR)"], provider: "seedaudio" },
5123
- { id: "pt_female_bv173narrator_uranus_bigtts", name: "Emma", description: "A sharp, capable, calm, commanding female narrator.", tags: ["Female", "Portuguese (BR)", "Dubbing"], provider: "seedaudio" },
5124
- { id: "pt_female_bv530_uranus_bigtts", name: "Sofia", description: "A gentle, soft, approachable, lively young woman.", tags: ["Female", "Portuguese (BR)"], provider: "seedaudio" },
5125
- { id: "pt_male_bv531_uranus_bigtts", name: "Arthur", description: "A rational, objective, steady, dependable middle-aged voice.", tags: ["Male", "Portuguese (BR)"], provider: "seedaudio" },
5126
- { id: "pt_female_mari_uranus_bigtts", name: "Mari", description: "A cheerful young woman with a hearty, gracious manner.", tags: ["Female", "Portuguese (BR)", "Education"], provider: "seedaudio" },
5127
- { id: "pt_male_rael_uranus_bigtts", name: "Rael", description: "A fresh, crisp, energetic, sunny young man.", tags: ["Male", "Portuguese (BR)"], provider: "seedaudio" },
5128
- { id: "ar_female_dina_uranus_bigtts", name: "Dina", description: "A warm, lively Egyptian woman versed in local culture.", tags: ["Female", "Arabic"], provider: "seedaudio" },
5129
- { id: "ar_female_fatma_uranus_bigtts", name: "Fatma", description: "A young woman with a gentle, tender voice for soft monologues.", tags: ["Female", "Arabic", "Entertainment"], provider: "seedaudio" },
5130
- { id: "ar_male_youssef_uranus_bigtts", name: "Youssef", description: "A calm, easygoing middle-aged man with a conversational manner.", tags: ["Male", "Arabic"], provider: "seedaudio" },
5131
- { id: "tl_female_annika_uranus_bigtts", name: "Annika", description: "An approachable young woman with an everyday-conversation quality.", tags: ["Female", "Filipino"], provider: "seedaudio" },
5132
- { id: "tl_male_ed_uranus_bigtts", name: "Ed", description: "An approachable, easygoing middle-aged male voice.", tags: ["Male", "Filipino"], provider: "seedaudio" },
5133
- { id: "tl_female_hervie_uranus_bigtts", name: "Hervie", description: "A professional, confident, engaging entertainment-news anchor.", tags: ["Female", "Filipino", "Audiobook"], provider: "seedaudio" },
5134
- { id: "ko_male_bv545_uranus_bigtts", name: "Jay", description: "A hearty young man with a true-to-life performance style.", tags: ["Male", "Korean"], provider: "seedaudio" },
5135
- { id: "ko_female_bv546_uranus_bigtts", name: "Momo", description: "A candid, lively young woman with an anime-drama style.", tags: ["Female", "Korean", "Dubbing"], provider: "seedaudio" },
5136
- { id: "ko_male_m03_uranus_bigtts", name: "Minho", description: "A standard, professional Korean narrator with a magnetic voice.", tags: ["Male", "Korean"], provider: "seedaudio" },
5137
- { id: "ko_male_shane_uranus_bigtts", name: "Shane", description: "A steady, refined, persuasive middle-aged uncle.", tags: ["Male", "Korean"], provider: "seedaudio" },
5138
- { id: "ms_male_ham_uranus_bigtts", name: "Ham", description: "A steady, easygoing uncle skilled at analysis and explanation.", tags: ["Male", "Malay"], provider: "seedaudio" },
5139
- { id: "ms_male_naim_uranus_bigtts", name: "Naim", description: "A gentle, refined, calm, dependable middle-aged uncle.", tags: ["Male", "Malay"], provider: "seedaudio" },
5140
- { id: "ru_female_af07_uranus_bigtts", name: "Amelia", description: "A gentle, approachable, understanding, graceful young woman.", tags: ["Female", "Russian", "Audiobook"], provider: "seedaudio" },
5141
- { id: "ru_female_irinae_uranus_bigtts", name: "Irinae", description: "An enthusiastic young woman with rich, expressive emotion.", tags: ["Female", "Russian", "Audiobook"], provider: "seedaudio" },
5142
- { id: "ru_male_pavel_uranus_bigtts", name: "Pavel", description: "A middle-aged voice with a natural, comfortable narrative tone.", tags: ["Male", "Russian"], provider: "seedaudio" },
5143
- { id: "ru_female_sophie_uranus_bigtts", name: "Ksenia", description: "A young female voice full of energy and warmth.", tags: ["Female", "Russian"], provider: "seedaudio" },
5144
- { id: "ru_male_vlad_uranus_bigtts", name: "Silas", description: "A soft-spoken, gentle, calm, even-tempered young man.", tags: ["Male", "Russian", "Entertainment"], provider: "seedaudio" },
5145
- { id: "th_female_bv568_angry_uranus_bigtts", name: "Valeria", description: "A domineering female lead with highly expressive emotion.", tags: ["Female", "Thai", "Education"], provider: "seedaudio" },
5146
- { id: "th_female_bv568_fear_uranus_bigtts", name: "Iris", description: "An anxious, fearful, emotionally fragile young woman.", tags: ["Female", "Thai", "Audiobook"], provider: "seedaudio" },
5147
- { id: "th_female_bv568_happy_uranus_bigtts", name: "Zara", description: "A young woman full of emotion with dramatic/animation dubbing.", tags: ["Female", "Thai"], provider: "seedaudio" },
5148
- { id: "th_female_bv568_hate_uranus_bigtts", name: "Valentina", description: "A female lead with strong dramatic tension and expressive emotion.", tags: ["Female", "Thai"], provider: "seedaudio" },
5149
- { id: "th_female_bv568_neutral_uranus_bigtts", name: "Mildred", description: "A calm, even-tempered young woman with balanced, neutral emotion.", tags: ["Female", "Thai"], provider: "seedaudio" },
5150
- { id: "th_female_bv568_sad_uranus_bigtts", name: "Lydia", description: "A gentle, melancholic young woman with a strong narrative sense.", tags: ["Female", "Thai", "Dubbing"], provider: "seedaudio" },
5151
- { id: "th_female_bv568_suprise_uranus_bigtts", name: "Phoebe", description: "A lively, vivid-minded young woman with a playful air.", tags: ["Female", "Thai", "Audiobook"], provider: "seedaudio" },
5152
- { id: "vi_female_hong_uranus_bigtts", name: "Hong", description: "A straightforward young woman with frank emotional expression.", tags: ["Female", "Vietnamese"], provider: "seedaudio" },
5153
- { id: "vi_female_ling_uranus_bigtts", name: "Ling", description: "A tender, kind, earnest, dependable young woman.", tags: ["Female", "Vietnamese"], provider: "seedaudio" },
5154
- { id: "vi_female_linh_uranus_bigtts", name: "Linh", description: "A straightforward, candid young woman, crisp and decisive.", tags: ["Female", "Vietnamese", "Dubbing"], provider: "seedaudio" },
5155
- { id: "vi_female_partner_uranus_bigtts", name: "Partner", description: "A young woman with intense, full emotion and youthful vitality.", tags: ["Female", "Vietnamese", "Dubbing"], provider: "seedaudio" },
5156
- { id: "vi_female_ruan_uranus_bigtts", name: "Ruan", description: "A steady, clear-minded, dignified, poised young woman.", tags: ["Female", "Vietnamese"], provider: "seedaudio" },
5157
- { id: "vi_female_wu_uranus_bigtts", name: "Wu", description: "A straightforward, outgoing young woman with a rational mindset.", tags: ["Female", "Vietnamese"], provider: "seedaudio" },
5158
- { id: "vi_male_wumg_uranus_bigtts", name: "Wumg", description: "A modest, patient, rigorous, meticulous young man.", tags: ["Male", "Vietnamese"], provider: "seedaudio" }
5159
- ];
5160
- var SEEDAUDIO_VOICES = [
5161
- ...SEEDAUDIO_EN_ZH_VOICES,
5162
- ...SEEDAUDIO_OTHER_LANGUAGE_VOICES
5163
- ];
4714
+ function getVoiceById(id, extra) {
4715
+ return [...extra ?? [], ...getHydratedVoices()].find((v) => v.id === id);
4716
+ }
5164
4717
 
5165
4718
  // src/vendors/catalog/seedaudio.ts
5166
4719
  var REF_MUTEX_REASON = "A named voice and audio/image references cannot be combined.";
5167
- var seedAudioParams = (voices) => ({
4720
+ var seedAudioParams = (catalogModelId) => ({
5168
4721
  ...params.prompt({ maxLength: 3e3 }),
5169
4722
  // Voice: a named BytePlus voice (default), OR clone from up to 3 reference
5170
4723
  // audios, OR one image reference. The three are mutually exclusive; the
5171
4724
  // payload builder prioritizes an uploaded reference over the named voice.
5172
- ...params.voiceId(voices, SEEDAUDIO_DEFAULT_VOICE_ID),
4725
+ ...params.voiceId(
4726
+ [],
4727
+ SEEDAUDIO_DEFAULT_VOICE_ID,
4728
+ { catalog: { workflow: "bytedance/v1/catalog/voices", modelId: catalogModelId } }
4729
+ ),
5173
4730
  ...params.audioInputs(3, "Reference Audios"),
5174
4731
  ...params.imageInput(1, "Reference Image", false),
5175
4732
  // Output audio configuration (nested under `audio_config` at the wire).
@@ -5205,7 +4762,7 @@ var { MODELS: MODELS15 } = defineModels("seedaudio", [
5205
4762
  feat("Voice Cloning", "characteristic"),
5206
4763
  feat("Reference Audio", "audio")
5207
4764
  ],
5208
- paramConfig: seedAudioParams(SEEDAUDIO_VOICES),
4765
+ paramConfig: seedAudioParams("seed-audio-1.0-multilingual"),
5209
4766
  constraints: refMutexConstraints
5210
4767
  },
5211
4768
  {
@@ -5218,7 +4775,7 @@ var { MODELS: MODELS15 } = defineModels("seedaudio", [
5218
4775
  inputType: "tts",
5219
4776
  description: "Synthesize natural English or Chinese speech \u2014 pick a named voice or clone one from a reference audio.",
5220
4777
  features: [feat("Voice Cloning", "characteristic"), feat("Reference Audio", "audio")],
5221
- paramConfig: seedAudioParams(SEEDAUDIO_EN_ZH_VOICES),
4778
+ paramConfig: seedAudioParams("seed-audio-1.0"),
5222
4779
  constraints: refMutexConstraints
5223
4780
  }
5224
4781
  ]);
@@ -5507,7 +5064,7 @@ var { MODELS: MODELS17 } = defineModels("grok", [
5507
5064
  paramConfig: {
5508
5065
  ...params.language(true),
5509
5066
  ...params.prompt({ maxLength: 15e3 }),
5510
- ...params.voiceId(GROK_VOICES, DEFAULT_GROK_VOICE_ID)
5067
+ ...params.voiceId([], DEFAULT_GROK_VOICE_ID, { catalog: { workflow: "x-ai/v1/catalog/voices" } })
5511
5068
  }
5512
5069
  }
5513
5070
  ]);
@@ -5734,38 +5291,6 @@ var RUNWAY_AVATAR_PRESETS = [
5734
5291
  "Fashion Designer",
5735
5292
  "Cooking Teacher"
5736
5293
  ].map((name) => ({ id: name.toLowerCase().replace(/ /g, "-"), label: name }));
5737
- var RUNWAY_VOICE_PRESETS = [
5738
- "Victoria",
5739
- "Vincent",
5740
- "Clara",
5741
- "Drew",
5742
- "Skye",
5743
- "Max",
5744
- "Morgan",
5745
- "Felix",
5746
- "Mia",
5747
- "Marcus",
5748
- "Summer",
5749
- "Ruby",
5750
- "Aurora",
5751
- "Jasper",
5752
- "Leo",
5753
- "Adrian",
5754
- "Nina",
5755
- "Emma",
5756
- "Blake",
5757
- "David",
5758
- "Maya",
5759
- "Nathan",
5760
- "Sam",
5761
- "Georgia",
5762
- "Petra",
5763
- "Adam",
5764
- "Zach",
5765
- "Violet",
5766
- "Roman",
5767
- "Luna"
5768
- ].map((name) => ({ id: name.toLowerCase(), name, description: "", tags: [], provider: "runway" }));
5769
5294
  var RUNWAY_RATIO_MAP = {
5770
5295
  "16:9": "1280:720",
5771
5296
  "9:16": "720:1280"
@@ -5854,7 +5379,7 @@ var { MODELS: MODELS20 } = defineModels("runway", [
5854
5379
  features: [feat("Audio Input", "audio")],
5855
5380
  paramConfig: {
5856
5381
  ...params.style(RUNWAY_AVATAR_PRESETS, "game-character"),
5857
- ...params.voiceId(RUNWAY_VOICE_PRESETS, "victoria"),
5382
+ ...params.voiceId([], "victoria", { catalog: { workflow: "runway/v1/catalog/voices" } }),
5858
5383
  ...params.prompt({ maxLength: 1500, placeholder: "Write the script your avatar will speak...", required: false }),
5859
5384
  ...params.audioInput("Audio Track")
5860
5385
  }
@@ -6355,7 +5880,7 @@ var { MODELS: MODELS22 } = defineModels("google", [
6355
5880
  // 6,000 boundary-verified against the live gemini/v1/audios worker
6356
5881
  // (accepts >5,000; see scripts/api-tests/audio-charlimit-boundary-probe.mjs).
6357
5882
  ...params.prompt({ maxLength: 6e3 }),
6358
- ...params.voiceId(GEMINI_VOICES, GEMINI_DEFAULT_VOICE_ID)
5883
+ ...params.voiceId([], GEMINI_DEFAULT_VOICE_ID, { catalog: { workflow: "gemini/v1/catalog/voices" } })
6359
5884
  }
6360
5885
  },
6361
5886
  {
@@ -6376,7 +5901,7 @@ var { MODELS: MODELS22 } = defineModels("google", [
6376
5901
  // 6,000 boundary-verified against the live gemini/v1/audios worker
6377
5902
  // (accepts >5,000; see scripts/api-tests/audio-charlimit-boundary-probe.mjs).
6378
5903
  ...params.prompt({ maxLength: 6e3 }),
6379
- ...params.voiceId(GEMINI_VOICES, GEMINI_DEFAULT_VOICE_ID)
5904
+ ...params.voiceId([], GEMINI_DEFAULT_VOICE_ID, { catalog: { workflow: "gemini/v1/catalog/voices" } })
6380
5905
  }
6381
5906
  },
6382
5907
  // ── Video ─────────────────────────────────────────────────────────
@@ -6499,14 +6024,6 @@ var gptImageBgConstraints = [
6499
6024
  then: { outputFormat: { allowed: ["png", "webp"], reason: "Transparent background needs PNG or WEBP \u2014 JPEG has no alpha channel." } }
6500
6025
  }
6501
6026
  ];
6502
- var buildOpenAITTSPayload = (ctx) => ({
6503
- prompt: ctx.prompt,
6504
- voice: ctx.voiceId ?? "alloy"
6505
- });
6506
- var ttsParamConfig = {
6507
- ...params.prompt({ maxLength: 4096 }),
6508
- ...params.voiceId(OPENAI_VOICES, OPENAI_DEFAULT_VOICE_ID)
6509
- };
6510
6027
  var { MODELS: MODELS23 } = defineModels("openai", [
6511
6028
  // ── Image ─────────────────────────────────────────
6512
6029
  {
@@ -6586,37 +6103,6 @@ var { MODELS: MODELS23 } = defineModels("openai", [
6586
6103
  ...params.imageInput(5, "Source Images")
6587
6104
  },
6588
6105
  constraints: gptImageBgConstraints
6589
- },
6590
- // ── Audio ──────────────────────────────────────────
6591
- {
6592
- id: "openai-tts-1",
6593
- name: "OpenAI TTS-1",
6594
- modelId: "tts-1",
6595
- addedAt: "2026-02-15",
6596
- workflow: "openai/tts/v1",
6597
- buildPayload: (ctx) => ({ ...buildOpenAITTSPayload(ctx), model: "tts-1" }),
6598
- estimatedTime: 15,
6599
- mode: "audio",
6600
- inputType: "tts",
6601
- deprecated: true,
6602
- description: "Fast and affordable text-to-speech with natural voice output.",
6603
- features: [feat("Fast", "characteristic"), feat("11 Voices", "characteristic")],
6604
- paramConfig: ttsParamConfig
6605
- },
6606
- {
6607
- id: "openai-tts-1-hd",
6608
- name: "OpenAI TTS-1 HD",
6609
- modelId: "tts-1-hd",
6610
- addedAt: "2026-02-15",
6611
- workflow: "openai/tts/v1",
6612
- buildPayload: (ctx) => ({ ...buildOpenAITTSPayload(ctx), model: "tts-1-hd" }),
6613
- estimatedTime: 15,
6614
- mode: "audio",
6615
- inputType: "tts",
6616
- deprecated: true,
6617
- description: "High-definition text-to-speech with richer, more natural audio quality.",
6618
- features: [feat("HD Quality", "quality"), feat("11 Voices", "characteristic")],
6619
- paramConfig: ttsParamConfig
6620
6106
  }
6621
6107
  ]);
6622
6108
 
@@ -6654,10 +6140,10 @@ var buildElevenLabsVoiceDesignPayload = (ctx) => ({
6654
6140
  auto_generate_text: true,
6655
6141
  ...ctx.modelId ? { model_id: ctx.modelId } : {}
6656
6142
  });
6657
- var ttsParamConfig2 = (promptMaxLength) => ({
6143
+ var ttsParamConfig = (promptMaxLength) => ({
6658
6144
  ...params.language(true),
6659
6145
  ...params.prompt({ maxLength: promptMaxLength }),
6660
- ...params.voiceId(ELEVENLABS_VOICES, DEFAULT_VOICE_ID)
6146
+ ...params.voiceId([], DEFAULT_VOICE_ID, { catalog: { workflow: "elevenlabs/v1/catalog/voices" } })
6661
6147
  });
6662
6148
  var { MODELS: MODELS24 } = defineModels("elevenlabs", [
6663
6149
  // ── TTS ───────────────────────────────────────────────────────────
@@ -6674,7 +6160,7 @@ var { MODELS: MODELS24 } = defineModels("elevenlabs", [
6674
6160
  badge: ["popular"],
6675
6161
  description: "Latest voice engine with expanded tone and pacing control.",
6676
6162
  features: [feat("Experimental", "characteristic"), feat("Creative Control", "characteristic")],
6677
- paramConfig: ttsParamConfig2(5e3)
6163
+ paramConfig: ttsParamConfig(5e3)
6678
6164
  },
6679
6165
  {
6680
6166
  id: "eleven-multilingual-v2",
@@ -6689,7 +6175,7 @@ var { MODELS: MODELS24 } = defineModels("elevenlabs", [
6689
6175
  badge: ["popular", "fast"],
6690
6176
  description: "Stable multilingual speech across 29+ languages with natural rhythm.",
6691
6177
  features: [feat("Stable", "characteristic"), feat("Professional", "characteristic")],
6692
- paramConfig: ttsParamConfig2(1e4)
6178
+ paramConfig: ttsParamConfig(1e4)
6693
6179
  },
6694
6180
  // ── Sound Effects ─────────────────────────────────────────────────
6695
6181
  {
@@ -6740,7 +6226,7 @@ var { MODELS: MODELS24 } = defineModels("elevenlabs", [
6740
6226
  features: [feat("Voice Changer", "characteristic"), feat("Emotion Preserved", "characteristic")],
6741
6227
  paramConfig: {
6742
6228
  ...params.audioInput("Speech Audio", true),
6743
- ...params.voiceId(ELEVENLABS_VOICES, DEFAULT_VOICE_ID),
6229
+ ...params.voiceId([], DEFAULT_VOICE_ID, { catalog: { workflow: "elevenlabs/v1/catalog/voices" } }),
6744
6230
  ...p.boolean("removeBackgroundNoise", false, "Remove Background Noise")
6745
6231
  }
6746
6232
  },
@@ -6758,7 +6244,7 @@ var { MODELS: MODELS24 } = defineModels("elevenlabs", [
6758
6244
  features: [feat("Voice Changer", "characteristic"), feat("Multilingual", "characteristic"), feat("29 Languages", "characteristic")],
6759
6245
  paramConfig: {
6760
6246
  ...params.audioInput("Speech Audio", true),
6761
- ...params.voiceId(ELEVENLABS_VOICES, DEFAULT_VOICE_ID),
6247
+ ...params.voiceId([], DEFAULT_VOICE_ID, { catalog: { workflow: "elevenlabs/v1/catalog/voices" } }),
6762
6248
  ...params.language(true),
6763
6249
  ...p.boolean("removeBackgroundNoise", false, "Remove Background Noise")
6764
6250
  }
@@ -6807,7 +6293,7 @@ var { MODELS: MODELS24 } = defineModels("elevenlabs", [
6807
6293
  description: "Remix voice characteristics by describing the desired vocal style.",
6808
6294
  features: [feat("Voice Design", "characteristic"), feat("Remix", "characteristic")],
6809
6295
  paramConfig: {
6810
- ...params.voiceId(ELEVENLABS_VOICES, DEFAULT_VOICE_ID),
6296
+ ...params.voiceId([], DEFAULT_VOICE_ID, { catalog: { workflow: "elevenlabs/v1/catalog/voices" } }),
6811
6297
  ...params.prompt({ maxLength: 1e3 })
6812
6298
  }
6813
6299
  },
@@ -6881,7 +6367,10 @@ var buildHeyGenVideoAvatarPayload = (ctx) => ({
6881
6367
  ...ctx.aspectRatio ? { aspect_ratio: ctx.aspectRatio } : {}
6882
6368
  });
6883
6369
  var dynamicVoiceConfig = {
6884
- ...params.voiceId([], "", { required: true })
6370
+ ...params.voiceId([], "", {
6371
+ required: true,
6372
+ catalog: { workflow: "heygen/v1/catalog/voices" }
6373
+ })
6885
6374
  };
6886
6375
  var { MODELS: MODELS25 } = defineModels("heygen", [
6887
6376
  // ── Photo Avatar (i2v) ────────────────────────────────────────────
@@ -6927,7 +6416,10 @@ var { MODELS: MODELS25 } = defineModels("heygen", [
6927
6416
  feat("Lip Sync", "characteristic")
6928
6417
  ],
6929
6418
  paramConfig: {
6930
- ...params.videoId([], "", { required: true }),
6419
+ ...params.videoId([], "", {
6420
+ required: true,
6421
+ catalog: { workflow: "heygen/v1/catalog/avatars" }
6422
+ }),
6931
6423
  ...params.resolution(["4k", "1080p", "720p"], "720p"),
6932
6424
  ...params.aspectRatio(["16:9", "9:16"]),
6933
6425
  ...dynamicVoiceConfig,
@@ -8678,7 +8170,7 @@ var { MODELS: MODELS36 } = defineModels("async", [
8678
8170
  features: [feat("Text to Speech", "characteristic"), feat("Fast", "characteristic")],
8679
8171
  paramConfig: {
8680
8172
  ...params.prompt(),
8681
- ...params.voiceId(ASYNC_VOICES, ASYNC_DEFAULT_VOICE_ID),
8173
+ ...params.voiceId([], ASYNC_DEFAULT_VOICE_ID, { catalog: { workflow: "async-ai/v1/catalog/voices" } }),
8682
8174
  ...p.enum("container", ["mp3", "wav", "raw"], "mp3", { label: "Audio Format" }),
8683
8175
  ...p.range("sampleRate", 8e3, 48e3, 24e3, { label: "Sample Rate" }),
8684
8176
  // encoding ignored when container is mp3
@@ -10246,6 +9738,147 @@ function createApis(config) {
10246
9738
  };
10247
9739
  }
10248
9740
 
9741
+ // src/client/catalogs.ts
9742
+ var DEFAULT_LIMIT = 100;
9743
+ var MIN_TTL_SECONDS = 60;
9744
+ var PARAM_KEY = {
9745
+ voices: "voiceId",
9746
+ avatars: "videoId"
9747
+ };
9748
+ var copyPage = (page) => ({
9749
+ items: [...page.items],
9750
+ nextCursor: page.nextCursor
9751
+ });
9752
+ var abortError = (signal) => signal.reason ?? new DOMException("The catalog load was aborted.", "AbortError");
9753
+ function abortable(promise, signal) {
9754
+ if (!signal) return promise;
9755
+ if (signal.aborted) return Promise.reject(abortError(signal));
9756
+ return new Promise((resolve, reject) => {
9757
+ const onAbort = () => reject(abortError(signal));
9758
+ signal.addEventListener("abort", onAbort, { once: true });
9759
+ const settle = () => signal.removeEventListener("abort", onAbort);
9760
+ promise.then(
9761
+ (value) => {
9762
+ settle();
9763
+ resolve(value);
9764
+ },
9765
+ (err) => {
9766
+ settle();
9767
+ reject(err);
9768
+ }
9769
+ );
9770
+ });
9771
+ }
9772
+ function createCatalogs(transport, options) {
9773
+ const stores = /* @__PURE__ */ new Map();
9774
+ const inflight = /* @__PURE__ */ new Map();
9775
+ const keyOf2 = (s) => `${s.workflow} ${s.modelId ?? ""}`;
9776
+ async function fetchPage(workflow, query) {
9777
+ const payload = {};
9778
+ if (query.modelId) payload.modelId = query.modelId;
9779
+ if (query.cursor) payload.cursor = query.cursor;
9780
+ if (query.limit) payload.limit = query.limit;
9781
+ const raw = await transport.execute({ workflow, payload });
9782
+ const container = raw?.response ?? raw;
9783
+ if (raw?.status === "error" || container?.status === "FAILED") {
9784
+ const message = container?.message ?? container?.error ?? raw?.message;
9785
+ throw new Error(`${workflow} failed${message ? `: ${String(message)}` : ""}`);
9786
+ }
9787
+ const result = container?.result;
9788
+ if (!result || !Array.isArray(result.items)) {
9789
+ throw new Error(`${workflow} returned no catalog result`);
9790
+ }
9791
+ return { ...result, nextCursor: result.nextCursor ?? null };
9792
+ }
9793
+ function storeFor(source, forceRefresh) {
9794
+ const key = keyOf2(source);
9795
+ let store = stores.get(key);
9796
+ if (!store) {
9797
+ store = { pages: /* @__PURE__ */ new Map(), version: "", expiresAt: 0, gen: 0 };
9798
+ stores.set(key, store);
9799
+ return store;
9800
+ }
9801
+ if (forceRefresh || store.expiresAt !== 0 && store.expiresAt <= Date.now()) {
9802
+ store.pages.clear();
9803
+ store.version = "";
9804
+ store.expiresAt = 0;
9805
+ store.gen += 1;
9806
+ }
9807
+ return store;
9808
+ }
9809
+ function accumulated(store) {
9810
+ const byId = /* @__PURE__ */ new Map();
9811
+ for (const page of store.pages.values()) {
9812
+ for (const item of page.items) byId.set(item.id, item);
9813
+ }
9814
+ return [...byId.values()];
9815
+ }
9816
+ async function loadPage(def, kind, source, options2) {
9817
+ const store = storeFor(source, options2?.forceRefresh);
9818
+ const cursorKey = options2?.cursor ?? "";
9819
+ const cached = store.pages.get(cursorKey);
9820
+ if (cached) return abortable(Promise.resolve(copyPage(cached)), options2?.signal);
9821
+ const inflightKey = `${keyOf2(source)} ${cursorKey}`;
9822
+ if (!options2?.forceRefresh) {
9823
+ const pending = inflight.get(inflightKey);
9824
+ if (pending) return abortable(pending.then(copyPage), options2?.signal);
9825
+ }
9826
+ const gen = store.gen;
9827
+ const run = fetchPage(source.workflow, {
9828
+ modelId: source.modelId,
9829
+ cursor: options2?.cursor,
9830
+ limit: options2?.limit ?? DEFAULT_LIMIT
9831
+ }).then((res) => {
9832
+ const page = { items: res.items, nextCursor: res.nextCursor };
9833
+ if (store.gen === gen) {
9834
+ store.pages.set(cursorKey, page);
9835
+ store.version = res.version;
9836
+ if (store.expiresAt === 0) {
9837
+ store.expiresAt = Date.now() + Math.max(MIN_TTL_SECONDS, res.ttlSeconds || 0) * 1e3;
9838
+ }
9839
+ installHydratedCatalog(source, kind, accumulated(store), def.provider, store.version);
9840
+ }
9841
+ return page;
9842
+ }).finally(() => {
9843
+ if (inflight.get(inflightKey) === run) inflight.delete(inflightKey);
9844
+ });
9845
+ inflight.set(inflightKey, run);
9846
+ return abortable(run.then(copyPage), options2?.signal);
9847
+ }
9848
+ function requireSource(def, kind) {
9849
+ const d = def.paramConfig[PARAM_KEY[kind]]?.descriptor;
9850
+ const source = d?.kind === "catalog" ? d.source : void 0;
9851
+ if (!source) {
9852
+ throw new Error(`Model "${def.id}" has no runtime ${kind} catalog \u2014 its ${PARAM_KEY[kind]} options are static.`);
9853
+ }
9854
+ return source;
9855
+ }
9856
+ const client = {
9857
+ async voices(model, options2) {
9858
+ const def = resolveModel(model);
9859
+ return loadPage(def, "voices", requireSource(def, "voices"), options2);
9860
+ },
9861
+ async avatars(model, options2) {
9862
+ const def = resolveModel(model);
9863
+ return loadPage(def, "avatars", requireSource(def, "avatars"), options2);
9864
+ }
9865
+ };
9866
+ if (options?.preload) {
9867
+ const seen = /* @__PURE__ */ new Set();
9868
+ for (const def of ALL_MODELS) {
9869
+ for (const kind of ["voices", "avatars"]) {
9870
+ const d = def.paramConfig[PARAM_KEY[kind]]?.descriptor;
9871
+ const source = d?.kind === "catalog" ? d.source : void 0;
9872
+ if (!source || seen.has(keyOf2(source))) continue;
9873
+ seen.add(keyOf2(source));
9874
+ void loadPage(def, kind, source).catch(() => {
9875
+ });
9876
+ }
9877
+ }
9878
+ }
9879
+ return client;
9880
+ }
9881
+
10249
9882
  // src/client/index.ts
10250
9883
  function createClient(config) {
10251
9884
  const isConfig = isClientConfig(config);
@@ -10253,6 +9886,7 @@ function createClient(config) {
10253
9886
  const client = createWorkflowClient(transport, { pollingIntervalMs: 2e3 });
10254
9887
  const supportsSubmit = typeof transport.submit === "function";
10255
9888
  const apis = createApis(isConfig ? config : null);
9889
+ const catalogs = createCatalogs(transport, isConfig ? config.catalogs : void 0);
10256
9890
  const driveConfig = isConfig ? config.drive : void 0;
10257
9891
  const driveClient = isConfig && driveConfig ? createDriveClient(resolveFetch(config), config.apiUrl, driveConfig.folder) : null;
10258
9892
  async function executeModel(model, workflow, payload, signal) {
@@ -10405,6 +10039,9 @@ function createClient(config) {
10405
10039
  // ── apis (direct, low-level API access) ───────────────────────────
10406
10040
  /** Direct, low-level access to the Picsart model APIs. See `./apis.ts`. */
10407
10041
  apis,
10042
+ // ── Catalogs (voices / avatars) ──────────────────────────────────
10043
+ /** Voice/avatar catalogs — fetch, ttl-cache, hydrate model params. See `./catalogs.ts`. */
10044
+ catalogs,
10408
10045
  // ── Drive ────────────────────────────────────────────────────────
10409
10046
  /** Drive operations. Only available when drive config is provided. */
10410
10047
  drive: driveClient ?? void 0
@@ -10515,6 +10152,12 @@ function getCreditsForModel(modelId, ctx) {
10515
10152
  }
10516
10153
 
10517
10154
  // src/core/descriptors/model-accessor.ts
10155
+ function withHydration(entry, flat) {
10156
+ if (entry.descriptor.kind !== "catalog") return flat;
10157
+ const hydrated = getHydratedCatalog(entry.descriptor.source);
10158
+ if (!hydrated) return flat;
10159
+ return { ...flat, catalogOptions: hydrated.catalogOptions };
10160
+ }
10518
10161
  var ModelParamsAccessorImpl = class {
10519
10162
  def;
10520
10163
  constructor(def) {
@@ -10524,20 +10167,26 @@ var ModelParamsAccessorImpl = class {
10524
10167
  const entry = this.def.paramConfig[key];
10525
10168
  if (!entry) return void 0;
10526
10169
  const { descriptor, ...meta } = entry;
10527
- return { ...meta, ...descriptor };
10170
+ return withHydration(entry, { ...meta, ...descriptor });
10528
10171
  }
10529
10172
  hasParam(key) {
10530
10173
  return key in this.def.paramConfig;
10531
10174
  }
10532
10175
  all() {
10533
10176
  return Object.entries(this.def.paramConfig).map(
10534
- ([key, { descriptor, ...meta }]) => ({ key, ...meta, ...descriptor })
10177
+ ([key, entry]) => {
10178
+ const { descriptor, ...meta } = entry;
10179
+ return withHydration(entry, { key, ...meta, ...descriptor });
10180
+ }
10535
10181
  );
10536
10182
  }
10537
10183
  // Kind-narrowed accessors
10538
10184
  enum(key) {
10539
10185
  return this.narrow(key, "enum");
10540
10186
  }
10187
+ catalog(key) {
10188
+ return this.narrow(key, "catalog");
10189
+ }
10541
10190
  range(key) {
10542
10191
  return this.narrow(key, "range");
10543
10192
  }
@@ -10614,6 +10263,9 @@ var ConstrainedParamsAccessor = class {
10614
10263
  enum(key) {
10615
10264
  return this.applyEnum(key, this.inner.enum(key));
10616
10265
  }
10266
+ catalog(key) {
10267
+ return this.applyEntry(key, this.inner.catalog(key));
10268
+ }
10617
10269
  range(key) {
10618
10270
  return this.applyEntry(key, this.inner.range(key));
10619
10271
  }
@@ -10931,8 +10583,6 @@ var Lyria3Clip = "lyria-3-clip";
10931
10583
  var Lyria3Pro = "lyria-3-pro";
10932
10584
  var Minimax02Hd = "minimax-02-hd";
10933
10585
  var MinimaxMusicV2 = "minimax-music-v2";
10934
- var OpenaiTts1 = "openai-tts-1";
10935
- var OpenaiTts1Hd = "openai-tts-1-hd";
10936
10586
  var Ovi = "ovi";
10937
10587
  var PicsartChangeBg = "picsart-change-bg";
10938
10588
  var PicsartEnhance = "picsart-enhance";
@@ -11135,8 +10785,6 @@ var Models = {
11135
10785
  Lyria3Pro,
11136
10786
  Minimax02Hd,
11137
10787
  MinimaxMusicV2,
11138
- OpenaiTts1,
11139
- OpenaiTts1Hd,
11140
10788
  Ovi,
11141
10789
  PicsartChangeBg,
11142
10790
  PicsartEnhance,
@@ -11445,4 +11093,4 @@ function decodeDeepLinkPayload(encoded) {
11445
11093
  return deserializePayload(encoded);
11446
11094
  }
11447
11095
 
11448
- export { ALL_MODELS, ExecutionMode as ApiRunMode, DEFAULT_VISIBLE_RELEASES, KLING_DUAL_IMAGE_EFFECTS, Model, Models, buildFilename, buildGenerationAttributes, catalog, createClient, decodeDeepLinkPayload, encodeDeepLinkPayload, findModel, getModel, getModelsByMode, getVoiceById, inferResourceType, isVisibleForReleases, parseGeneration, releaseOf };
11096
+ export { ALL_MODELS, ExecutionMode as ApiRunMode, DEFAULT_VISIBLE_RELEASES, KLING_DUAL_IMAGE_EFFECTS, Model, Models, buildFilename, buildGenerationAttributes, catalog, createClient, decodeDeepLinkPayload, encodeDeepLinkPayload, findModel, getModel, getModelsByMode, getVoiceById, inferResourceType, isVisibleForReleases, parseGeneration, releaseOf, toAvatarOption, toVoiceOption };