MICROSOFT_SUPPORTED_VOICES = [
    "af-ZA-AdriNeural",
    "af-ZA-WillemNeural",
    "am-ET-AmehaNeural",
    "am-ET-MekdesNeural",
    "ar-AE-FatimaNeural",
    "ar-AE-HamdanNeural",
    "ar-BH-AliNeural",
    "ar-BH-LailaNeural",
    "ar-DZ-AminaNeural",
    "ar-DZ-IsmaelNeural",
    "ar-EG-SalmaNeural",
    "ar-EG-ShakirNeural",
    "ar-IQ-BasselNeural",
    "ar-IQ-RanaNeural",
    "ar-JO-SanaNeural",
    "ar-JO-TaimNeural",
    "ar-KW-FahedNeural",
    "ar-KW-NouraNeural",
    "ar-LB-LaylaNeural",
    "ar-LB-RamiNeural",
    "ar-LY-ImanNeural",
    "ar-LY-OmarNeural",
    "ar-MA-JamalNeural",
    "ar-MA-MounaNeural",
    "ar-OM-AbdullahNeural",
    "ar-OM-AyshaNeural",
    "ar-QA-AmalNeural",
    "ar-QA-MoazNeural",
    "ar-SA-HamedNeural",
    "ar-SA-ZariyahNeural",
    "ar-SY-AmanyNeural",
    "ar-SY-LaithNeural",
    "ar-TN-HediNeural",
    "ar-TN-ReemNeural",
    "ar-YE-MaryamNeural",
    "ar-YE-SalehNeural",
    "az-AZ-BabekNeural",
    "az-AZ-BanuNeural",
    "bg-BG-BorislavNeural",
    "bg-BG-KalinaNeural",
    "bn-BD-NabanitaNeural",
    "bn-BD-PradeepNeural",
    "bn-IN-BashkarNeural",
    "bn-IN-TanishaaNeural",
    "bs-BA-GoranNeural",
    "bs-BA-VesnaNeural",
    "ca-ES-EnricNeural",
    "ca-ES-JoanaNeural",
    "cs-CZ-AntoninNeural",
    "cs-CZ-VlastaNeural",
    "cy-GB-AledNeural",
    "cy-GB-NiaNeural",
    "da-DK-ChristelNeural",
    "da-DK-JeppeNeural",
    "de-AT-IngridNeural",
    "de-AT-JonasNeural",
    "de-CH-JanNeural",
    "de-CH-LeniNeural",
    "de-DE-AmalaNeural",
    "de-DE-ConradNeural",
    "de-DE-FlorianMultilingualNeural",
    "de-DE-KatjaNeural",
    "de-DE-KillianNeural",
    "de-DE-SeraphinaMultilingualNeural",
    "el-GR-AthinaNeural",
    "el-GR-NestorasNeural",
    "en-AU-NatashaNeural",
    "en-AU-WilliamNeural",
    "en-CA-ClaraNeural",
    "en-CA-LiamNeural",
    "en-GB-LibbyNeural",
    "en-GB-MaisieNeural",
    "en-GB-RyanNeural",
    "en-GB-SoniaNeural",
    "en-GB-ThomasNeural",
    "en-HK-SamNeural",
    "en-HK-YanNeural",
    "en-IE-ConnorNeural",
    "en-IE-EmilyNeural",
    "en-IN-NeerjaExpressiveNeural",
    "en-IN-NeerjaNeural",
    "en-IN-PrabhatNeural",
    "en-KE-AsiliaNeural",
    "en-KE-ChilembaNeural",
    "en-NG-AbeoNeural",
    "en-NG-EzinneNeural",
    "en-NZ-MitchellNeural",
    "en-NZ-MollyNeural",
    "en-PH-JamesNeural",
    "en-PH-RosaNeural",
    "en-SG-LunaNeural",
    "en-SG-WayneNeural",
    "en-TZ-ElimuNeural",
    "en-TZ-ImaniNeural",
    "en-US-AnaNeural",
    "en-US-AndrewMultilingualNeural",
    "en-US-AndrewNeural",
    "en-US-AriaNeural",
    "en-US-AvaMultilingualNeural",
    "en-US-AvaNeural",
    "en-US-BrianMultilingualNeural",
    "en-US-BrianNeural",
    "en-US-ChristopherNeural",
    "en-US-EmmaMultilingualNeural",
    "en-US-EmmaNeural",
    "en-US-EricNeural",
    "en-US-GuyNeural",
    "en-US-JennyNeural",
    "en-US-MichelleNeural",
    "en-US-RogerNeural",
    "en-US-SteffanNeural",
    "en-ZA-LeahNeural",
    "en-ZA-LukeNeural",
    "es-AR-ElenaNeural",
    "es-AR-TomasNeural",
    "es-BO-MarceloNeural",
    "es-BO-SofiaNeural",
    "es-CL-CatalinaNeural",
    "es-CL-LorenzoNeural",
    "es-CO-GonzaloNeural",
    "es-CO-SalomeNeural",
    "es-CR-JuanNeural",
    "es-CR-MariaNeural",
    "es-CU-BelkysNeural",
    "es-CU-ManuelNeural",
    "es-DO-EmilioNeural",
    "es-DO-RamonaNeural",
    "es-EC-AndreaNeural",
    "es-EC-LuisNeural",
    "es-ES-AlvaroNeural",
    "es-ES-ElviraNeural",
    "es-ES-XimenaNeural",
    "es-GQ-JavierNeural",
    "es-GQ-TeresaNeural",
    "es-GT-AndresNeural",
    "es-GT-MartaNeural",
    "es-HN-CarlosNeural",
    "es-HN-KarlaNeural",
    "es-MX-DaliaNeural",
    "es-MX-JorgeNeural",
    "es-NI-FedericoNeural",
    "es-NI-YolandaNeural",
    "es-PA-MargaritaNeural",
    "es-PA-RobertoNeural",
    "es-PE-AlexNeural",
    "es-PE-CamilaNeural",
    "es-PR-KarinaNeural",
    "es-PR-VictorNeural",
    "es-PY-MarioNeural",
    "es-PY-TaniaNeural",
    "es-SV-LorenaNeural",
    "es-SV-RodrigoNeural",
    "es-US-AlonsoNeural",
    "es-US-PalomaNeural",
    "es-UY-MateoNeural",
    "es-UY-ValentinaNeural",
    "es-VE-PaolaNeural",
    "es-VE-SebastianNeural",
    "et-EE-AnuNeural",
    "et-EE-KertNeural",
    "fa-IR-DilaraNeural",
    "fa-IR-FaridNeural",
    "fi-FI-HarriNeural",
    "fi-FI-NooraNeural",
    "fil-PH-AngeloNeural",
    "fil-PH-BlessicaNeural",
    "fr-BE-CharlineNeural",
    "fr-BE-GerardNeural",
    "fr-CA-AntoineNeural",
    "fr-CA-JeanNeural",
    "fr-CA-SylvieNeural",
    "fr-CA-ThierryNeural",
    "fr-CH-ArianeNeural",
    "fr-CH-FabriceNeural",
    "fr-FR-DeniseNeural",
    "fr-FR-EloiseNeural",
    "fr-FR-HenriNeural",
    "fr-FR-RemyMultilingualNeural",
    "fr-FR-VivienneMultilingualNeural",
    "ga-IE-ColmNeural",
    "ga-IE-OrlaNeural",
    "gl-ES-RoiNeural",
    "gl-ES-SabelaNeural",
    "gu-IN-DhwaniNeural",
    "gu-IN-NiranjanNeural",
    "he-IL-AvriNeural",
    "he-IL-HilaNeural",
    "hi-IN-MadhurNeural",
    "hi-IN-SwaraNeural",
    "hr-HR-GabrijelaNeural",
    "hr-HR-SreckoNeural",
    "hu-HU-NoemiNeural",
    "hu-HU-TamasNeural",
    "id-ID-ArdiNeural",
    "id-ID-GadisNeural",
    "is-IS-GudrunNeural",
    "is-IS-GunnarNeural",
    "it-IT-DiegoNeural",
    "it-IT-ElsaNeural",
    "it-IT-GiuseppeNeural",
    "it-IT-IsabellaNeural",
    "ja-JP-KeitaNeural",
    "ja-JP-NanamiNeural",
    "jv-ID-DimasNeural",
    "jv-ID-SitiNeural",
    "ka-GE-EkaNeural",
    "ka-GE-GiorgiNeural",
    "kk-KZ-AigulNeural",
    "kk-KZ-DauletNeural",
    "km-KH-PisethNeural",
    "km-KH-SreymomNeural",
    "kn-IN-GaganNeural",
    "kn-IN-SapnaNeural",
    "ko-KR-HyunsuNeural",
    "ko-KR-InJoonNeural",
    "ko-KR-SunHiNeural",
    "lo-LA-ChanthavongNeural",
    "lo-LA-KeomanyNeural",
    "lt-LT-LeonasNeural",
    "lt-LT-OnaNeural",
    "lv-LV-EveritaNeural",
    "lv-LV-NilsNeural",
    "mk-MK-AleksandarNeural",
    "mk-MK-MarijaNeural",
    "ml-IN-MidhunNeural",
    "ml-IN-SobhanaNeural",
    "mn-MN-BataaNeural",
    "mn-MN-YesuiNeural",
    "mr-IN-AarohiNeural",
    "mr-IN-ManoharNeural",
    "ms-MY-OsmanNeural",
    "ms-MY-YasminNeural",
    "mt-MT-GraceNeural",
    "mt-MT-JosephNeural",
    "my-MM-NilarNeural",
    "my-MM-ThihaNeural",
    "nb-NO-FinnNeural",
    "nb-NO-PernilleNeural",
    "ne-NP-HemkalaNeural",
    "ne-NP-SagarNeural",
    "nl-BE-ArnaudNeural",
    "nl-BE-DenaNeural",
    "nl-NL-ColetteNeural",
    "nl-NL-FennaNeural",
    "nl-NL-MaartenNeural",
    "pl-PL-MarekNeural",
    "pl-PL-ZofiaNeural",
    "ps-AF-GulNawazNeural",
    "ps-AF-LatifaNeural",
    "pt-BR-AntonioNeural",
    "pt-BR-FranciscaNeural",
    "pt-BR-ThalitaNeural",
    "pt-PT-DuarteNeural",
    "pt-PT-RaquelNeural",
    "ro-RO-AlinaNeural",
    "ro-RO-EmilNeural",
    "ru-RU-DmitryNeural",
    "ru-RU-SvetlanaNeural",
    "si-LK-SameeraNeural",
    "si-LK-ThiliniNeural",
    "sk-SK-LukasNeural",
    "sk-SK-ViktoriaNeural",
    "sl-SI-PetraNeural",
    "sl-SI-RokNeural",
    "so-SO-MuuseNeural",
    "so-SO-UbaxNeural",
    "sq-AL-AnilaNeural",
    "sq-AL-IlirNeural",
    "sr-RS-NicholasNeural",
    "sr-RS-SophieNeural",
    "su-ID-JajangNeural",
    "su-ID-TutiNeural",
    "sv-SE-MattiasNeural",
    "sv-SE-SofieNeural",
    "sw-KE-RafikiNeural",
    "sw-KE-ZuriNeural",
    "sw-TZ-DaudiNeural",
    "sw-TZ-RehemaNeural",
    "ta-IN-PallaviNeural",
    "ta-IN-ValluvarNeural",
    "ta-LK-KumarNeural",
    "ta-LK-SaranyaNeural",
    "ta-MY-KaniNeural",
    "ta-MY-SuryaNeural",
    "ta-SG-AnbuNeural",
    "ta-SG-VenbaNeural",
    "te-IN-MohanNeural",
    "te-IN-ShrutiNeural",
    "th-TH-NiwatNeural",
    "th-TH-PremwadeeNeural",
    "tr-TR-AhmetNeural",
    "tr-TR-EmelNeural",
    "uk-UA-OstapNeural",
    "uk-UA-PolinaNeural",
    "ur-IN-GulNeural",
    "ur-IN-SalmanNeural",
    "ur-PK-AsadNeural",
    "ur-PK-UzmaNeural",
    "uz-UZ-MadinaNeural",
    "uz-UZ-SardorNeural",
    "vi-VN-HoaiMyNeural",
    "vi-VN-NamMinhNeural",
    "zh-CN-XiaoxiaoNeural",
    "zh-CN-XiaoyiNeural",
    "zh-CN-YunjianNeural",
    "zh-CN-YunxiNeural",
    "zh-CN-YunxiaNeural",
    "zh-CN-YunyangNeural",
    "zh-CN-liaoning-XiaobeiNeural",
    "zh-CN-shaanxi-XiaoniNeural",
    "zh-HK-HiuGaaiNeural",
    "zh-HK-HiuMaanNeural",
    "zh-HK-WanLungNeural",
    "zh-TW-HsiaoChenNeural",
    "zh-TW-HsiaoYuNeural",
    "zh-TW-YunJheNeural",
    "zu-ZA-ThandoNeural",
    "zu-ZA-ThembaNeural",
]
EDGE_SUPPORTED_VOICES = [*MICROSOFT_SUPPORTED_VOICES, "en-IN-NeerjaExpressiveNeural"]
AZURE_SUPPORTED_VOICES = [
    *MICROSOFT_SUPPORTED_VOICES,
    "ca-ES-AlbaNeural",
    "de-DE-BerndNeural",
    "de-DE-ChristophNeural",
    "de-DE-ElkeNeural",
    "de-DE-GiselaNeural",
    "de-DE-KasperNeural",
    "de-DE-KlarissaNeural",
    "de-DE-KlausNeural",
    "de-DE-LouisaNeural",
    "de-DE-MajaNeural",
    "de-DE-RalfNeural",
    "de-DE-TanjaNeural",
    "en-AU-AnnetteNeural",
    "en-AU-CarlyNeural",
    "en-AU-DarrenNeural",
    "en-AU-DuncanNeural",
    "en-AU-ElsieNeural",
    "en-AU-FreyaNeural",
    "en-AU-JoanneNeural",
    "en-AU-KenNeural",
    "en-AU-KimNeural",
    "en-AU-NeilNeural",
    "en-AU-TimNeural",
    "en-AU-TinaNeural",
    "en-GB-AbbiNeural",
    "en-GB-AlfieNeural",
    "en-GB-BellaNeural",
    "en-GB-ElliotNeural",
    "en-GB-EthanNeural",
    "en-GB-HollieNeural",
    "en-GB-NoahNeural",
    "en-GB-OliverNeural",
    "en-GB-OliviaNeural",
    "en-GB-MiaNeural",
    "en-IN-AaravNeural",
    "en-IN-AashiNeural",
    "en-IN-AnanyaNeural",
    "en-IN-KavyaNeural",
    "en-IN-KunalNeural",
    "en-IN-RehaanNeural",
    "en-US-DavisNeural",
    "en-US-JaneNeural",
    "en-US-JasonNeural",
    "en-US-SaraNeural",
    "en-US-TonyNeural",
    "en-US-NancyNeural",
    "en-US-AmberNeural",
    "en-US-AshleyNeural",
    "en-US-BrandonNeural",
    "en-US-CoraNeural",
    "en-US-ElizabethNeural",
    "en-US-JacobNeural",
    "en-US-JennyMultilingualNeural",
    "en-US-MonicaNeural",
    "en-US-RyanMultilingualNeural",
    "en-US-AIGenerate1Neural",
    "en-US-AIGenerate2Neural",
    "en-US-BlueNeural",
    "es-ES-AbrilNeural",
    "es-ES-ArnauNeural",
    "es-ES-DarioNeural",
    "es-ES-EliasNeural",
    "es-ES-EstrellaNeural",
    "es-ES-IreneNeural",
    "es-ES-LaiaNeural",
    "es-ES-LiaNeural",
    "es-ES-NilNeural",
    "es-ES-SaulNeural",
    "es-ES-TeoNeural",
    "es-ES-TrianaNeural",
    "es-ES-VeraNeural",
    "es-MX-BeatrizNeural",
    "es-MX-CandelaNeural",
    "es-MX-CarlotaNeural",
    "es-MX-CecilioNeural",
    "es-MX-GerardoNeural",
    "es-MX-LarissaNeural",
    "es-MX-LibertoNeural",
    "es-MX-LucianoNeural",
    "es-MX-MarinaNeural",
    "es-MX-NuriaNeural",
    "es-MX-PelayoNeural",
    "es-MX-RenataNeural",
    "es-MX-YagoNeural",
    "eu-ES-AinhoaNeural",
    "eu-ES-AnderNeural",
    "fi-FI-SelmaNeural",
    "fr-FR-AlainNeural",
    "fr-FR-BrigitteNeural",
    "fr-FR-CelesteNeural",
    "fr-FR-ClaudeNeural",
    "fr-FR-CoralieNeural",
    "fr-FR-JacquelineNeural",
    "fr-FR-JeromeNeural",
    "fr-FR-JosephineNeural",
    "fr-FR-MauriceNeural",
    "fr-FR-YvesNeural",
    "fr-FR-YvetteNeural",
    "hi-IN-AaravNeural",
    "hi-IN-AnanyaNeural",
    "hi-IN-KavyaNeural",
    "hi-IN-KunalNeural",
    "hi-IN-RehaanNeural",
    "hy-AM-AnahitNeural",
    "hy-AM-HaykNeural",
    "it-IT-BenignoNeural",
    "it-IT-CalimeroNeural",
    "it-IT-CataldoNeural",
    "it-IT-FabiolaNeural",
    "it-IT-FiammaNeural",
    "it-IT-GianniNeural",
    "it-IT-ImeldaNeural",
    "it-IT-IrmaNeural",
    "it-IT-LisandroNeural",
    "it-IT-PalmiraNeural",
    "it-IT-PierinaNeural",
    "it-IT-RinaldoNeural",
    "ja-JP-AoiNeural",
    "ja-JP-DaichiNeural",
    "ja-JP-MayuNeural",
    "ja-JP-NaokiNeural",
    "ja-JP-ShioriNeural",
    "ja-JP-MasaruMultilingualNeural",
    "ko-KR-BongJinNeural",
    "ko-KR-GookMinNeural",
    "ko-KR-JiMinNeural",
    "ko-KR-SeoHyeonNeural",
    "ko-KR-SoonBokNeural",
    "ko-KR-YuJinNeural",
    "nb-NO-IselinNeural",
    "pl-PL-AgnieszkaNeural",
    "pt-BR-BrendaNeural",
    "pt-BR-DonatoNeural",
    "pt-BR-ElzaNeural",
    "pt-BR-FabioNeural",
    "pt-BR-GiovannaNeural",
    "pt-BR-HumbertoNeural",
    "pt-BR-JulioNeural",
    "pt-BR-LeilaNeural",
    "pt-BR-LeticiaNeural",
    "pt-BR-ManuelaNeural",
    "pt-BR-NicolauNeural",
    "pt-BR-ValerioNeural",
    "pt-BR-YaraNeural",
    "pt-PT-FernandaNeural",
    "ru-RU-DariyaNeural",
    "sr-Latn-RS-NicholasNeural",
    "sr-Latn-RS-SophieNeural",
    "sv-SE-HilleviNeural",
    "th-TH-AcharaNeural",
    "wuu-CN-XiaotongNeural",
    "wuu-CN-YunzheNeural",
    "yue-CN-XiaoMinNeural",
    "yue-CN-YunSongNeural",
    "zh-CN-XiaochenNeural",
    "zh-CN-XiaohanNeural",
    "zh-CN-XiaomengNeural",
    "zh-CN-XiaomoNeural",
    "zh-CN-XiaoqiuNeural",
    "zh-CN-XiaoruiNeural",
    "zh-CN-XiaoshuangNeural",
    "zh-CN-XiaoxiaoMultilingualNeural",
    "zh-CN-XiaoyanNeural",
    "zh-CN-XiaoyouNeural",
    "zh-CN-XiaozhenNeural",
    "zh-CN-YunfengNeural",
    "zh-CN-YunhaoNeural",
    "zh-CN-YunyeNeural",
    "zh-CN-YunzeNeural",
    "zh-CN-XiaochenMultilingualNeural",
    "zh-CN-XiaorouNeural",
    "zh-CN-XiaoxiaoDialectsNeural",
    "zh-CN-XiaoyuMultilingualNeural",
    "zh-CN-YunjieNeural",
    "zh-CN-YunyiMultilingualNeural",
    "zh-CN-XiaoxuanNeural",
    "zh-CN-guangxi-YunqiNeural",
    "zh-CN-henan-YundengNeural",
    "zh-CN-liaoning-YunbiaoNeural",
    "zh-CN-shandong-YunxiangNeural",
    "zh-CN-sichuan-YunxiNeural",
]

VOLC_SUPPORTED_VOICES = [
    "zh_female_qingxin",
    "zh_male_chunhou",
    "zh_female_zhixing",
    "zh_male_qinqie",
    "zh_female_qiaopi",
    "zh_female_tianmei",
    "zh_male_novel_narration",
    "zh_male_changtianyi_xuanyi",
    "zh_female_sistermango",
    "zh_female_xiaoyue",
    "zh_female_changshengpopo",
    "zh_female_wuzetian",
    "zh_male_narration",
    "zh_female_xiaoqian",
    "zh_male_xiaojian",
    "zh_female_story",
    "zh_male_xiaohai",
    "zh_male_huoli",
    "zh_female_xiaopengyou",
    "zh_male_sunwukong_clone2",
    "zh_male_rap",
    "zh_male_rap_bgm_00",
    "zh_male_rap_bgm_01",
    "zh_female_sichuan",
    "zh_female_mengyatou",
    "zh_male_yuanqizhengtai",
    "zh_male_silang",
    "zh_male_xionger",
    "zh_female_guli",
    "zh_female_xiaowanzi",
    "zh_female_peiqi",
    "zh_male_liangjiahui",
    "zh_female_xiaoke",
    "zh_female_dblizhi",
    "zh_female_dbqiangshi",
    "zh_female_zhubo",
    "zh_male_zhubo",
    "zh_male_ad",
    "zh_male_commentate",
    "zh_male_inspirational",
    "zh_female_inspirational",
    "zh_male_xiaoming",
    "zh_male_dongyue_clone2",
    "zh_male_chunhui",
    "en_male_adam",
    "en_female_sarah",
    "en_male_dryw",
    "en_female_emotional",
    "en_male_narration",
    "en_male_funny",
    "en_male_mason",
    "en_male_ryan",
    "en_male_smith",
    "en_male_cody",
    "en_female_samc",
    "en_male_grinch",
    "en_male_wizard",
    "en_female_grandma",
    "en_female_richgirl",
    "en_male_cupid",
    "jp_female_hana",
    "jp_male_satoshi",
]
GOOGLE_SUPPORTED_VOICES = [
    "af-ZA-Standard-A",
    "am-ET-Standard-A",
    "am-ET-Standard-B",
    "am-ET-Wavenet-A",
    "am-ET-Wavenet-B",
    "ar-XA-Standard-A",
    "ar-XA-Standard-B",
    "ar-XA-Standard-C",
    "ar-XA-Standard-D",
    "ar-XA-Wavenet-A",
    "ar-XA-Wavenet-B",
    "ar-XA-Wavenet-C",
    "ar-XA-Wavenet-D",
    "bg-BG-Standard-A",
    "bn-IN-Standard-A",
    "bn-IN-Standard-B",
    "bn-IN-Standard-C",
    "bn-IN-Standard-D",
    "bn-IN-Wavenet-A",
    "bn-IN-Wavenet-B",
    "bn-IN-Wavenet-C",
    "bn-IN-Wavenet-D",
    "ca-ES-Standard-A",
    "cmn-CN-Standard-A",
    "cmn-CN-Standard-B",
    "cmn-CN-Standard-C",
    "cmn-CN-Standard-D",
    "cmn-CN-Wavenet-A",
    "cmn-CN-Wavenet-B",
    "cmn-CN-Wavenet-C",
    "cmn-CN-Wavenet-D",
    "cmn-TW-Standard-A",
    "cmn-TW-Standard-B",
    "cmn-TW-Standard-C",
    "cmn-TW-Wavenet-A",
    "cmn-TW-Wavenet-B",
    "cmn-TW-Wavenet-C",
    "cs-CZ-Standard-A",
    "cs-CZ-Wavenet-A",
    "da-DK-Neural2-D",
    "da-DK-Standard-A",
    "da-DK-Standard-C",
    "da-DK-Standard-D",
    "da-DK-Standard-E",
    "da-DK-Wavenet-A",
    "da-DK-Wavenet-C",
    "da-DK-Wavenet-D",
    "da-DK-Wavenet-E",
    "de-DE-Neural2-A",
    "de-DE-Neural2-B",
    "de-DE-Neural2-C",
    "de-DE-Neural2-D",
    "de-DE-Neural2-F",
    "de-DE-Polyglot-1",
    "de-DE-Standard-A",
    "de-DE-Standard-B",
    "de-DE-Standard-C",
    "de-DE-Standard-D",
    "de-DE-Standard-E",
    "de-DE-Standard-F",
    "de-DE-Studio-B",
    "de-DE-Studio-C",
    "de-DE-Wavenet-A",
    "de-DE-Wavenet-B",
    "de-DE-Wavenet-C",
    "de-DE-Wavenet-D",
    "de-DE-Wavenet-E",
    "de-DE-Wavenet-F",
    "el-GR-Standard-A",
    "el-GR-Wavenet-A",
    "en-AU-Neural2-A",
    "en-AU-Neural2-B",
    "en-AU-Neural2-C",
    "en-AU-Neural2-D",
    "en-AU-News-E",
    "en-AU-News-F",
    "en-AU-News-G",
    "en-AU-Polyglot-1",
    "en-AU-Standard-A",
    "en-AU-Standard-B",
    "en-AU-Standard-C",
    "en-AU-Standard-D",
    "en-AU-Wavenet-A",
    "en-AU-Wavenet-B",
    "en-AU-Wavenet-C",
    "en-AU-Wavenet-D",
    "en-GB-Neural2-A",
    "en-GB-Neural2-B",
    "en-GB-Neural2-C",
    "en-GB-Neural2-D",
    "en-GB-Neural2-F",
    "en-GB-News-G",
    "en-GB-News-H",
    "en-GB-News-I",
    "en-GB-News-J",
    "en-GB-News-K",
    "en-GB-News-L",
    "en-GB-News-M",
    "en-GB-Standard-A",
    "en-GB-Standard-B",
    "en-GB-Standard-C",
    "en-GB-Standard-D",
    "en-GB-Standard-F",
    "en-GB-Studio-B",
    "en-GB-Studio-C",
    "en-GB-Wavenet-A",
    "en-GB-Wavenet-B",
    "en-GB-Wavenet-C",
    "en-GB-Wavenet-D",
    "en-GB-Wavenet-F",
    "en-IN-Neural2-A",
    "en-IN-Neural2-B",
    "en-IN-Neural2-C",
    "en-IN-Neural2-D",
    "en-IN-Standard-A",
    "en-IN-Standard-B",
    "en-IN-Standard-C",
    "en-IN-Standard-D",
    "en-IN-Wavenet-A",
    "en-IN-Wavenet-B",
    "en-IN-Wavenet-C",
    "en-IN-Wavenet-D",
    "en-US-Casual-K",
    "en-US-Journey-D",
    "en-US-Journey-F",
    "en-US-Neural2-A",
    "en-US-Neural2-C",
    "en-US-Neural2-D",
    "en-US-Neural2-E",
    "en-US-Neural2-F",
    "en-US-Neural2-G",
    "en-US-Neural2-H",
    "en-US-Neural2-I",
    "en-US-Neural2-J",
    "en-US-News-K",
    "en-US-News-L",
    "en-US-News-N",
    "en-US-Polyglot-1",
    "en-US-Standard-A",
    "en-US-Standard-B",
    "en-US-Standard-C",
    "en-US-Standard-D",
    "en-US-Standard-E",
    "en-US-Standard-F",
    "en-US-Standard-G",
    "en-US-Standard-H",
    "en-US-Standard-I",
    "en-US-Standard-J",
    "en-US-Studio-O",
    "en-US-Studio-Q",
    "en-US-Wavenet-A",
    "en-US-Wavenet-B",
    "en-US-Wavenet-C",
    "en-US-Wavenet-D",
    "en-US-Wavenet-E",
    "en-US-Wavenet-F",
    "en-US-Wavenet-G",
    "en-US-Wavenet-H",
    "en-US-Wavenet-I",
    "en-US-Wavenet-J",
    "es-ES-Neural2-A",
    "es-ES-Neural2-B",
    "es-ES-Neural2-C",
    "es-ES-Neural2-D",
    "es-ES-Neural2-E",
    "es-ES-Neural2-F",
    "es-ES-Polyglot-1",
    "es-ES-Standard-A",
    "es-ES-Standard-B",
    "es-ES-Standard-C",
    "es-ES-Standard-D",
    "es-ES-Wavenet-B",
    "es-ES-Wavenet-C",
    "es-ES-Wavenet-D",
    "es-US-Neural2-A",
    "es-US-Neural2-B",
    "es-US-Neural2-C",
    "es-US-News-D",
    "es-US-News-E",
    "es-US-News-F",
    "es-US-News-G",
    "es-US-Polyglot-1",
    "es-US-Standard-A",
    "es-US-Standard-B",
    "es-US-Standard-C",
    "es-US-Studio-B",
    "es-US-Wavenet-A",
    "es-US-Wavenet-B",
    "es-US-Wavenet-C",
    "eu-ES-Standard-A",
    "fi-FI-Standard-A",
    "fi-FI-Wavenet-A",
    "fil-PH-Standard-A",
    "fil-PH-Standard-B",
    "fil-PH-Standard-C",
    "fil-PH-Standard-D",
    "fil-PH-Wavenet-A",
    "fil-PH-Wavenet-B",
    "fil-PH-Wavenet-C",
    "fil-PH-Wavenet-D",
    "fil-ph-Neural2-A",
    "fil-ph-Neural2-D",
    "fr-CA-Neural2-A",
    "fr-CA-Neural2-B",
    "fr-CA-Neural2-C",
    "fr-CA-Neural2-D",
    "fr-CA-Standard-A",
    "fr-CA-Standard-B",
    "fr-CA-Standard-C",
    "fr-CA-Standard-D",
    "fr-CA-Wavenet-A",
    "fr-CA-Wavenet-B",
    "fr-CA-Wavenet-C",
    "fr-CA-Wavenet-D",
    "fr-FR-Neural2-A",
    "fr-FR-Neural2-B",
    "fr-FR-Neural2-C",
    "fr-FR-Neural2-D",
    "fr-FR-Neural2-E",
    "fr-FR-Polyglot-1",
    "fr-FR-Standard-A",
    "fr-FR-Standard-B",
    "fr-FR-Standard-C",
    "fr-FR-Standard-D",
    "fr-FR-Standard-E",
    "fr-FR-Studio-A",
    "fr-FR-Studio-D",
    "fr-FR-Wavenet-A",
    "fr-FR-Wavenet-B",
    "fr-FR-Wavenet-C",
    "fr-FR-Wavenet-D",
    "fr-FR-Wavenet-E",
    "gl-ES-Standard-A",
    "gu-IN-Standard-A",
    "gu-IN-Standard-B",
    "gu-IN-Standard-C",
    "gu-IN-Standard-D",
    "gu-IN-Wavenet-A",
    "gu-IN-Wavenet-B",
    "gu-IN-Wavenet-C",
    "gu-IN-Wavenet-D",
    "he-IL-Standard-A",
    "he-IL-Standard-B",
    "he-IL-Standard-C",
    "he-IL-Standard-D",
    "he-IL-Wavenet-A",
    "he-IL-Wavenet-B",
    "he-IL-Wavenet-C",
    "he-IL-Wavenet-D",
    "hi-IN-Neural2-A",
    "hi-IN-Neural2-B",
    "hi-IN-Neural2-C",
    "hi-IN-Neural2-D",
    "hi-IN-Standard-A",
    "hi-IN-Standard-B",
    "hi-IN-Standard-C",
    "hi-IN-Standard-D",
    "hi-IN-Wavenet-A",
    "hi-IN-Wavenet-B",
    "hi-IN-Wavenet-C",
    "hi-IN-Wavenet-D",
    "hu-HU-Standard-A",
    "hu-HU-Wavenet-A",
    "id-ID-Standard-A",
    "id-ID-Standard-B",
    "id-ID-Standard-C",
    "id-ID-Standard-D",
    "id-ID-Wavenet-A",
    "id-ID-Wavenet-B",
    "id-ID-Wavenet-C",
    "id-ID-Wavenet-D",
    "is-IS-Standard-A",
    "it-IT-Neural2-A",
    "it-IT-Neural2-C",
    "it-IT-Standard-A",
    "it-IT-Standard-B",
    "it-IT-Standard-C",
    "it-IT-Standard-D",
    "it-IT-Wavenet-A",
    "it-IT-Wavenet-B",
    "it-IT-Wavenet-C",
    "it-IT-Wavenet-D",
    "ja-JP-Neural2-B",
    "ja-JP-Neural2-C",
    "ja-JP-Neural2-D",
    "ja-JP-Standard-A",
    "ja-JP-Standard-B",
    "ja-JP-Standard-C",
    "ja-JP-Standard-D",
    "ja-JP-Wavenet-A",
    "ja-JP-Wavenet-B",
    "ja-JP-Wavenet-C",
    "ja-JP-Wavenet-D",
    "kn-IN-Standard-A",
    "kn-IN-Standard-B",
    "kn-IN-Standard-C",
    "kn-IN-Standard-D",
    "kn-IN-Wavenet-A",
    "kn-IN-Wavenet-B",
    "kn-IN-Wavenet-C",
    "kn-IN-Wavenet-D",
    "ko-KR-Neural2-A",
    "ko-KR-Neural2-B",
    "ko-KR-Neural2-C",
    "ko-KR-Standard-A",
    "ko-KR-Standard-B",
    "ko-KR-Standard-C",
    "ko-KR-Standard-D",
    "ko-KR-Wavenet-A",
    "ko-KR-Wavenet-B",
    "ko-KR-Wavenet-C",
    "ko-KR-Wavenet-D",
    "lt-LT-Standard-A",
    "lv-LV-Standard-A",
    "ml-IN-Standard-A",
    "ml-IN-Standard-B",
    "ml-IN-Standard-C",
    "ml-IN-Standard-D",
    "ml-IN-Wavenet-A",
    "ml-IN-Wavenet-B",
    "ml-IN-Wavenet-C",
    "ml-IN-Wavenet-D",
    "mr-IN-Standard-A",
    "mr-IN-Standard-B",
    "mr-IN-Standard-C",
    "mr-IN-Wavenet-A",
    "mr-IN-Wavenet-B",
    "mr-IN-Wavenet-C",
    "ms-MY-Standard-A",
    "ms-MY-Standard-B",
    "ms-MY-Standard-C",
    "ms-MY-Standard-D",
    "ms-MY-Wavenet-A",
    "ms-MY-Wavenet-B",
    "ms-MY-Wavenet-C",
    "ms-MY-Wavenet-D",
    "nb-NO-Standard-A",
    "nb-NO-Standard-B",
    "nb-NO-Standard-C",
    "nb-NO-Standard-D",
    "nb-NO-Standard-E",
    "nb-NO-Wavenet-A",
    "nb-NO-Wavenet-B",
    "nb-NO-Wavenet-C",
    "nb-NO-Wavenet-D",
    "nb-NO-Wavenet-E",
    "nl-BE-Standard-A",
    "nl-BE-Standard-B",
    "nl-BE-Wavenet-A",
    "nl-BE-Wavenet-B",
    "nl-NL-Standard-A",
    "nl-NL-Standard-B",
    "nl-NL-Standard-C",
    "nl-NL-Standard-D",
    "nl-NL-Standard-E",
    "nl-NL-Wavenet-A",
    "nl-NL-Wavenet-B",
    "nl-NL-Wavenet-C",
    "nl-NL-Wavenet-D",
    "nl-NL-Wavenet-E",
    "pa-IN-Standard-A",
    "pa-IN-Standard-B",
    "pa-IN-Standard-C",
    "pa-IN-Standard-D",
    "pa-IN-Wavenet-A",
    "pa-IN-Wavenet-B",
    "pa-IN-Wavenet-C",
    "pa-IN-Wavenet-D",
    "pl-PL-Standard-A",
    "pl-PL-Standard-B",
    "pl-PL-Standard-C",
    "pl-PL-Standard-D",
    "pl-PL-Standard-E",
    "pl-PL-Wavenet-A",
    "pl-PL-Wavenet-B",
    "pl-PL-Wavenet-C",
    "pl-PL-Wavenet-D",
    "pl-PL-Wavenet-E",
    "pt-BR-Neural2-A",
    "pt-BR-Neural2-B",
    "pt-BR-Neural2-C",
    "pt-BR-Standard-A",
    "pt-BR-Standard-B",
    "pt-BR-Standard-C",
    "pt-BR-Wavenet-A",
    "pt-BR-Wavenet-B",
    "pt-BR-Wavenet-C",
    "pt-PT-Standard-A",
    "pt-PT-Standard-B",
    "pt-PT-Standard-C",
    "pt-PT-Standard-D",
    "pt-PT-Wavenet-A",
    "pt-PT-Wavenet-B",
    "pt-PT-Wavenet-C",
    "pt-PT-Wavenet-D",
    "ro-RO-Standard-A",
    "ro-RO-Wavenet-A",
    "ru-RU-Standard-A",
    "ru-RU-Standard-B",
    "ru-RU-Standard-C",
    "ru-RU-Standard-D",
    "ru-RU-Standard-E",
    "ru-RU-Wavenet-A",
    "ru-RU-Wavenet-B",
    "ru-RU-Wavenet-C",
    "ru-RU-Wavenet-D",
    "ru-RU-Wavenet-E",
    "sk-SK-Standard-A",
    "sk-SK-Wavenet-A",
    "sr-RS-Standard-A",
    "sv-SE-Standard-A",
    "sv-SE-Standard-B",
    "sv-SE-Standard-C",
    "sv-SE-Standard-D",
    "sv-SE-Standard-E",
    "sv-SE-Wavenet-A",
    "sv-SE-Wavenet-B",
    "sv-SE-Wavenet-C",
    "sv-SE-Wavenet-D",
    "sv-SE-Wavenet-E",
    "ta-IN-Standard-A",
    "ta-IN-Standard-B",
    "ta-IN-Standard-C",
    "ta-IN-Standard-D",
    "ta-IN-Wavenet-A",
    "ta-IN-Wavenet-B",
    "ta-IN-Wavenet-C",
    "ta-IN-Wavenet-D",
    "te-IN-Standard-A",
    "te-IN-Standard-B",
    "th-TH-Neural2-C",
    "th-TH-Standard-A",
    "tr-TR-Standard-A",
    "tr-TR-Standard-B",
    "tr-TR-Standard-C",
    "tr-TR-Standard-D",
    "tr-TR-Standard-E",
    "tr-TR-Wavenet-A",
    "tr-TR-Wavenet-B",
    "tr-TR-Wavenet-C",
    "tr-TR-Wavenet-D",
    "tr-TR-Wavenet-E",
    "uk-UA-Standard-A",
    "uk-UA-Wavenet-A",
    "vi-VN-Neural2-A",
    "vi-VN-Neural2-D",
    "vi-VN-Standard-A",
    "vi-VN-Standard-B",
    "vi-VN-Standard-C",
    "vi-VN-Standard-D",
    "vi-VN-Wavenet-A",
    "vi-VN-Wavenet-B",
    "vi-VN-Wavenet-C",
    "vi-VN-Wavenet-D",
    "yue-HK-Standard-A",
    "yue-HK-Standard-B",
    "yue-HK-Standard-C",
    "yue-HK-Standard-D",
]

BAIDU_SUPPORTED_VOICES = {
    # Basic
    "DuXiaoYu": 1,
    "DuXiaoMei": 0,
    "DuXiaoYao": 3,
    "DuYaYa": 4,
    # High Quality
    "DuXiaoYaoHQ": 5003,
    "DuXiaoLu": 5118,
    "DuBoWen": 106,
    "DuXiaoTong": 110,
    "DuMiDuo": 103,
    "DuXiaoJiao": 5,
    "DuXiaoMeng": 111,
}

MINIMAX_SUPPORTED_VOICES = [
    "male-qn-qingse",
    "male-qn-jingying",
    "male-qn-badao",
    "male-qn-daxuesheng",
    "female-shaonv",
    "female-yujie",
    "female-chengshu",
    "female-tianmei",
    "presenter_male",
    "presenter_female",
    "audiobook_male_1",
    "audiobook_male_2",
    "audiobook_female_1",
    "audiobook_female_2",
    "male-qn-qingse-jingpin",
    "male-qn-jingying-jingpin",
    "male-qn-badao-jingpin",
    "male-qn-daxuesheng-jingpin",
    "female-shaonv-jingpin",
    "female-yujie-jingpin",
    "female-chengshu-jingpin",
    "female-tianmei-jingpin",
]
