Skip to content

Conversation

@Shoghy
Copy link
Contributor

@Shoghy Shoghy commented Dec 12, 2025

Matching the new data sent by the endpoint

Btw, this is a zod schema I did to validate the Voice data, just in case you want to add all the ContentCategories and VoicePersonalities available:

const voicesZod = z.strictObject({
  Name: z.string(),
  ShortName: z.string(),
  Gender: z.enum(["Male", "Female"]),
  Locale: z.string(),
  SuggestedCodec: z.string(),
  FriendlyName: z.string(),
  Status: z.enum(["GA", "Preview", "Deprecated"]),
  VoiceTag: z.strictObject({
    ContentCategories: z.array(
      z.enum([
        "General",
        "News",
        "Novel",
        " Novel", //Microsoft has a typo in the voice Microsoft Yunjian Online (Natural) - Chinese (Mainland) XDXDXDXD
        "Cartoon",
        "Sports",
        "Dialect",
        "Conversation",
        "Copilot",
      ]),
    ),
    VoicePersonalities: z.array(
      z.enum([
        "Friendly",
        "Positive",
        "Warm",
        "Lively",
        "Passion",
        "Cute",
        "Humorous",
        "Professional",
        "Reliable",
        "Expressive",
        "Caring",
        "Pleasant",
        "Confident",
        "Authentic",
        "Honest",
        "Rational",
        "Considerate",
        "Comfort",
        "Cheerful",
        "Clear",
        "Conversational",
        "Authority",
        "Approachable",
        "Casual",
        "Sincere",
        "Bright",
        "Sunshine",
      ]),
    ),
  }),
});

@rany2
Copy link
Owner

rany2 commented Dec 12, 2025

Thanks, good catch!

@rany2 rany2 merged commit 60453da into rany2:master Dec 12, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants