fix: add tts mai voice 2 (#1754)

* fix(tts): add MAI Voice 2 options
This commit is contained in:
ananaBMaster
2026-06-27 23:16:05 -07:00
committed by GitHub
parent 1d8abce3c8
commit 18965e5e22
4 changed files with 59 additions and 2 deletions
+5
View File
@@ -0,0 +1,5 @@
---
"@read-frog/extension": patch
---
fix(tts): add MAI-Voice-2 options to the Edge TTS voice selector.
+1 -1
View File
@@ -9,4 +9,4 @@
## PR Notes
- PR titles must use conventional commit format, such as `fix(subtitles): ...`; avoid extra prefixes like `[codex]`.
- User-facing fixes and features should include a `.changeset/*.md` file for `@read-frog/extension` unless the change intentionally does not need a release.
- User-facing fixes and features should include a `.changeset/*.md` file for `@read-frog/extension` unless the change intentionally does not need a release. use conventional commit format for the changeset content.
+6 -1
View File
@@ -49,7 +49,7 @@ describe("tts config defaults", () => {
})
it("exposes a unique sorted voice list from voice metadata", () => {
expect(EDGE_TTS_VOICE_ITEMS).toHaveLength(584)
expect(EDGE_TTS_VOICE_ITEMS).toHaveLength(631)
expect(EDGE_TTS_VOICES).toEqual(EDGE_TTS_VOICE_ITEMS.map(item => item.voice))
expect(new Set(EDGE_TTS_VOICES).size).toBe(EDGE_TTS_VOICES.length)
expect(EDGE_TTS_VOICES).toEqual([...EDGE_TTS_VOICES].sort((a, b) => a.localeCompare(b)))
@@ -77,6 +77,11 @@ describe("tts config defaults", () => {
type: "Multilingual",
gender: "Female",
})
expect(getEdgeTTSVoiceItem("zh-CN-Mei:MAI-Voice-2")).toMatchObject({
language: "Chinese (Mandarin, Simplified)",
type: "Standard",
gender: "Female",
})
})
it("excludes Azure OpenAI voices that are not exposed by Edge consumer TTS", () => {
+47
View File
@@ -245,9 +245,11 @@ const EDGE_TTS_AZURE_VOICE_ITEMS: TTSVoiceItem[] = [
{ voice: "de-DE-KasperNeural", language: "German (Germany)", type: "Standard", gender: "Male" },
{ voice: "de-DE-KillianNeural", language: "German (Germany)", type: "Standard", gender: "Male" },
{ voice: "de-DE-KlarissaNeural", language: "German (Germany)", type: "Standard", gender: "Female" },
{ voice: "de-DE-Klaus:MAI-Voice-2", language: "German (Germany)", type: "Standard", gender: "Male" },
{ voice: "de-DE-KlausNeural", language: "German (Germany)", type: "Standard", gender: "Male" },
{ voice: "de-DE-LouisaNeural", language: "German (Germany)", type: "Standard", gender: "Female" },
{ voice: "de-DE-MajaNeural", language: "German (Germany)", type: "Standard", gender: "Female" },
{ voice: "de-DE-Mia:MAI-Voice-2", language: "German (Germany)", type: "Standard", gender: "Female" },
{ voice: "de-DE-RalfNeural", language: "German (Germany)", type: "Standard", gender: "Male" },
{ voice: "de-DE-TanjaNeural", language: "German (Germany)", type: "Standard", gender: "Female" },
{ voice: "el-GR-AthinaNeural", language: "Greek (Greece)", type: "Standard", gender: "Female" },
@@ -261,6 +263,7 @@ const EDGE_TTS_AZURE_VOICE_ITEMS: TTSVoiceItem[] = [
{ voice: "en-AU-DuncanNeural", language: "English (Australia)", type: "Standard", gender: "Male" },
{ voice: "en-AU-ElsieNeural", language: "English (Australia)", type: "Standard", gender: "Female" },
{ voice: "en-AU-FreyaNeural", language: "English (Australia)", type: "Standard", gender: "Female" },
{ voice: "en-AU-Isla:MAI-Voice-2", language: "English (Australia)", type: "Standard", gender: "Female" },
{ voice: "en-AU-JoanneNeural", language: "English (Australia)", type: "Standard", gender: "Female" },
{ voice: "en-AU-KenNeural", language: "English (Australia)", type: "Standard", gender: "Male" },
{ voice: "en-AU-KimNeural", language: "English (Australia)", type: "Standard", gender: "Female" },
@@ -413,11 +416,17 @@ const EDGE_TTS_AZURE_VOICE_ITEMS: TTSVoiceItem[] = [
{ voice: "en-US-Andrew3:DragonHDLatestNeural", language: "English (United States)", type: "Neural HD", gender: "Male" },
{ voice: "en-us-ava:DragonHDOmniLatestNeural", language: "English (United States)", type: "Neural HD Omni", gender: "Female" },
{ voice: "en-US-Ava3:DragonHDLatestNeural", language: "English (United States)", type: "Neural HD", gender: "Female" },
{ voice: "en-US-Ethan:MAI-Voice-2", language: "English (United States)", type: "Standard", gender: "Male" },
{ voice: "en-US-Grant:MAI-Voice-1", language: "English (United States)", type: "Standard", gender: "Neutral" },
{ voice: "en-US-Grant:MAI-Voice-2", language: "English (United States)", type: "Standard", gender: "Male" },
{ voice: "en-US-Harper:MAI-Voice-2", language: "English (United States)", type: "Standard", gender: "Female" },
{ voice: "en-US-Iris:MAI-Voice-1", language: "English (United States)", type: "Standard", gender: "Neutral" },
{ voice: "en-US-Iris:MAI-Voice-2", language: "English (United States)", type: "Standard", gender: "Female" },
{ voice: "en-US-Jasper:MAI-Voice-1", language: "English (United States)", type: "Standard", gender: "Neutral" },
{ voice: "en-US-Jasper:MAI-Voice-2", language: "English (United States)", type: "Standard", gender: "Male" },
{ voice: "en-US-Joy:MAI-Voice-1", language: "English (United States)", type: "Standard", gender: "Neutral" },
{ voice: "en-US-June:MAI-Voice-1", language: "English (United States)", type: "Standard", gender: "Neutral" },
{ voice: "en-US-Olivia:MAI-Voice-2", language: "English (United States)", type: "Standard", gender: "Female" },
{ voice: "en-US-Reed:MAI-Voice-1", language: "English (United States)", type: "Standard", gender: "Neutral" },
{ voice: "fr-Multitalker:DragonHDLatestNeural", language: "English (United States)", type: "Standard", gender: "Neutral" },
{ voice: "zh-Multitalker:DragonHDLatestNeural", language: "English (United States)", type: "Standard", gender: "Neutral" },
@@ -460,6 +469,7 @@ const EDGE_TTS_AZURE_VOICE_ITEMS: TTSVoiceItem[] = [
{ voice: "es-ES-TeoNeural", language: "Spanish (Spain)", type: "Standard", gender: "Male" },
{ voice: "es-ES-TrianaNeural", language: "Spanish (Spain)", type: "Standard", gender: "Female" },
{ voice: "es-ES-VeraNeural", language: "Spanish (Spain)", type: "Standard", gender: "Female" },
{ voice: "es-ES-Marta:MAI-Voice-2", language: "Spanish (Spain)", type: "Standard", gender: "Female" },
{ voice: "es-ES-XimenaNeural", language: "Spanish (Spain)", type: "Standard", gender: "Female" },
{ voice: "es-GQ-TeresaNeural", language: "Spanish (Equatorial Guinea)", type: "Standard", gender: "Female" },
{ voice: "es-GQ-JavierNeural", language: "Spanish (Equatorial Guinea)", type: "Standard", gender: "Male" },
@@ -473,6 +483,7 @@ const EDGE_TTS_AZURE_VOICE_ITEMS: TTSVoiceItem[] = [
{ voice: "es-MX-JorgeNeural", language: "Spanish (Mexico)", type: "Standard", gender: "Male" },
{ voice: "es-MX-DaliaMultilingualNeural", language: "Spanish (Mexico)", type: "Multilingual", gender: "Female" },
{ voice: "es-MX-JorgeMultilingualNeural", language: "Spanish (Mexico)", type: "Multilingual", gender: "Male" },
{ voice: "es-MX-Alejo:MAI-Voice-2", language: "Spanish (Mexico)", type: "Standard", gender: "Male" },
{ voice: "es-MX-BeatrizNeural", language: "Spanish (Mexico)", type: "Standard", gender: "Female" },
{ voice: "es-MX-CandelaNeural", language: "Spanish (Mexico)", type: "Standard", gender: "Female" },
{ voice: "es-MX-CarlotaNeural", language: "Spanish (Mexico)", type: "Standard", gender: "Female" },
@@ -485,6 +496,7 @@ const EDGE_TTS_AZURE_VOICE_ITEMS: TTSVoiceItem[] = [
{ voice: "es-MX-NuriaNeural", language: "Spanish (Mexico)", type: "Standard", gender: "Female" },
{ voice: "es-MX-PelayoNeural", language: "Spanish (Mexico)", type: "Standard", gender: "Male" },
{ voice: "es-MX-RenataNeural", language: "Spanish (Mexico)", type: "Standard", gender: "Female" },
{ voice: "es-MX-Valeria:MAI-Voice-2", language: "Spanish (Mexico)", type: "Standard", gender: "Female" },
{ voice: "es-MX-YagoNeural", language: "Spanish (Mexico)", type: "Standard", gender: "Male" },
{ voice: "es-NI-YolandaNeural", language: "Spanish (Nicaragua)", type: "Standard", gender: "Female" },
{ voice: "es-NI-FedericoNeural", language: "Spanish (Nicaragua)", type: "Standard", gender: "Male" },
@@ -541,7 +553,9 @@ const EDGE_TTS_AZURE_VOICE_ITEMS: TTSVoiceItem[] = [
{ voice: "fr-FR-JacquelineNeural", language: "French (France)", type: "Standard", gender: "Female" },
{ voice: "fr-FR-JeromeNeural", language: "French (France)", type: "Standard", gender: "Male" },
{ voice: "fr-FR-JosephineNeural", language: "French (France)", type: "Standard", gender: "Female" },
{ voice: "fr-FR-Marc:MAI-Voice-2", language: "French (France)", type: "Standard", gender: "Male" },
{ voice: "fr-FR-MauriceNeural", language: "French (France)", type: "Standard", gender: "Male" },
{ voice: "fr-FR-Soleil:MAI-Voice-2", language: "French (France)", type: "Standard", gender: "Female" },
{ voice: "fr-FR-YvesNeural", language: "French (France)", type: "Standard", gender: "Male" },
{ voice: "fr-FR-YvetteNeural", language: "French (France)", type: "Standard", gender: "Female" },
{ voice: "ga-IE-OrlaNeural", language: "Irish (Ireland)", type: "Standard", gender: "Female" },
@@ -555,15 +569,23 @@ const EDGE_TTS_AZURE_VOICE_ITEMS: TTSVoiceItem[] = [
{ voice: "hi-IN-AaravNeural", language: "Hindi (India)", type: "Standard", gender: "Male" },
{ voice: "hi-IN-AnanyaNeural", language: "Hindi (India)", type: "Standard", gender: "Female" },
{ voice: "hi-IN-AartiNeural", language: "Hindi (India)", type: "Standard", gender: "Female" },
{ voice: "hi-IN-Arjun:MAI-Voice-2", language: "Hindi (India)", type: "Standard", gender: "Male" },
{ voice: "hi-IN-ArjunNeural", language: "Hindi (India)", type: "Standard", gender: "Male" },
{ voice: "hi-IN-Dhruv:MAI-Voice-2", language: "Hindi (India)", type: "Standard", gender: "Male" },
{ voice: "hi-IN-Kavya:MAI-Voice-2", language: "Hindi (India)", type: "Standard", gender: "Female" },
{ voice: "hi-IN-KavyaNeural", language: "Hindi (India)", type: "Standard", gender: "Female" },
{ voice: "hi-IN-KunalNeural", language: "Hindi (India)", type: "Standard", gender: "Male" },
{ voice: "hi-IN-RehaanNeural", language: "Hindi (India)", type: "Standard", gender: "Male" },
{ voice: "hi-IN-Priya:MAI-Voice-2", language: "Hindi (India)", type: "Standard", gender: "Female" },
{ voice: "hi-IN-SwaraNeural", language: "Hindi (India)", type: "Standard", gender: "Female" },
{ voice: "hi-IN-MadhurNeural", language: "Hindi (India)", type: "Standard", gender: "Male" },
{ voice: "hr-HR-GabrijelaNeural", language: "Croatian (Croatia)", type: "Standard", gender: "Female" },
{ voice: "hr-HR-SreckoNeural", language: "Croatian (Croatia)", type: "Standard", gender: "Male" },
{ voice: "hu-HU-Bence:MAI-Voice-2", language: "Hungarian (Hungary)", type: "Standard", gender: "Male" },
{ voice: "hu-HU-Levente:MAI-Voice-2", language: "Hungarian (Hungary)", type: "Standard", gender: "Male" },
{ voice: "hu-HU-Lilla:MAI-Voice-2", language: "Hungarian (Hungary)", type: "Standard", gender: "Female" },
{ voice: "hu-HU-NoemiNeural", language: "Hungarian (Hungary)", type: "Standard", gender: "Female" },
{ voice: "hu-HU-Réka:MAI-Voice-2", language: "Hungarian (Hungary)", type: "Standard", gender: "Female" },
{ voice: "hu-HU-TamasNeural", language: "Hungarian (Hungary)", type: "Standard", gender: "Male" },
{ voice: "hy-AM-AnahitNeural", language: "Armenian (Armenia)", type: "Standard", gender: "Female" },
{ voice: "hy-AM-HaykNeural", language: "Armenian (Armenia)", type: "Standard", gender: "Male" },
@@ -590,9 +612,11 @@ const EDGE_TTS_AZURE_VOICE_ITEMS: TTSVoiceItem[] = [
{ voice: "it-IT-ImeldaNeural", language: "Italian (Italy)", type: "Standard", gender: "Female" },
{ voice: "it-IT-IrmaNeural", language: "Italian (Italy)", type: "Standard", gender: "Female" },
{ voice: "it-IT-LisandroNeural", language: "Italian (Italy)", type: "Standard", gender: "Male" },
{ voice: "it-IT-Luca:MAI-Voice-2", language: "Italian (Italy)", type: "Standard", gender: "Male" },
{ voice: "it-IT-PalmiraNeural", language: "Italian (Italy)", type: "Standard", gender: "Female" },
{ voice: "it-IT-PierinaNeural", language: "Italian (Italy)", type: "Standard", gender: "Female, Child" },
{ voice: "it-IT-RinaldoNeural", language: "Italian (Italy)", type: "Standard", gender: "Male" },
{ voice: "it-IT-Rosa:MAI-Voice-2", language: "Italian (Italy)", type: "Standard", gender: "Female" },
{ voice: "iu-Cans-CA-SiqiniqNeural", language: "Inuktitut (Syllabics, Canada)", type: "Standard", gender: "Female" },
{ voice: "iu-Cans-CA-TaqqiqNeural", language: "Inuktitut (Syllabics, Canada)", type: "Standard", gender: "Male" },
{ voice: "iu-Latn-CA-SiqiniqNeural", language: "Inuktitut (Latin, Canada)", type: "Standard", gender: "Female" },
@@ -624,8 +648,10 @@ const EDGE_TTS_AZURE_VOICE_ITEMS: TTSVoiceItem[] = [
{ voice: "ko-KR-HyunsuMultilingualNeural", language: "Korean (Korea)", type: "Multilingual", gender: "Male" },
{ voice: "ko-KR-BongJinNeural", language: "Korean (Korea)", type: "Standard", gender: "Male" },
{ voice: "ko-KR-GookMinNeural", language: "Korean (Korea)", type: "Standard", gender: "Male" },
{ voice: "ko-KR-Haena:MAI-Voice-2", language: "Korean (Korea)", type: "Standard", gender: "Female" },
{ voice: "ko-KR-HyunsuNeural", language: "Korean (Korea)", type: "Standard", gender: "Male" },
{ voice: "ko-KR-JiMinNeural", language: "Korean (Korea)", type: "Standard", gender: "Female" },
{ voice: "ko-KR-Junho:MAI-Voice-2", language: "Korean (Korea)", type: "Standard", gender: "Male" },
{ voice: "ko-KR-SeoHyeonNeural", language: "Korean (Korea)", type: "Standard", gender: "Female" },
{ voice: "ko-KR-SoonBokNeural", language: "Korean (Korea)", type: "Standard", gender: "Female" },
{ voice: "ko-KR-YuJinNeural", language: "Korean (Korea)", type: "Standard", gender: "Female" },
@@ -658,7 +684,9 @@ const EDGE_TTS_AZURE_VOICE_ITEMS: TTSVoiceItem[] = [
{ voice: "nl-BE-DenaNeural", language: "Dutch (Belgium)", type: "Standard", gender: "Female" },
{ voice: "nl-BE-ArnaudNeural", language: "Dutch (Belgium)", type: "Standard", gender: "Male" },
{ voice: "nl-NL-FennaNeural", language: "Dutch (Netherlands)", type: "Standard", gender: "Female" },
{ voice: "nl-NL-Fleur:MAI-Voice-2", language: "Dutch (Netherlands)", type: "Standard", gender: "Female" },
{ voice: "nl-NL-MaartenNeural", language: "Dutch (Netherlands)", type: "Standard", gender: "Male" },
{ voice: "nl-NL-Sander:MAI-Voice-2", language: "Dutch (Netherlands)", type: "Standard", gender: "Male" },
{ voice: "nl-NL-ColetteNeural", language: "Dutch (Netherlands)", type: "Standard", gender: "Female" },
{ voice: "or-IN-SubhasiniNeural", language: "Odia (India)", type: "Standard", gender: "Female" },
{ voice: "or-IN-SukantNeural", language: "Odia (India)", type: "Standard", gender: "Male" },
@@ -676,6 +704,7 @@ const EDGE_TTS_AZURE_VOICE_ITEMS: TTSVoiceItem[] = [
{ voice: "pt-BR-MacerioMultilingualNeural", language: "Portuguese (Brazil)", type: "Multilingual", gender: "Male" },
{ voice: "pt-BR-ThalitaMultilingualNeural", language: "Portuguese (Brazil)", type: "Multilingual", gender: "Female" },
{ voice: "pt-BR-BrendaNeural", language: "Portuguese (Brazil)", type: "Standard", gender: "Female" },
{ voice: "pt-BR-Caio:MAI-Voice-2", language: "Portuguese (Brazil)", type: "Standard", gender: "Male" },
{ voice: "pt-BR-DonatoNeural", language: "Portuguese (Brazil)", type: "Standard", gender: "Male" },
{ voice: "pt-BR-ElzaNeural", language: "Portuguese (Brazil)", type: "Standard", gender: "Female" },
{ voice: "pt-BR-FabioNeural", language: "Portuguese (Brazil)", type: "Standard", gender: "Male" },
@@ -684,16 +713,26 @@ const EDGE_TTS_AZURE_VOICE_ITEMS: TTSVoiceItem[] = [
{ voice: "pt-BR-JulioNeural", language: "Portuguese (Brazil)", type: "Standard", gender: "Male" },
{ voice: "pt-BR-LeilaNeural", language: "Portuguese (Brazil)", type: "Standard", gender: "Female" },
{ voice: "pt-BR-LeticiaNeural", language: "Portuguese (Brazil)", type: "Standard", gender: "Female, Child" },
{ voice: "pt-BR-Luana:MAI-Voice-2", language: "Portuguese (Brazil)", type: "Standard", gender: "Female" },
{ voice: "pt-BR-ManuelaNeural", language: "Portuguese (Brazil)", type: "Standard", gender: "Female" },
{ voice: "pt-BR-NicolauNeural", language: "Portuguese (Brazil)", type: "Standard", gender: "Male" },
{ voice: "pt-BR-Pedro:MAI-Voice-2", language: "Portuguese (Brazil)", type: "Standard", gender: "Male" },
{ voice: "pt-BR-Rafael:MAI-Voice-2", language: "Portuguese (Brazil)", type: "Standard", gender: "Male" },
{ voice: "pt-BR-ThalitaNeural", language: "Portuguese (Brazil)", type: "Standard", gender: "Female" },
{ voice: "pt-BR-ValerioNeural", language: "Portuguese (Brazil)", type: "Standard", gender: "Male" },
{ voice: "pt-BR-YaraNeural", language: "Portuguese (Brazil)", type: "Standard", gender: "Female" },
{ voice: "pt-PT-RaquelNeural", language: "Portuguese (Portugal)", type: "Standard", gender: "Female" },
{ voice: "pt-PT-DuarteNeural", language: "Portuguese (Portugal)", type: "Standard", gender: "Male" },
{ voice: "pt-PT-FernandaNeural", language: "Portuguese (Portugal)", type: "Standard", gender: "Female" },
{ voice: "pt-PT-Rui:MAI-Voice-2", language: "Portuguese (Portugal)", type: "Standard", gender: "Male" },
{ voice: "ro-RO-Andrei:MAI-Voice-2", language: "Romanian (Romania)", type: "Standard", gender: "Male" },
{ voice: "ro-RO-AlinaNeural", language: "Romanian (Romania)", type: "Standard", gender: "Female" },
{ voice: "ro-RO-Elena:MAI-Voice-2", language: "Romanian (Romania)", type: "Standard", gender: "Female" },
{ voice: "ro-RO-EmilNeural", language: "Romanian (Romania)", type: "Standard", gender: "Male" },
{ voice: "ro-RO-Ioana:MAI-Voice-2", language: "Romanian (Romania)", type: "Standard", gender: "Female" },
{ voice: "ro-RO-Radu:MAI-Voice-2", language: "Romanian (Romania)", type: "Standard", gender: "Male" },
{ voice: "ru-RU-Lev:MAI-Voice-2", language: "Russian (Russia)", type: "Standard", gender: "Male" },
{ voice: "ru-RU-Masha:MAI-Voice-2", language: "Russian (Russia)", type: "Standard", gender: "Female" },
{ voice: "ru-RU-SvetlanaNeural", language: "Russian (Russia)", type: "Standard", gender: "Female" },
{ voice: "ru-RU-DmitryNeural", language: "Russian (Russia)", type: "Standard", gender: "Male" },
{ voice: "ru-RU-DariyaNeural", language: "Russian (Russia)", type: "Standard", gender: "Female" },
@@ -730,11 +769,15 @@ const EDGE_TTS_AZURE_VOICE_ITEMS: TTSVoiceItem[] = [
{ voice: "ta-SG-AnbuNeural", language: "Tamil (Singapore)", type: "Standard", gender: "Male" },
{ voice: "te-IN-ShrutiNeural", language: "Telugu (India)", type: "Standard", gender: "Female" },
{ voice: "te-IN-MohanNeural", language: "Telugu (India)", type: "Standard", gender: "Male" },
{ voice: "th-TH-Krit:MAI-Voice-2", language: "Thai (Thailand)", type: "Standard", gender: "Male" },
{ voice: "th-TH-Nattapong:MAI-Voice-2", language: "Thai (Thailand)", type: "Standard", gender: "Male" },
{ voice: "th-TH-PremwadeeNeural", language: "Thai (Thailand)", type: "Standard", gender: "Female" },
{ voice: "th-TH-NiwatNeural", language: "Thai (Thailand)", type: "Standard", gender: "Male" },
{ voice: "th-TH-AcharaNeural", language: "Thai (Thailand)", type: "Standard", gender: "Female" },
{ voice: "tr-TR-EmelNeural", language: "Turkish (Türkiye)", type: "Standard", gender: "Female" },
{ voice: "tr-TR-AhmetNeural", language: "Turkish (Türkiye)", type: "Standard", gender: "Male" },
{ voice: "tr-TR-Aydın:MAI-Voice-2", language: "Turkish (Türkiye)", type: "Standard", gender: "Male" },
{ voice: "tr-TR-Elif:MAI-Voice-2", language: "Turkish (Türkiye)", type: "Standard", gender: "Female" },
{ voice: "uk-UA-PolinaNeural", language: "Ukrainian (Ukraine)", type: "Standard", gender: "Female" },
{ voice: "uk-UA-OstapNeural", language: "Ukrainian (Ukraine)", type: "Standard", gender: "Male" },
{ voice: "ur-IN-GulNeural", language: "Urdu (India)", type: "Standard", gender: "Female" },
@@ -757,6 +800,10 @@ const EDGE_TTS_AZURE_VOICE_ITEMS: TTSVoiceItem[] = [
{ voice: "zh-CN-Yunfan:DragonHDLatestNeural", language: "Chinese (Mandarin, Simplified)", type: "Neural HD", gender: "Male" },
{ voice: "zh-CN-Xiaoyue:DragonHDOmniLatestNeural", language: "Chinese (Mandarin, Simplified)", type: "Neural HD Omni", gender: "Female" },
{ voice: "zh-CN-Yunqi:DragonHDOmniLatestNeural", language: "Chinese (Mandarin, Simplified)", type: "Neural HD Omni", gender: "Male" },
{ voice: "zh-CN-Bo:MAI-Voice-2", language: "Chinese (Mandarin, Simplified)", type: "Standard", gender: "Male" },
{ voice: "zh-CN-Lan:MAI-Voice-2", language: "Chinese (Mandarin, Simplified)", type: "Standard", gender: "Female" },
{ voice: "zh-CN-Mei:MAI-Voice-2", language: "Chinese (Mandarin, Simplified)", type: "Standard", gender: "Female" },
{ voice: "zh-CN-Wei:MAI-Voice-2", language: "Chinese (Mandarin, Simplified)", type: "Standard", gender: "Male" },
{ voice: "zh-CN-XiaoxiaoNeural", language: "Chinese (Mandarin, Simplified)", type: "Standard", gender: "Female" },
{ voice: "zh-CN-YunxiNeural", language: "Chinese (Mandarin, Simplified)", type: "Standard", gender: "Male" },
{ voice: "zh-CN-YunjianNeural", language: "Chinese (Mandarin, Simplified)", type: "Standard", gender: "Male" },