From 9cd3d1b271eefa2c70d18e6e55e6fa527aabc66d Mon Sep 17 00:00:00 2001 From: canisminor1990 Date: Sat, 11 Nov 2023 16:17:00 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat:=20Add=20options=20func?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/data/azureVoiceList.ts | 160 ++ src/data/azureVoiceListFull.json | 2156 ------------------------ src/data/azureVoiceListLite.json | 358 ---- src/data/edgeVoiceList.json | 165 -- src/data/edgeVoiceList.ts | 33 + src/data/locales.ts | 13 + src/data/nameList.ts | 149 ++ src/data/openaiVoiceList.json | 1 - src/data/openaiVoiceList.ts | 1 + src/data/speechSynthesVoiceList.json | 182 -- src/data/speechSynthesVoiceList.ts | 94 ++ src/index.ts | 15 +- src/useAzureSpeech/demos/index.tsx | 4 +- src/useEdgeSpeech/demos/index.tsx | 4 +- src/useMicrosoftSpeech/demos/index.tsx | 4 +- src/useOpenaiTTS/demos/index.tsx | 4 +- src/useSpeechSynthes/demos/index.tsx | 4 +- src/utils/getVoiceList.ts | 94 +- 18 files changed, 512 insertions(+), 2929 deletions(-) create mode 100644 src/data/azureVoiceList.ts delete mode 100644 src/data/azureVoiceListFull.json delete mode 100644 src/data/azureVoiceListLite.json delete mode 100644 src/data/edgeVoiceList.json create mode 100644 src/data/edgeVoiceList.ts create mode 100644 src/data/locales.ts create mode 100644 src/data/nameList.ts delete mode 100644 src/data/openaiVoiceList.json create mode 100644 src/data/openaiVoiceList.ts delete mode 100644 src/data/speechSynthesVoiceList.json create mode 100644 src/data/speechSynthesVoiceList.ts diff --git a/src/data/azureVoiceList.ts b/src/data/azureVoiceList.ts new file mode 100644 index 0000000..e4c0974 --- /dev/null +++ b/src/data/azureVoiceList.ts @@ -0,0 +1,160 @@ +export default { + 'ar-SA': ['ar-SA-HamedNeural', 'ar-SA-ZariyahNeural'], + 'de-DE': [ + 'de-DE-AmalaNeural', + 'de-DE-BerndNeural', + 'de-DE-ChristophNeural', + 'de-DE-ConradNeural', + 'de-DE-ElkeNeural', + 'de-DE-GiselaNeural', + 'de-DE-KasperNeural', + 'de-DE-KatjaNeural', + 'de-DE-KillianNeural', + 'de-DE-KlarissaNeural', + 'de-DE-KlausNeural', + 'de-DE-LouisaNeural', + 'de-DE-MajaNeural', + 'de-DE-RalfNeural', + 'de-DE-TanjaNeural', + ], + 'en-US': [ + 'en-US-AIGenerate1Neural', + 'en-US-AIGenerate2Neural', + 'en-US-AmberNeural', + 'en-US-AnaNeural', + 'en-US-AndrewNeural', + 'en-US-AriaNeural', + 'en-US-AshleyNeural', + 'en-US-BlueNeural', + 'en-US-BrandonNeural', + 'en-US-BrianNeural', + 'en-US-ChristopherNeural', + 'en-US-CoraNeural', + 'en-US-DavisNeural', + 'en-US-ElizabethNeural', + 'en-US-EmmaNeural', + 'en-US-EricNeural', + 'en-US-GuyNeural', + 'en-US-JacobNeural', + 'en-US-JaneNeural', + 'en-US-JasonNeural', + 'en-US-JennyNeural', + 'en-US-JennyMultilingualNeural', + 'en-US-JennyMultilingualV2Neural', + 'en-US-MichelleNeural', + 'en-US-MonicaNeural', + 'en-US-NancyNeural', + 'en-US-RogerNeural', + 'en-US-RyanMultilingualNeural', + 'en-US-SaraNeural', + 'en-US-SteffanNeural', + 'en-US-TonyNeural', + ], + 'es-ES': [ + 'es-ES-AbrilNeural', + 'es-ES-AlvaroNeural', + 'es-ES-ArnauNeural', + 'es-ES-DarioNeural', + 'es-ES-EliasNeural', + 'es-ES-ElviraNeural', + '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', + ], + 'fr-FR': [ + 'fr-FR-AlainNeural', + 'fr-FR-BrigitteNeural', + 'fr-FR-CelesteNeural', + 'fr-FR-ClaudeNeural', + 'fr-FR-CoralieNeural', + 'fr-FR-DeniseNeural', + 'fr-FR-EloiseNeural', + 'fr-FR-HenriNeural', + 'fr-FR-JacquelineNeural', + 'fr-FR-JeromeNeural', + 'fr-FR-JosephineNeural', + 'fr-FR-MauriceNeural', + 'fr-FR-YvesNeural', + 'fr-FR-YvetteNeural', + ], + 'ja-JP': [ + 'ja-JP-NanamiNeural', + 'ja-JP-KeitaNeural', + 'ja-JP-DaichiNeural', + 'ja-JP-ShioriNeural', + 'ja-JP-NaokiNeural', + 'ja-JP-MayuNeural', + 'ja-JP-AoiNeural', + ], + 'ko-KR': [ + 'ko-KR-GookMinNeural', + 'ko-KR-BongJinNeural', + 'ko-KR-SeoHyeonNeural', + 'ko-KR-SunHiNeural', + 'ko-KR-SoonBokNeural', + 'ko-KR-YuJinNeural', + 'ko-KR-InJoonNeural', + 'ko-KR-JiMinNeural', + ], + 'pt-BR': [ + 'pt-BR-AntonioNeural', + 'pt-BR-BrendaNeural', + 'pt-BR-DonatoNeural', + 'pt-BR-ElzaNeural', + 'pt-BR-FabioNeural', + 'pt-BR-FranciscaNeural', + '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', + ], + 'ru-RU': ['ru-RU-DariyaNeural', 'ru-RU-DmitryNeural', 'ru-RU-SvetlanaNeural'], + 'zh-CN': [ + 'zh-CN-YunjianNeural', + 'wuu-CN-YunzheNeural', + 'zh-CN-YunxiaNeural', + 'zh-CN-guangxi-YunqiNeural', + 'zh-CN-sichuan-YunxiNeural', + 'zh-CN-YunxiNeural', + 'zh-CN-YunyangNeural', + 'zh-CN-YunjieNeural', + 'yue-CN-YunSongNeural', + 'zh-CN-YunfengNeural', + 'zh-CN-YunzeNeural', + 'zh-CN-henan-YundengNeural', + 'zh-CN-YunhaoNeural', + 'zh-CN-shandong-YunxiangNeural', + 'zh-CN-liaoning-YunbiaoNeural', + 'zh-CN-YunyeNeural', + 'zh-CN-XiaoyiNeural', + 'zh-CN-liaoning-XiaobeiNeural', + 'zh-CN-XiaoshuangNeural', + 'zh-CN-shaanxi-XiaoniNeural', + 'wuu-CN-XiaotongNeural', + 'zh-CN-XiaoyouNeural', + 'yue-CN-XiaoMinNeural', + 'zh-CN-XiaoxiaoNeural', + 'zh-CN-XiaorouNeural', + 'zh-CN-XiaomengNeural', + 'zh-CN-XiaohanNeural', + 'zh-CN-XiaozhenNeural', + 'zh-CN-XiaoruiNeural', + 'zh-CN-XiaoqiuNeural', + 'zh-CN-XiaoxuanNeural', + 'zh-CN-XiaochenNeural', + 'zh-CN-XiaoyanNeural', + 'zh-CN-XiaomoNeural', + ], + 'zh-TW': ['zh-TW-HsiaoChenNeural', 'zh-TW-HsiaoYuNeural', 'zh-TW-YunJheNeural'], +} as const; diff --git a/src/data/azureVoiceListFull.json b/src/data/azureVoiceListFull.json deleted file mode 100644 index 11d7c39..0000000 --- a/src/data/azureVoiceListFull.json +++ /dev/null @@ -1,2156 +0,0 @@ -{ - "af-ZA": [ - { - "localeName": "Adri", - "name": "af-ZA-AdriNeural" - }, - { - "localeName": "Willem", - "name": "af-ZA-WillemNeural" - } - ], - "am-ET": [ - { - "localeName": "መቅደስ", - "name": "am-ET-MekdesNeural" - }, - { - "localeName": "አምሀ", - "name": "am-ET-AmehaNeural" - } - ], - "ar-AE": [ - { - "localeName": "حمدان", - "name": "ar-AE-HamdanNeural" - }, - { - "localeName": "فاطمة", - "name": "ar-AE-FatimaNeural" - } - ], - "ar-BH": [ - { - "localeName": "علي", - "name": "ar-BH-AliNeural" - }, - { - "localeName": "ليلى", - "name": "ar-BH-LailaNeural" - } - ], - "ar-DZ": [ - { - "localeName": "أمينة", - "name": "ar-DZ-AminaNeural" - }, - { - "localeName": "إسماعيل", - "name": "ar-DZ-IsmaelNeural" - } - ], - "ar-EG": [ - { - "localeName": "سلمى", - "name": "ar-EG-SalmaNeural" - }, - { - "localeName": "شاكر", - "name": "ar-EG-ShakirNeural" - } - ], - "ar-IQ": [ - { - "localeName": "باسل", - "name": "ar-IQ-BasselNeural" - }, - { - "localeName": "رنا", - "name": "ar-IQ-RanaNeural" - } - ], - "ar-JO": [ - { - "localeName": "تيم", - "name": "ar-JO-TaimNeural" - }, - { - "localeName": "سناء", - "name": "ar-JO-SanaNeural" - } - ], - "ar-KW": [ - { - "localeName": "فهد", - "name": "ar-KW-FahedNeural" - }, - { - "localeName": "نورا", - "name": "ar-KW-NouraNeural" - } - ], - "ar-LB": [ - { - "localeName": "رامي", - "name": "ar-LB-RamiNeural" - }, - { - "localeName": "ليلى", - "name": "ar-LB-LaylaNeural" - } - ], - "ar-LY": [ - { - "localeName": "أحمد", - "name": "ar-LY-OmarNeural" - }, - { - "localeName": "إيمان", - "name": "ar-LY-ImanNeural" - } - ], - "ar-MA": [ - { - "localeName": "جمال", - "name": "ar-MA-JamalNeural" - }, - { - "localeName": "منى", - "name": "ar-MA-MounaNeural" - } - ], - "ar-OM": [ - { - "localeName": "عائشة", - "name": "ar-OM-AyshaNeural" - }, - { - "localeName": "عبدالله", - "name": "ar-OM-AbdullahNeural" - } - ], - "ar-QA": [ - { - "localeName": "أمل", - "name": "ar-QA-AmalNeural" - }, - { - "localeName": "معاذ", - "name": "ar-QA-MoazNeural" - } - ], - "ar-SA": [ - { - "localeName": "حامد", - "name": "ar-SA-HamedNeural" - }, - { - "localeName": "زارية", - "name": "ar-SA-ZariyahNeural" - } - ], - "ar-SY": [ - { - "localeName": "أماني", - "name": "ar-SY-AmanyNeural" - }, - { - "localeName": "ليث", - "name": "ar-SY-LaithNeural" - } - ], - "ar-TN": [ - { - "localeName": "ريم", - "name": "ar-TN-ReemNeural" - }, - { - "localeName": "هادي", - "name": "ar-TN-HediNeural" - } - ], - "ar-YE": [ - { - "localeName": "صالح", - "name": "ar-YE-SalehNeural" - }, - { - "localeName": "مريم", - "name": "ar-YE-MaryamNeural" - } - ], - "az-AZ": [ - { - "localeName": "Babək", - "name": "az-AZ-BabekNeural" - }, - { - "localeName": "Banu", - "name": "az-AZ-BanuNeural" - } - ], - "bg-BG": [ - { - "localeName": "Борислав", - "name": "bg-BG-BorislavNeural" - }, - { - "localeName": "Калина", - "name": "bg-BG-KalinaNeural" - } - ], - "bn-BD": [ - { - "localeName": "নবনীতা", - "name": "bn-BD-NabanitaNeural" - }, - { - "localeName": "প্রদ্বীপ", - "name": "bn-BD-PradeepNeural" - } - ], - "bn-IN": [ - { - "localeName": "তানিশা", - "name": "bn-IN-TanishaaNeural" - }, - { - "localeName": "ভাস্কর", - "name": "bn-IN-BashkarNeural" - } - ], - "bs-BA": [ - { - "localeName": "Goran", - "name": "bs-BA-GoranNeural" - }, - { - "localeName": "Vesna", - "name": "bs-BA-VesnaNeural" - } - ], - "ca-ES": [ - { - "localeName": "Alba", - "name": "ca-ES-AlbaNeural" - }, - { - "localeName": "Enric", - "name": "ca-ES-EnricNeural" - }, - { - "localeName": "Joana", - "name": "ca-ES-JoanaNeural" - } - ], - "cs-CZ": [ - { - "localeName": "Antonín", - "name": "cs-CZ-AntoninNeural" - }, - { - "localeName": "Vlasta", - "name": "cs-CZ-VlastaNeural" - } - ], - "cy-GB": [ - { - "localeName": "Aled", - "name": "cy-GB-AledNeural" - }, - { - "localeName": "Nia", - "name": "cy-GB-NiaNeural" - } - ], - "da-DK": [ - { - "localeName": "Christel", - "name": "da-DK-ChristelNeural" - }, - { - "localeName": "Jeppe", - "name": "da-DK-JeppeNeural" - } - ], - "de-AT": [ - { - "localeName": "Ingrid", - "name": "de-AT-IngridNeural" - }, - { - "localeName": "Jonas", - "name": "de-AT-JonasNeural" - } - ], - "de-CH": [ - { - "localeName": "Jan", - "name": "de-CH-JanNeural" - }, - { - "localeName": "Leni", - "name": "de-CH-LeniNeural" - } - ], - "de-DE": [ - { - "localeName": "Amala", - "name": "de-DE-AmalaNeural" - }, - { - "localeName": "Bernd", - "name": "de-DE-BerndNeural" - }, - { - "localeName": "Christoph", - "name": "de-DE-ChristophNeural" - }, - { - "localeName": "Conrad", - "name": "de-DE-ConradNeural" - }, - { - "localeName": "Elke", - "name": "de-DE-ElkeNeural" - }, - { - "localeName": "Gisela", - "name": "de-DE-GiselaNeural" - }, - { - "localeName": "Kasper", - "name": "de-DE-KasperNeural" - }, - { - "localeName": "Katja", - "name": "de-DE-KatjaNeural" - }, - { - "localeName": "Killian", - "name": "de-DE-KillianNeural" - }, - { - "localeName": "Klarissa", - "name": "de-DE-KlarissaNeural" - }, - { - "localeName": "Klaus", - "name": "de-DE-KlausNeural" - }, - { - "localeName": "Louisa", - "name": "de-DE-LouisaNeural" - }, - { - "localeName": "Maja", - "name": "de-DE-MajaNeural" - }, - { - "localeName": "Ralf", - "name": "de-DE-RalfNeural" - }, - { - "localeName": "Tanja", - "name": "de-DE-TanjaNeural" - } - ], - "el-GR": [ - { - "localeName": "Αθηνά", - "name": "el-GR-AthinaNeural" - }, - { - "localeName": "Νέστορας", - "name": "el-GR-NestorasNeural" - } - ], - "en-AU": [ - { - "localeName": "Annette", - "name": "en-AU-AnnetteNeural" - }, - { - "localeName": "Carly", - "name": "en-AU-CarlyNeural" - }, - { - "localeName": "Darren", - "name": "en-AU-DarrenNeural" - }, - { - "localeName": "Duncan", - "name": "en-AU-DuncanNeural" - }, - { - "localeName": "Elsie", - "name": "en-AU-ElsieNeural" - }, - { - "localeName": "Freya", - "name": "en-AU-FreyaNeural" - }, - { - "localeName": "Joanne", - "name": "en-AU-JoanneNeural" - }, - { - "localeName": "Ken", - "name": "en-AU-KenNeural" - }, - { - "localeName": "Kim", - "name": "en-AU-KimNeural" - }, - { - "localeName": "Natasha", - "name": "en-AU-NatashaNeural" - }, - { - "localeName": "Neil", - "name": "en-AU-NeilNeural" - }, - { - "localeName": "Tim", - "name": "en-AU-TimNeural" - }, - { - "localeName": "Tina", - "name": "en-AU-TinaNeural" - }, - { - "localeName": "William", - "name": "en-AU-WilliamNeural" - } - ], - "en-CA": [ - { - "localeName": "Clara", - "name": "en-CA-ClaraNeural" - }, - { - "localeName": "Liam", - "name": "en-CA-LiamNeural" - } - ], - "en-GB": [ - { - "localeName": "Abbi", - "name": "en-GB-AbbiNeural" - }, - { - "localeName": "Alfie", - "name": "en-GB-AlfieNeural" - }, - { - "localeName": "Bella", - "name": "en-GB-BellaNeural" - }, - { - "localeName": "Elliot", - "name": "en-GB-ElliotNeural" - }, - { - "localeName": "Ethan", - "name": "en-GB-EthanNeural" - }, - { - "localeName": "Hollie", - "name": "en-GB-HollieNeural" - }, - { - "localeName": "Libby", - "name": "en-GB-LibbyNeural" - }, - { - "localeName": "Maisie", - "name": "en-GB-MaisieNeural" - }, - { - "localeName": "Mia", - "name": "en-GB-MiaNeural" - }, - { - "localeName": "Noah", - "name": "en-GB-NoahNeural" - }, - { - "localeName": "Oliver", - "name": "en-GB-OliverNeural" - }, - { - "localeName": "Olivia", - "name": "en-GB-OliviaNeural" - }, - { - "localeName": "Ryan", - "name": "en-GB-RyanNeural" - }, - { - "localeName": "Sonia", - "name": "en-GB-SoniaNeural" - }, - { - "localeName": "Thomas", - "name": "en-GB-ThomasNeural" - } - ], - "en-HK": [ - { - "localeName": "Sam", - "name": "en-HK-SamNeural" - }, - { - "localeName": "Yan", - "name": "en-HK-YanNeural" - } - ], - "en-IE": [ - { - "localeName": "Connor", - "name": "en-IE-ConnorNeural" - }, - { - "localeName": "Emily", - "name": "en-IE-EmilyNeural" - } - ], - "en-IN": [ - { - "localeName": "Neerja", - "name": "en-IN-NeerjaNeural" - }, - { - "localeName": "Prabhat", - "name": "en-IN-PrabhatNeural" - } - ], - "en-KE": [ - { - "localeName": "Asilia", - "name": "en-KE-AsiliaNeural" - }, - { - "localeName": "Chilemba", - "name": "en-KE-ChilembaNeural" - } - ], - "en-NG": [ - { - "localeName": "Abeo", - "name": "en-NG-AbeoNeural" - }, - { - "localeName": "Ezinne", - "name": "en-NG-EzinneNeural" - } - ], - "en-NZ": [ - { - "localeName": "Mitchell", - "name": "en-NZ-MitchellNeural" - }, - { - "localeName": "Molly", - "name": "en-NZ-MollyNeural" - } - ], - "en-PH": [ - { - "localeName": "James", - "name": "en-PH-JamesNeural" - }, - { - "localeName": "Rosa", - "name": "en-PH-RosaNeural" - } - ], - "en-SG": [ - { - "localeName": "Luna", - "name": "en-SG-LunaNeural" - }, - { - "localeName": "Wayne", - "name": "en-SG-WayneNeural" - } - ], - "en-TZ": [ - { - "localeName": "Elimu", - "name": "en-TZ-ElimuNeural" - }, - { - "localeName": "Imani", - "name": "en-TZ-ImaniNeural" - } - ], - "en-US": [ - { - "localeName": "AIGenerate1", - "name": "en-US-AIGenerate1Neural" - }, - { - "localeName": "AIGenerate2", - "name": "en-US-AIGenerate2Neural" - }, - { - "localeName": "Amber", - "name": "en-US-AmberNeural" - }, - { - "localeName": "Ana", - "name": "en-US-AnaNeural" - }, - { - "localeName": "Andrew", - "name": "en-US-AndrewNeural" - }, - { - "localeName": "Aria", - "name": "en-US-AriaNeural" - }, - { - "localeName": "Ashley", - "name": "en-US-AshleyNeural" - }, - { - "localeName": "Blue", - "name": "en-US-BlueNeural" - }, - { - "localeName": "Brandon", - "name": "en-US-BrandonNeural" - }, - { - "localeName": "Brian", - "name": "en-US-BrianNeural" - }, - { - "localeName": "Christopher", - "name": "en-US-ChristopherNeural" - }, - { - "localeName": "Cora", - "name": "en-US-CoraNeural" - }, - { - "localeName": "Davis", - "name": "en-US-DavisNeural" - }, - { - "localeName": "Elizabeth", - "name": "en-US-ElizabethNeural" - }, - { - "localeName": "Emma", - "name": "en-US-EmmaNeural" - }, - { - "localeName": "Eric", - "name": "en-US-EricNeural" - }, - { - "localeName": "Guy", - "name": "en-US-GuyNeural" - }, - { - "localeName": "Jacob", - "name": "en-US-JacobNeural" - }, - { - "localeName": "Jane", - "name": "en-US-JaneNeural" - }, - { - "localeName": "Jason", - "name": "en-US-JasonNeural" - }, - { - "localeName": "Jenny", - "name": "en-US-JennyNeural" - }, - { - "localeName": "Jenny Multilingual", - "name": "en-US-JennyMultilingualNeural" - }, - { - "localeName": "Jenny Multilingual V2", - "name": "en-US-JennyMultilingualV2Neural" - }, - { - "localeName": "Michelle", - "name": "en-US-MichelleNeural" - }, - { - "localeName": "Monica", - "name": "en-US-MonicaNeural" - }, - { - "localeName": "Nancy", - "name": "en-US-NancyNeural" - }, - { - "localeName": "Roger", - "name": "en-US-RogerNeural" - }, - { - "localeName": "Ryan Multilingual", - "name": "en-US-RyanMultilingualNeural" - }, - { - "localeName": "Sara", - "name": "en-US-SaraNeural" - }, - { - "localeName": "Steffan", - "name": "en-US-SteffanNeural" - }, - { - "localeName": "Tony", - "name": "en-US-TonyNeural" - } - ], - "en-ZA": [ - { - "localeName": "Leah", - "name": "en-ZA-LeahNeural" - }, - { - "localeName": "Luke", - "name": "en-ZA-LukeNeural" - } - ], - "es-AR": [ - { - "localeName": "Elena", - "name": "es-AR-ElenaNeural" - }, - { - "localeName": "Tomas", - "name": "es-AR-TomasNeural" - } - ], - "es-BO": [ - { - "localeName": "Marcelo", - "name": "es-BO-MarceloNeural" - }, - { - "localeName": "Sofia", - "name": "es-BO-SofiaNeural" - } - ], - "es-CL": [ - { - "localeName": "Catalina", - "name": "es-CL-CatalinaNeural" - }, - { - "localeName": "Lorenzo", - "name": "es-CL-LorenzoNeural" - } - ], - "es-CO": [ - { - "localeName": "Gonzalo", - "name": "es-CO-GonzaloNeural" - }, - { - "localeName": "Salome", - "name": "es-CO-SalomeNeural" - } - ], - "es-CR": [ - { - "localeName": "Juan", - "name": "es-CR-JuanNeural" - }, - { - "localeName": "María", - "name": "es-CR-MariaNeural" - } - ], - "es-CU": [ - { - "localeName": "Belkys", - "name": "es-CU-BelkysNeural" - }, - { - "localeName": "Manuel", - "name": "es-CU-ManuelNeural" - } - ], - "es-DO": [ - { - "localeName": "Emilio", - "name": "es-DO-EmilioNeural" - }, - { - "localeName": "Ramona", - "name": "es-DO-RamonaNeural" - } - ], - "es-EC": [ - { - "localeName": "Andrea", - "name": "es-EC-AndreaNeural" - }, - { - "localeName": "Luis", - "name": "es-EC-LuisNeural" - } - ], - "es-ES": [ - { - "localeName": "Abril", - "name": "es-ES-AbrilNeural" - }, - { - "localeName": "Álvaro", - "name": "es-ES-AlvaroNeural" - }, - { - "localeName": "Arnau", - "name": "es-ES-ArnauNeural" - }, - { - "localeName": "Dario", - "name": "es-ES-DarioNeural" - }, - { - "localeName": "Elias", - "name": "es-ES-EliasNeural" - }, - { - "localeName": "Elvira", - "name": "es-ES-ElviraNeural" - }, - { - "localeName": "Estrella", - "name": "es-ES-EstrellaNeural" - }, - { - "localeName": "Irene", - "name": "es-ES-IreneNeural" - }, - { - "localeName": "Laia", - "name": "es-ES-LaiaNeural" - }, - { - "localeName": "Lia", - "name": "es-ES-LiaNeural" - }, - { - "localeName": "Nil", - "name": "es-ES-NilNeural" - }, - { - "localeName": "Saul", - "name": "es-ES-SaulNeural" - }, - { - "localeName": "Teo", - "name": "es-ES-TeoNeural" - }, - { - "localeName": "Triana", - "name": "es-ES-TrianaNeural" - }, - { - "localeName": "Vera", - "name": "es-ES-VeraNeural" - } - ], - "es-GQ": [ - { - "localeName": "Javier", - "name": "es-GQ-JavierNeural" - }, - { - "localeName": "Teresa", - "name": "es-GQ-TeresaNeural" - } - ], - "es-GT": [ - { - "localeName": "Andrés", - "name": "es-GT-AndresNeural" - }, - { - "localeName": "Marta", - "name": "es-GT-MartaNeural" - } - ], - "es-HN": [ - { - "localeName": "Carlos", - "name": "es-HN-CarlosNeural" - }, - { - "localeName": "Karla", - "name": "es-HN-KarlaNeural" - } - ], - "es-MX": [ - { - "localeName": "Beatriz", - "name": "es-MX-BeatrizNeural" - }, - { - "localeName": "Candela", - "name": "es-MX-CandelaNeural" - }, - { - "localeName": "Carlota", - "name": "es-MX-CarlotaNeural" - }, - { - "localeName": "Cecilio", - "name": "es-MX-CecilioNeural" - }, - { - "localeName": "Dalia", - "name": "es-MX-DaliaNeural" - }, - { - "localeName": "Gerardo", - "name": "es-MX-GerardoNeural" - }, - { - "localeName": "Jorge", - "name": "es-MX-JorgeNeural" - }, - { - "localeName": "Larissa", - "name": "es-MX-LarissaNeural" - }, - { - "localeName": "Liberto", - "name": "es-MX-LibertoNeural" - }, - { - "localeName": "Luciano", - "name": "es-MX-LucianoNeural" - }, - { - "localeName": "Marina", - "name": "es-MX-MarinaNeural" - }, - { - "localeName": "Nuria", - "name": "es-MX-NuriaNeural" - }, - { - "localeName": "Pelayo", - "name": "es-MX-PelayoNeural" - }, - { - "localeName": "Renata", - "name": "es-MX-RenataNeural" - }, - { - "localeName": "Yago", - "name": "es-MX-YagoNeural" - } - ], - "es-NI": [ - { - "localeName": "Federico", - "name": "es-NI-FedericoNeural" - }, - { - "localeName": "Yolanda", - "name": "es-NI-YolandaNeural" - } - ], - "es-PA": [ - { - "localeName": "Margarita", - "name": "es-PA-MargaritaNeural" - }, - { - "localeName": "Roberto", - "name": "es-PA-RobertoNeural" - } - ], - "es-PE": [ - { - "localeName": "Alex", - "name": "es-PE-AlexNeural" - }, - { - "localeName": "Camila", - "name": "es-PE-CamilaNeural" - } - ], - "es-PR": [ - { - "localeName": "Karina", - "name": "es-PR-KarinaNeural" - }, - { - "localeName": "Víctor", - "name": "es-PR-VictorNeural" - } - ], - "es-PY": [ - { - "localeName": "Mario", - "name": "es-PY-MarioNeural" - }, - { - "localeName": "Tania", - "name": "es-PY-TaniaNeural" - } - ], - "es-SV": [ - { - "localeName": "Lorena", - "name": "es-SV-LorenaNeural" - }, - { - "localeName": "Rodrigo", - "name": "es-SV-RodrigoNeural" - } - ], - "es-US": [ - { - "localeName": "Alonso", - "name": "es-US-AlonsoNeural" - }, - { - "localeName": "Paloma", - "name": "es-US-PalomaNeural" - } - ], - "es-UY": [ - { - "localeName": "Mateo", - "name": "es-UY-MateoNeural" - }, - { - "localeName": "Valentina", - "name": "es-UY-ValentinaNeural" - } - ], - "es-VE": [ - { - "localeName": "Paola", - "name": "es-VE-PaolaNeural" - }, - { - "localeName": "Sebastián", - "name": "es-VE-SebastianNeural" - } - ], - "et-EE": [ - { - "localeName": "Anu", - "name": "et-EE-AnuNeural" - }, - { - "localeName": "Kert", - "name": "et-EE-KertNeural" - } - ], - "eu-ES": [ - { - "localeName": "Ainhoa", - "name": "eu-ES-AinhoaNeural" - }, - { - "localeName": "Ander", - "name": "eu-ES-AnderNeural" - } - ], - "fa-IR": [ - { - "localeName": "دلارا", - "name": "fa-IR-DilaraNeural" - }, - { - "localeName": "فرید", - "name": "fa-IR-FaridNeural" - } - ], - "fi-FI": [ - { - "localeName": "Harri", - "name": "fi-FI-HarriNeural" - }, - { - "localeName": "Noora", - "name": "fi-FI-NooraNeural" - }, - { - "localeName": "Selma", - "name": "fi-FI-SelmaNeural" - } - ], - "fil-PH": [ - { - "localeName": "Angelo", - "name": "fil-PH-AngeloNeural" - }, - { - "localeName": "Blessica", - "name": "fil-PH-BlessicaNeural" - } - ], - "fr-BE": [ - { - "localeName": "Charline", - "name": "fr-BE-CharlineNeural" - }, - { - "localeName": "Gerard", - "name": "fr-BE-GerardNeural" - } - ], - "fr-CA": [ - { - "localeName": "Antoine", - "name": "fr-CA-AntoineNeural" - }, - { - "localeName": "Jean", - "name": "fr-CA-JeanNeural" - }, - { - "localeName": "Sylvie", - "name": "fr-CA-SylvieNeural" - } - ], - "fr-CH": [ - { - "localeName": "Ariane", - "name": "fr-CH-ArianeNeural" - }, - { - "localeName": "Fabrice", - "name": "fr-CH-FabriceNeural" - } - ], - "fr-FR": [ - { - "localeName": "Alain", - "name": "fr-FR-AlainNeural" - }, - { - "localeName": "Brigitte", - "name": "fr-FR-BrigitteNeural" - }, - { - "localeName": "Celeste", - "name": "fr-FR-CelesteNeural" - }, - { - "localeName": "Claude", - "name": "fr-FR-ClaudeNeural" - }, - { - "localeName": "Coralie", - "name": "fr-FR-CoralieNeural" - }, - { - "localeName": "Denise", - "name": "fr-FR-DeniseNeural" - }, - { - "localeName": "Eloise", - "name": "fr-FR-EloiseNeural" - }, - { - "localeName": "Henri", - "name": "fr-FR-HenriNeural" - }, - { - "localeName": "Jacqueline", - "name": "fr-FR-JacquelineNeural" - }, - { - "localeName": "Jerome", - "name": "fr-FR-JeromeNeural" - }, - { - "localeName": "Josephine", - "name": "fr-FR-JosephineNeural" - }, - { - "localeName": "Maurice", - "name": "fr-FR-MauriceNeural" - }, - { - "localeName": "Yves", - "name": "fr-FR-YvesNeural" - }, - { - "localeName": "Yvette", - "name": "fr-FR-YvetteNeural" - } - ], - "ga-IE": [ - { - "localeName": "Colm", - "name": "ga-IE-ColmNeural" - }, - { - "localeName": "Orla", - "name": "ga-IE-OrlaNeural" - } - ], - "gl-ES": [ - { - "localeName": "Roi", - "name": "gl-ES-RoiNeural" - }, - { - "localeName": "Sabela", - "name": "gl-ES-SabelaNeural" - } - ], - "gu-IN": [ - { - "localeName": "ધ્વની", - "name": "gu-IN-DhwaniNeural" - }, - { - "localeName": "નિરંજન", - "name": "gu-IN-NiranjanNeural" - } - ], - "he-IL": [ - { - "localeName": "אברי", - "name": "he-IL-AvriNeural" - }, - { - "localeName": "הילה", - "name": "he-IL-HilaNeural" - } - ], - "hi-IN": [ - { - "localeName": "मधुर", - "name": "hi-IN-MadhurNeural" - }, - { - "localeName": "स्वरा", - "name": "hi-IN-SwaraNeural" - } - ], - "hr-HR": [ - { - "localeName": "Gabrijela", - "name": "hr-HR-GabrijelaNeural" - }, - { - "localeName": "Srećko", - "name": "hr-HR-SreckoNeural" - } - ], - "hu-HU": [ - { - "localeName": "Noémi", - "name": "hu-HU-NoemiNeural" - }, - { - "localeName": "Tamás", - "name": "hu-HU-TamasNeural" - } - ], - "hy-AM": [ - { - "localeName": "Անահիտ", - "name": "hy-AM-AnahitNeural" - }, - { - "localeName": "Հայկ", - "name": "hy-AM-HaykNeural" - } - ], - "id-ID": [ - { - "localeName": "Ardi", - "name": "id-ID-ArdiNeural" - }, - { - "localeName": "Gadis", - "name": "id-ID-GadisNeural" - } - ], - "is-IS": [ - { - "localeName": "Guðrún", - "name": "is-IS-GudrunNeural" - }, - { - "localeName": "Gunnar", - "name": "is-IS-GunnarNeural" - } - ], - "it-IT": [ - { - "localeName": "Benigno", - "name": "it-IT-BenignoNeural" - }, - { - "localeName": "Calimero", - "name": "it-IT-CalimeroNeural" - }, - { - "localeName": "Cataldo", - "name": "it-IT-CataldoNeural" - }, - { - "localeName": "Diego", - "name": "it-IT-DiegoNeural" - }, - { - "localeName": "Elsa", - "name": "it-IT-ElsaNeural" - }, - { - "localeName": "Fabiola", - "name": "it-IT-FabiolaNeural" - }, - { - "localeName": "Fiamma", - "name": "it-IT-FiammaNeural" - }, - { - "localeName": "Gianni", - "name": "it-IT-GianniNeural" - }, - { - "localeName": "Imelda", - "name": "it-IT-ImeldaNeural" - }, - { - "localeName": "Irma", - "name": "it-IT-IrmaNeural" - }, - { - "localeName": "Isabella", - "name": "it-IT-IsabellaNeural" - }, - { - "localeName": "Lisandro", - "name": "it-IT-LisandroNeural" - }, - { - "localeName": "Palmira", - "name": "it-IT-PalmiraNeural" - }, - { - "localeName": "Pierina", - "name": "it-IT-PierinaNeural" - }, - { - "localeName": "Rinaldo", - "name": "it-IT-RinaldoNeural" - } - ], - "ja-JP": [ - { - "localeName": "七海", - "name": "ja-JP-NanamiNeural" - }, - { - "localeName": "圭太", - "name": "ja-JP-KeitaNeural" - }, - { - "localeName": "大智", - "name": "ja-JP-DaichiNeural" - }, - { - "localeName": "志織", - "name": "ja-JP-ShioriNeural" - }, - { - "localeName": "直紀", - "name": "ja-JP-NaokiNeural" - }, - { - "localeName": "真夕", - "name": "ja-JP-MayuNeural" - }, - { - "localeName": "碧衣", - "name": "ja-JP-AoiNeural" - } - ], - "jv-ID": [ - { - "localeName": "Dimas", - "name": "jv-ID-DimasNeural" - }, - { - "localeName": "Siti", - "name": "jv-ID-SitiNeural" - } - ], - "ka-GE": [ - { - "localeName": "გიორგი", - "name": "ka-GE-GiorgiNeural" - }, - { - "localeName": "ეკა", - "name": "ka-GE-EkaNeural" - } - ], - "kk-KZ": [ - { - "localeName": "Айгүл", - "name": "kk-KZ-AigulNeural" - }, - { - "localeName": "Дәулет", - "name": "kk-KZ-DauletNeural" - } - ], - "km-KH": [ - { - "localeName": "ពិសិដ្ឋ", - "name": "km-KH-PisethNeural" - }, - { - "localeName": "ស្រីមុំ", - "name": "km-KH-SreymomNeural" - } - ], - "kn-IN": [ - { - "localeName": "ಗಗನ್", - "name": "kn-IN-GaganNeural" - }, - { - "localeName": "ಸಪ್ನಾ", - "name": "kn-IN-SapnaNeural" - } - ], - "ko-KR": [ - { - "localeName": "국민", - "name": "ko-KR-GookMinNeural" - }, - { - "localeName": "봉진", - "name": "ko-KR-BongJinNeural" - }, - { - "localeName": "서현", - "name": "ko-KR-SeoHyeonNeural" - }, - { - "localeName": "선히", - "name": "ko-KR-SunHiNeural" - }, - { - "localeName": "순복", - "name": "ko-KR-SoonBokNeural" - }, - { - "localeName": "유진", - "name": "ko-KR-YuJinNeural" - }, - { - "localeName": "인준", - "name": "ko-KR-InJoonNeural" - }, - { - "localeName": "지민", - "name": "ko-KR-JiMinNeural" - } - ], - "lo-LA": [ - { - "localeName": "ແກ້ວມະນີ", - "name": "lo-LA-KeomanyNeural" - }, - { - "localeName": "ຈັນທະວົງ", - "name": "lo-LA-ChanthavongNeural" - } - ], - "lt-LT": [ - { - "localeName": "Leonas", - "name": "lt-LT-LeonasNeural" - }, - { - "localeName": "Ona", - "name": "lt-LT-OnaNeural" - } - ], - "lv-LV": [ - { - "localeName": "Everita", - "name": "lv-LV-EveritaNeural" - }, - { - "localeName": "Nils", - "name": "lv-LV-NilsNeural" - } - ], - "mk-MK": [ - { - "localeName": "Александар", - "name": "mk-MK-AleksandarNeural" - }, - { - "localeName": "Марија", - "name": "mk-MK-MarijaNeural" - } - ], - "ml-IN": [ - { - "localeName": "മിഥുൻ", - "name": "ml-IN-MidhunNeural" - }, - { - "localeName": "ശോഭന", - "name": "ml-IN-SobhanaNeural" - } - ], - "mn-MN": [ - { - "localeName": "Батаа", - "name": "mn-MN-BataaNeural" - }, - { - "localeName": "Есүй", - "name": "mn-MN-YesuiNeural" - } - ], - "mr-IN": [ - { - "localeName": "आरोही", - "name": "mr-IN-AarohiNeural" - }, - { - "localeName": "मनोहर", - "name": "mr-IN-ManoharNeural" - } - ], - "ms-MY": [ - { - "localeName": "Osman", - "name": "ms-MY-OsmanNeural" - }, - { - "localeName": "Yasmin", - "name": "ms-MY-YasminNeural" - } - ], - "mt-MT": [ - { - "localeName": "Grace", - "name": "mt-MT-GraceNeural" - }, - { - "localeName": "Joseph", - "name": "mt-MT-JosephNeural" - } - ], - "my-MM": [ - { - "localeName": "နီလာ", - "name": "my-MM-NilarNeural" - }, - { - "localeName": "သီဟ", - "name": "my-MM-ThihaNeural" - } - ], - "nb-NO": [ - { - "localeName": "Finn", - "name": "nb-NO-FinnNeural" - }, - { - "localeName": "Iselin", - "name": "nb-NO-IselinNeural" - }, - { - "localeName": "Pernille", - "name": "nb-NO-PernilleNeural" - } - ], - "ne-NP": [ - { - "localeName": "सागर", - "name": "ne-NP-SagarNeural" - }, - { - "localeName": "हेमकला", - "name": "ne-NP-HemkalaNeural" - } - ], - "nl-BE": [ - { - "localeName": "Arnaud", - "name": "nl-BE-ArnaudNeural" - }, - { - "localeName": "Dena", - "name": "nl-BE-DenaNeural" - } - ], - "nl-NL": [ - { - "localeName": "Colette", - "name": "nl-NL-ColetteNeural" - }, - { - "localeName": "Fenna", - "name": "nl-NL-FennaNeural" - }, - { - "localeName": "Maarten", - "name": "nl-NL-MaartenNeural" - } - ], - "pl-PL": [ - { - "localeName": "Agnieszka", - "name": "pl-PL-AgnieszkaNeural" - }, - { - "localeName": "Marek", - "name": "pl-PL-MarekNeural" - }, - { - "localeName": "Zofia", - "name": "pl-PL-ZofiaNeural" - } - ], - "ps-AF": [ - { - "localeName": " ګل نواز", - "name": "ps-AF-GulNawazNeural" - }, - { - "localeName": "لطيفه", - "name": "ps-AF-LatifaNeural" - } - ], - "pt-BR": [ - { - "localeName": "Antônio", - "name": "pt-BR-AntonioNeural" - }, - { - "localeName": "Brenda", - "name": "pt-BR-BrendaNeural" - }, - { - "localeName": "Donato", - "name": "pt-BR-DonatoNeural" - }, - { - "localeName": "Elza", - "name": "pt-BR-ElzaNeural" - }, - { - "localeName": "Fabio", - "name": "pt-BR-FabioNeural" - }, - { - "localeName": "Francisca", - "name": "pt-BR-FranciscaNeural" - }, - { - "localeName": "Giovanna", - "name": "pt-BR-GiovannaNeural" - }, - { - "localeName": "Humberto", - "name": "pt-BR-HumbertoNeural" - }, - { - "localeName": "Julio", - "name": "pt-BR-JulioNeural" - }, - { - "localeName": "Leila", - "name": "pt-BR-LeilaNeural" - }, - { - "localeName": "Leticia", - "name": "pt-BR-LeticiaNeural" - }, - { - "localeName": "Manuela", - "name": "pt-BR-ManuelaNeural" - }, - { - "localeName": "Nicolau", - "name": "pt-BR-NicolauNeural" - }, - { - "localeName": "Valerio", - "name": "pt-BR-ValerioNeural" - }, - { - "localeName": "Yara", - "name": "pt-BR-YaraNeural" - } - ], - "pt-PT": [ - { - "localeName": "Duarte", - "name": "pt-PT-DuarteNeural" - }, - { - "localeName": "Fernanda", - "name": "pt-PT-FernandaNeural" - }, - { - "localeName": "Raquel", - "name": "pt-PT-RaquelNeural" - } - ], - "ro-RO": [ - { - "localeName": "Alina", - "name": "ro-RO-AlinaNeural" - }, - { - "localeName": "Emil", - "name": "ro-RO-EmilNeural" - } - ], - "ru-RU": [ - { - "localeName": "Дария", - "name": "ru-RU-DariyaNeural" - }, - { - "localeName": "Дмитрий", - "name": "ru-RU-DmitryNeural" - }, - { - "localeName": "Светлана", - "name": "ru-RU-SvetlanaNeural" - } - ], - "si-LK": [ - { - "localeName": "තිළිණි", - "name": "si-LK-ThiliniNeural" - }, - { - "localeName": "සමීර", - "name": "si-LK-SameeraNeural" - } - ], - "sk-SK": [ - { - "localeName": "Lukáš", - "name": "sk-SK-LukasNeural" - }, - { - "localeName": "Viktória", - "name": "sk-SK-ViktoriaNeural" - } - ], - "sl-SI": [ - { - "localeName": "Petra", - "name": "sl-SI-PetraNeural" - }, - { - "localeName": "Rok", - "name": "sl-SI-RokNeural" - } - ], - "so-SO": [ - { - "localeName": "Muuse", - "name": "so-SO-MuuseNeural" - }, - { - "localeName": "Ubax", - "name": "so-SO-UbaxNeural" - } - ], - "sq-AL": [ - { - "localeName": "Anila", - "name": "sq-AL-AnilaNeural" - }, - { - "localeName": "Ilir", - "name": "sq-AL-IlirNeural" - } - ], - "sr-Latn": [ - { - "localeName": "Nicholas", - "name": "sr-Latn-RS-NicholasNeural" - }, - { - "localeName": "Sophie", - "name": "sr-Latn-RS-SophieNeural" - } - ], - "sr-RS": [ - { - "localeName": "Никола", - "name": "sr-RS-NicholasNeural" - }, - { - "localeName": "Софија", - "name": "sr-RS-SophieNeural" - } - ], - "su-ID": [ - { - "localeName": "Jajang", - "name": "su-ID-JajangNeural" - }, - { - "localeName": "Tuti", - "name": "su-ID-TutiNeural" - } - ], - "sv-SE": [ - { - "localeName": "Hillevi", - "name": "sv-SE-HilleviNeural" - }, - { - "localeName": "Mattias", - "name": "sv-SE-MattiasNeural" - }, - { - "localeName": "Sofie", - "name": "sv-SE-SofieNeural" - } - ], - "sw-KE": [ - { - "localeName": "Rafiki", - "name": "sw-KE-RafikiNeural" - }, - { - "localeName": "Zuri", - "name": "sw-KE-ZuriNeural" - } - ], - "sw-TZ": [ - { - "localeName": "Daudi", - "name": "sw-TZ-DaudiNeural" - }, - { - "localeName": "Rehema", - "name": "sw-TZ-RehemaNeural" - } - ], - "ta-IN": [ - { - "localeName": "பல்லவி", - "name": "ta-IN-PallaviNeural" - }, - { - "localeName": "வள்ளுவர்", - "name": "ta-IN-ValluvarNeural" - } - ], - "ta-LK": [ - { - "localeName": "குமார்", - "name": "ta-LK-KumarNeural" - }, - { - "localeName": "சரண்யா", - "name": "ta-LK-SaranyaNeural" - } - ], - "ta-MY": [ - { - "localeName": "கனி", - "name": "ta-MY-KaniNeural" - }, - { - "localeName": "சூர்யா", - "name": "ta-MY-SuryaNeural" - } - ], - "ta-SG": [ - { - "localeName": "அன்பு", - "name": "ta-SG-AnbuNeural" - }, - { - "localeName": "வெண்பா", - "name": "ta-SG-VenbaNeural" - } - ], - "te-IN": [ - { - "localeName": "మోహన్", - "name": "te-IN-MohanNeural" - }, - { - "localeName": "శ్రుతి", - "name": "te-IN-ShrutiNeural" - } - ], - "th-TH": [ - { - "localeName": "นิวัฒน์", - "name": "th-TH-NiwatNeural" - }, - { - "localeName": "เปรมวดี", - "name": "th-TH-PremwadeeNeural" - }, - { - "localeName": "อัจฉรา", - "name": "th-TH-AcharaNeural" - } - ], - "tr-TR": [ - { - "localeName": "Ahmet", - "name": "tr-TR-AhmetNeural" - }, - { - "localeName": "Emel", - "name": "tr-TR-EmelNeural" - } - ], - "uk-UA": [ - { - "localeName": "Остап", - "name": "uk-UA-OstapNeural" - }, - { - "localeName": "Поліна", - "name": "uk-UA-PolinaNeural" - } - ], - "ur-IN": [ - { - "localeName": "سلمان", - "name": "ur-IN-SalmanNeural" - }, - { - "localeName": "گل", - "name": "ur-IN-GulNeural" - } - ], - "ur-PK": [ - { - "localeName": "اسد", - "name": "ur-PK-AsadNeural" - }, - { - "localeName": "عظمیٰ", - "name": "ur-PK-UzmaNeural" - } - ], - "uz-UZ": [ - { - "localeName": "Madina", - "name": "uz-UZ-MadinaNeural" - }, - { - "localeName": "Sardor", - "name": "uz-UZ-SardorNeural" - } - ], - "vi-VN": [ - { - "localeName": "Hoài My", - "name": "vi-VN-HoaiMyNeural" - }, - { - "localeName": "Nam Minh", - "name": "vi-VN-NamMinhNeural" - } - ], - "zh-CN": [ - { - "localeName": "云健", - "name": "zh-CN-YunjianNeural" - }, - { - "localeName": "云哲", - "name": "wuu-CN-YunzheNeural" - }, - { - "localeName": "云夏", - "name": "zh-CN-YunxiaNeural" - }, - { - "localeName": "云奇", - "name": "zh-CN-guangxi-YunqiNeural" - }, - { - "localeName": "云希", - "name": "zh-CN-sichuan-YunxiNeural" - }, - { - "localeName": "云希", - "name": "zh-CN-YunxiNeural" - }, - { - "localeName": "云扬", - "name": "zh-CN-YunyangNeural" - }, - { - "localeName": "云杰", - "name": "zh-CN-YunjieNeural" - }, - { - "localeName": "云松", - "name": "yue-CN-YunSongNeural" - }, - { - "localeName": "云枫", - "name": "zh-CN-YunfengNeural" - }, - { - "localeName": "云泽", - "name": "zh-CN-YunzeNeural" - }, - { - "localeName": "云登", - "name": "zh-CN-henan-YundengNeural" - }, - { - "localeName": "云皓", - "name": "zh-CN-YunhaoNeural" - }, - { - "localeName": "云翔", - "name": "zh-CN-shandong-YunxiangNeural" - }, - { - "localeName": "云彪", - "name": "zh-CN-liaoning-YunbiaoNeural" - }, - { - "localeName": "云野", - "name": "zh-CN-YunyeNeural" - }, - { - "localeName": "晓伊", - "name": "zh-CN-XiaoyiNeural" - }, - { - "localeName": "晓北", - "name": "zh-CN-liaoning-XiaobeiNeural" - }, - { - "localeName": "晓双", - "name": "zh-CN-XiaoshuangNeural" - }, - { - "localeName": "晓妮", - "name": "zh-CN-shaanxi-XiaoniNeural" - }, - { - "localeName": "晓彤", - "name": "wuu-CN-XiaotongNeural" - }, - { - "localeName": "晓悠", - "name": "zh-CN-XiaoyouNeural" - }, - { - "localeName": "晓敏", - "name": "yue-CN-XiaoMinNeural" - }, - { - "localeName": "晓晓", - "name": "zh-CN-XiaoxiaoNeural" - }, - { - "localeName": "晓柔", - "name": "zh-CN-XiaorouNeural" - }, - { - "localeName": "晓梦", - "name": "zh-CN-XiaomengNeural" - }, - { - "localeName": "晓涵", - "name": "zh-CN-XiaohanNeural" - }, - { - "localeName": "晓甄", - "name": "zh-CN-XiaozhenNeural" - }, - { - "localeName": "晓睿", - "name": "zh-CN-XiaoruiNeural" - }, - { - "localeName": "晓秋", - "name": "zh-CN-XiaoqiuNeural" - }, - { - "localeName": "晓萱", - "name": "zh-CN-XiaoxuanNeural" - }, - { - "localeName": "晓辰", - "name": "zh-CN-XiaochenNeural" - }, - { - "localeName": "晓颜", - "name": "zh-CN-XiaoyanNeural" - }, - { - "localeName": "晓墨", - "name": "zh-CN-XiaomoNeural" - } - ], - "zh-HK": [ - { - "localeName": "曉佳", - "name": "zh-HK-HiuGaaiNeural" - }, - { - "localeName": "曉曼", - "name": "zh-HK-HiuMaanNeural" - }, - { - "localeName": "雲龍", - "name": "zh-HK-WanLungNeural" - } - ], - "zh-TW": [ - { - "localeName": "曉臻", - "name": "zh-TW-HsiaoChenNeural" - }, - { - "localeName": "曉雨", - "name": "zh-TW-HsiaoYuNeural" - }, - { - "localeName": "雲哲", - "name": "zh-TW-YunJheNeural" - } - ], - "zu-ZA": [ - { - "localeName": "Thando", - "name": "zu-ZA-ThandoNeural" - }, - { - "localeName": "Themba", - "name": "zu-ZA-ThembaNeural" - } - ] -} diff --git a/src/data/azureVoiceListLite.json b/src/data/azureVoiceListLite.json deleted file mode 100644 index e02fe0a..0000000 --- a/src/data/azureVoiceListLite.json +++ /dev/null @@ -1,358 +0,0 @@ -{ - "en-US": [ - { - "localeName": "AIGenerate1", - "name": "en-US-AIGenerate1Neural" - }, - { - "localeName": "AIGenerate2", - "name": "en-US-AIGenerate2Neural" - }, - { - "localeName": "Amber", - "name": "en-US-AmberNeural" - }, - { - "localeName": "Ana", - "name": "en-US-AnaNeural" - }, - { - "localeName": "Andrew", - "name": "en-US-AndrewNeural" - }, - { - "localeName": "Aria", - "name": "en-US-AriaNeural" - }, - { - "localeName": "Ashley", - "name": "en-US-AshleyNeural" - }, - { - "localeName": "Blue", - "name": "en-US-BlueNeural" - }, - { - "localeName": "Brandon", - "name": "en-US-BrandonNeural" - }, - { - "localeName": "Brian", - "name": "en-US-BrianNeural" - }, - { - "localeName": "Christopher", - "name": "en-US-ChristopherNeural" - }, - { - "localeName": "Cora", - "name": "en-US-CoraNeural" - }, - { - "localeName": "Davis", - "name": "en-US-DavisNeural" - }, - { - "localeName": "Elizabeth", - "name": "en-US-ElizabethNeural" - }, - { - "localeName": "Emma", - "name": "en-US-EmmaNeural" - }, - { - "localeName": "Eric", - "name": "en-US-EricNeural" - }, - { - "localeName": "Guy", - "name": "en-US-GuyNeural" - }, - { - "localeName": "Jacob", - "name": "en-US-JacobNeural" - }, - { - "localeName": "Jane", - "name": "en-US-JaneNeural" - }, - { - "localeName": "Jason", - "name": "en-US-JasonNeural" - }, - { - "localeName": "Jenny", - "name": "en-US-JennyNeural" - }, - { - "localeName": "Jenny Multilingual", - "name": "en-US-JennyMultilingualNeural" - }, - { - "localeName": "Jenny Multilingual V2", - "name": "en-US-JennyMultilingualV2Neural" - }, - { - "localeName": "Michelle", - "name": "en-US-MichelleNeural" - }, - { - "localeName": "Monica", - "name": "en-US-MonicaNeural" - }, - { - "localeName": "Nancy", - "name": "en-US-NancyNeural" - }, - { - "localeName": "Roger", - "name": "en-US-RogerNeural" - }, - { - "localeName": "Ryan Multilingual", - "name": "en-US-RyanMultilingualNeural" - }, - { - "localeName": "Sara", - "name": "en-US-SaraNeural" - }, - { - "localeName": "Steffan", - "name": "en-US-SteffanNeural" - }, - { - "localeName": "Tony", - "name": "en-US-TonyNeural" - } - ], - "ja-JP": [ - { - "localeName": "七海", - "name": "ja-JP-NanamiNeural" - }, - { - "localeName": "圭太", - "name": "ja-JP-KeitaNeural" - }, - { - "localeName": "大智", - "name": "ja-JP-DaichiNeural" - }, - { - "localeName": "志織", - "name": "ja-JP-ShioriNeural" - }, - { - "localeName": "直紀", - "name": "ja-JP-NaokiNeural" - }, - { - "localeName": "真夕", - "name": "ja-JP-MayuNeural" - }, - { - "localeName": "碧衣", - "name": "ja-JP-AoiNeural" - } - ], - "ko-KR": [ - { - "localeName": "국민", - "name": "ko-KR-GookMinNeural" - }, - { - "localeName": "봉진", - "name": "ko-KR-BongJinNeural" - }, - { - "localeName": "서현", - "name": "ko-KR-SeoHyeonNeural" - }, - { - "localeName": "선히", - "name": "ko-KR-SunHiNeural" - }, - { - "localeName": "순복", - "name": "ko-KR-SoonBokNeural" - }, - { - "localeName": "유진", - "name": "ko-KR-YuJinNeural" - }, - { - "localeName": "인준", - "name": "ko-KR-InJoonNeural" - }, - { - "localeName": "지민", - "name": "ko-KR-JiMinNeural" - } - ], - "ru-RU": [ - { - "localeName": "Дария", - "name": "ru-RU-DariyaNeural" - }, - { - "localeName": "Дмитрий", - "name": "ru-RU-DmitryNeural" - }, - { - "localeName": "Светлана", - "name": "ru-RU-SvetlanaNeural" - } - ], - "zh-CN": [ - { - "localeName": "云健", - "name": "zh-CN-YunjianNeural" - }, - { - "localeName": "云哲", - "name": "wuu-CN-YunzheNeural" - }, - { - "localeName": "云夏", - "name": "zh-CN-YunxiaNeural" - }, - { - "localeName": "云奇", - "name": "zh-CN-guangxi-YunqiNeural" - }, - { - "localeName": "云希", - "name": "zh-CN-sichuan-YunxiNeural" - }, - { - "localeName": "云希", - "name": "zh-CN-YunxiNeural" - }, - { - "localeName": "云扬", - "name": "zh-CN-YunyangNeural" - }, - { - "localeName": "云杰", - "name": "zh-CN-YunjieNeural" - }, - { - "localeName": "云松", - "name": "yue-CN-YunSongNeural" - }, - { - "localeName": "云枫", - "name": "zh-CN-YunfengNeural" - }, - { - "localeName": "云泽", - "name": "zh-CN-YunzeNeural" - }, - { - "localeName": "云登", - "name": "zh-CN-henan-YundengNeural" - }, - { - "localeName": "云皓", - "name": "zh-CN-YunhaoNeural" - }, - { - "localeName": "云翔", - "name": "zh-CN-shandong-YunxiangNeural" - }, - { - "localeName": "云彪", - "name": "zh-CN-liaoning-YunbiaoNeural" - }, - { - "localeName": "云野", - "name": "zh-CN-YunyeNeural" - }, - { - "localeName": "晓伊", - "name": "zh-CN-XiaoyiNeural" - }, - { - "localeName": "晓北", - "name": "zh-CN-liaoning-XiaobeiNeural" - }, - { - "localeName": "晓双", - "name": "zh-CN-XiaoshuangNeural" - }, - { - "localeName": "晓妮", - "name": "zh-CN-shaanxi-XiaoniNeural" - }, - { - "localeName": "晓彤", - "name": "wuu-CN-XiaotongNeural" - }, - { - "localeName": "晓悠", - "name": "zh-CN-XiaoyouNeural" - }, - { - "localeName": "晓敏", - "name": "yue-CN-XiaoMinNeural" - }, - { - "localeName": "晓晓", - "name": "zh-CN-XiaoxiaoNeural" - }, - { - "localeName": "晓柔", - "name": "zh-CN-XiaorouNeural" - }, - { - "localeName": "晓梦", - "name": "zh-CN-XiaomengNeural" - }, - { - "localeName": "晓涵", - "name": "zh-CN-XiaohanNeural" - }, - { - "localeName": "晓甄", - "name": "zh-CN-XiaozhenNeural" - }, - { - "localeName": "晓睿", - "name": "zh-CN-XiaoruiNeural" - }, - { - "localeName": "晓秋", - "name": "zh-CN-XiaoqiuNeural" - }, - { - "localeName": "晓萱", - "name": "zh-CN-XiaoxuanNeural" - }, - { - "localeName": "晓辰", - "name": "zh-CN-XiaochenNeural" - }, - { - "localeName": "晓颜", - "name": "zh-CN-XiaoyanNeural" - }, - { - "localeName": "晓墨", - "name": "zh-CN-XiaomoNeural" - } - ], - "zh-TW": [ - { - "localeName": "曉臻", - "name": "zh-TW-HsiaoChenNeural" - }, - { - "localeName": "曉雨", - "name": "zh-TW-HsiaoYuNeural" - }, - { - "localeName": "雲哲", - "name": "zh-TW-YunJheNeural" - } - ] -} diff --git a/src/data/edgeVoiceList.json b/src/data/edgeVoiceList.json deleted file mode 100644 index 2c956bf..0000000 --- a/src/data/edgeVoiceList.json +++ /dev/null @@ -1,165 +0,0 @@ -{ - "af-ZA": ["af-ZA-AdriNeural", "af-ZA-WillemNeural"], - "am-ET": ["am-ET-AmehaNeural", "am-ET-MekdesNeural"], - "ar-AE": ["ar-AE-FatimaNeural", "ar-AE-HamdanNeural"], - "ar-BH": ["ar-BH-AliNeural", "ar-BH-LailaNeural"], - "ar-DZ": ["ar-DZ-AminaNeural", "ar-DZ-IsmaelNeural"], - "ar-EG": ["ar-EG-SalmaNeural", "ar-EG-ShakirNeural"], - "ar-IQ": ["ar-IQ-BasselNeural", "ar-IQ-RanaNeural"], - "ar-JO": ["ar-JO-SanaNeural", "ar-JO-TaimNeural"], - "ar-KW": ["ar-KW-FahedNeural", "ar-KW-NouraNeural"], - "ar-LB": ["ar-LB-LaylaNeural", "ar-LB-RamiNeural"], - "ar-LY": ["ar-LY-ImanNeural", "ar-LY-OmarNeural"], - "ar-MA": ["ar-MA-JamalNeural", "ar-MA-MounaNeural"], - "ar-OM": ["ar-OM-AbdullahNeural", "ar-OM-AyshaNeural"], - "ar-QA": ["ar-QA-AmalNeural", "ar-QA-MoazNeural"], - "ar-SA": ["ar-SA-HamedNeural", "ar-SA-ZariyahNeural"], - "ar-SY": ["ar-SY-AmanyNeural", "ar-SY-LaithNeural"], - "ar-TN": ["ar-TN-HediNeural", "ar-TN-ReemNeural"], - "ar-YE": ["ar-YE-MaryamNeural", "ar-YE-SalehNeural"], - "az-AZ": ["az-AZ-BabekNeural", "az-AZ-BanuNeural"], - "bg-BG": ["bg-BG-BorislavNeural", "bg-BG-KalinaNeural"], - "bn-BD": ["bn-BD-NabanitaNeural", "bn-BD-PradeepNeural"], - "bn-IN": ["bn-IN-BashkarNeural", "bn-IN-TanishaaNeural"], - "bs-BA": ["bs-BA-GoranNeural", "bs-BA-VesnaNeural"], - "ca-ES": ["ca-ES-EnricNeural", "ca-ES-JoanaNeural"], - "cs-CZ": ["cs-CZ-AntoninNeural", "cs-CZ-VlastaNeural"], - "cy-GB": ["cy-GB-AledNeural", "cy-GB-NiaNeural"], - "da-DK": ["da-DK-ChristelNeural", "da-DK-JeppeNeural"], - "de-AT": ["de-AT-IngridNeural", "de-AT-JonasNeural"], - "de-CH": ["de-CH-JanNeural", "de-CH-LeniNeural"], - "de-DE": ["de-DE-AmalaNeural", "de-DE-ConradNeural", "de-DE-KatjaNeural", "de-DE-KillianNeural"], - "el-GR": ["el-GR-AthinaNeural", "el-GR-NestorasNeural"], - "en-AU": ["en-AU-NatashaNeural", "en-AU-WilliamNeural"], - "en-CA": ["en-CA-ClaraNeural", "en-CA-LiamNeural"], - "en-GB": [ - "en-GB-LibbyNeural", - "en-GB-MaisieNeural", - "en-GB-RyanNeural", - "en-GB-SoniaNeural", - "en-GB-ThomasNeural" - ], - "en-HK": ["en-HK-SamNeural", "en-HK-YanNeural"], - "en-IE": ["en-IE-ConnorNeural", "en-IE-EmilyNeural"], - "en-IN": ["en-IN-NeerjaExpressiveNeural", "en-IN-NeerjaNeural", "en-IN-PrabhatNeural"], - "en-KE": ["en-KE-AsiliaNeural", "en-KE-ChilembaNeural"], - "en-NG": ["en-NG-AbeoNeural", "en-NG-EzinneNeural"], - "en-NZ": ["en-NZ-MitchellNeural", "en-NZ-MollyNeural"], - "en-PH": ["en-PH-JamesNeural", "en-PH-RosaNeural"], - "en-SG": ["en-SG-LunaNeural", "en-SG-WayneNeural"], - "en-TZ": ["en-TZ-ElimuNeural", "en-TZ-ImaniNeural"], - "en-US": [ - "en-US-AriaNeural", - "en-US-AnaNeural", - "en-US-ChristopherNeural", - "en-US-EricNeural", - "en-US-GuyNeural", - "en-US-JennyNeural", - "en-US-MichelleNeural", - "en-US-RogerNeural", - "en-US-SteffanNeural" - ], - "en-ZA": ["en-ZA-LeahNeural", "en-ZA-LukeNeural"], - "es-AR": ["es-AR-ElenaNeural", "es-AR-TomasNeural"], - "es-BO": ["es-BO-MarceloNeural", "es-BO-SofiaNeural"], - "es-CL": ["es-CL-CatalinaNeural", "es-CL-LorenzoNeural"], - "es-CO": ["es-CO-GonzaloNeural", "es-CO-SalomeNeural"], - "es-CR": ["es-CR-JuanNeural", "es-CR-MariaNeural"], - "es-CU": ["es-CU-BelkysNeural", "es-CU-ManuelNeural"], - "es-DO": ["es-DO-EmilioNeural", "es-DO-RamonaNeural"], - "es-EC": ["es-EC-AndreaNeural", "es-EC-LuisNeural"], - "es-ES": ["es-ES-AlvaroNeural", "es-ES-ElviraNeural"], - "es-GQ": ["es-GQ-JavierNeural", "es-GQ-TeresaNeural"], - "es-GT": ["es-GT-AndresNeural", "es-GT-MartaNeural"], - "es-HN": ["es-HN-CarlosNeural", "es-HN-KarlaNeural"], - "es-MX": ["es-MX-DaliaNeural", "es-MX-JorgeNeural"], - "es-NI": ["es-NI-FedericoNeural", "es-NI-YolandaNeural"], - "es-PA": ["es-PA-MargaritaNeural", "es-PA-RobertoNeural"], - "es-PE": ["es-PE-AlexNeural", "es-PE-CamilaNeural"], - "es-PR": ["es-PR-KarinaNeural", "es-PR-VictorNeural"], - "es-PY": ["es-PY-MarioNeural", "es-PY-TaniaNeural"], - "es-SV": ["es-SV-LorenaNeural", "es-SV-RodrigoNeural"], - "es-US": ["es-US-AlonsoNeural", "es-US-PalomaNeural"], - "es-UY": ["es-UY-MateoNeural", "es-UY-ValentinaNeural"], - "es-VE": ["es-VE-PaolaNeural", "es-VE-SebastianNeural"], - "et-EE": ["et-EE-AnuNeural", "et-EE-KertNeural"], - "fa-IR": ["fa-IR-DilaraNeural", "fa-IR-FaridNeural"], - "fi-FI": ["fi-FI-HarriNeural", "fi-FI-NooraNeural"], - "fil-PH": ["fil-PH-AngeloNeural", "fil-PH-BlessicaNeural"], - "fr-BE": ["fr-BE-CharlineNeural", "fr-BE-GerardNeural"], - "fr-CA": ["fr-CA-AntoineNeural", "fr-CA-JeanNeural", "fr-CA-SylvieNeural"], - "fr-CH": ["fr-CH-ArianeNeural", "fr-CH-FabriceNeural"], - "fr-FR": ["fr-FR-DeniseNeural", "fr-FR-EloiseNeural", "fr-FR-HenriNeural"], - "ga-IE": ["ga-IE-ColmNeural", "ga-IE-OrlaNeural"], - "gl-ES": ["gl-ES-RoiNeural", "gl-ES-SabelaNeural"], - "gu-IN": ["gu-IN-DhwaniNeural", "gu-IN-NiranjanNeural"], - "he-IL": ["he-IL-AvriNeural", "he-IL-HilaNeural"], - "hi-IN": ["hi-IN-MadhurNeural", "hi-IN-SwaraNeural"], - "hr-HR": ["hr-HR-GabrijelaNeural", "hr-HR-SreckoNeural"], - "hu-HU": ["hu-HU-NoemiNeural", "hu-HU-TamasNeural"], - "id-ID": ["id-ID-ArdiNeural", "id-ID-GadisNeural"], - "is-IS": ["is-IS-GudrunNeural", "is-IS-GunnarNeural"], - "it-IT": ["it-IT-DiegoNeural", "it-IT-ElsaNeural", "it-IT-IsabellaNeural"], - "ja-JP": ["ja-JP-KeitaNeural", "ja-JP-NanamiNeural"], - "jv-ID": ["jv-ID-DimasNeural", "jv-ID-SitiNeural"], - "ka-GE": ["ka-GE-EkaNeural", "ka-GE-GiorgiNeural"], - "kk-KZ": ["kk-KZ-AigulNeural", "kk-KZ-DauletNeural"], - "km-KH": ["km-KH-PisethNeural", "km-KH-SreymomNeural"], - "kn-IN": ["kn-IN-GaganNeural", "kn-IN-SapnaNeural"], - "ko-KR": ["ko-KR-InJoonNeural", "ko-KR-SunHiNeural"], - "lo-LA": ["lo-LA-ChanthavongNeural", "lo-LA-KeomanyNeural"], - "lt-LT": ["lt-LT-LeonasNeural", "lt-LT-OnaNeural"], - "lv-LV": ["lv-LV-EveritaNeural", "lv-LV-NilsNeural"], - "mk-MK": ["mk-MK-AleksandarNeural", "mk-MK-MarijaNeural"], - "ml-IN": ["ml-IN-MidhunNeural", "ml-IN-SobhanaNeural"], - "mn-MN": ["mn-MN-BataaNeural", "mn-MN-YesuiNeural"], - "mr-IN": ["mr-IN-AarohiNeural", "mr-IN-ManoharNeural"], - "ms-MY": ["ms-MY-OsmanNeural", "ms-MY-YasminNeural"], - "mt-MT": ["mt-MT-GraceNeural", "mt-MT-JosephNeural"], - "my-MM": ["my-MM-NilarNeural", "my-MM-ThihaNeural"], - "nb-NO": ["nb-NO-FinnNeural", "nb-NO-PernilleNeural"], - "ne-NP": ["ne-NP-HemkalaNeural", "ne-NP-SagarNeural"], - "nl-BE": ["nl-BE-ArnaudNeural", "nl-BE-DenaNeural"], - "nl-NL": ["nl-NL-ColetteNeural", "nl-NL-FennaNeural", "nl-NL-MaartenNeural"], - "pl-PL": ["pl-PL-MarekNeural", "pl-PL-ZofiaNeural"], - "ps-AF": ["ps-AF-GulNawazNeural", "ps-AF-LatifaNeural"], - "pt-BR": ["pt-BR-AntonioNeural", "pt-BR-FranciscaNeural"], - "pt-PT": ["pt-PT-DuarteNeural", "pt-PT-RaquelNeural"], - "ro-RO": ["ro-RO-AlinaNeural", "ro-RO-EmilNeural"], - "ru-RU": ["ru-RU-DmitryNeural", "ru-RU-SvetlanaNeural"], - "si-LK": ["si-LK-SameeraNeural", "si-LK-ThiliniNeural"], - "sk-SK": ["sk-SK-LukasNeural", "sk-SK-ViktoriaNeural"], - "sl-SI": ["sl-SI-PetraNeural", "sl-SI-RokNeural"], - "so-SO": ["so-SO-MuuseNeural", "so-SO-UbaxNeural"], - "sq-AL": ["sq-AL-AnilaNeural", "sq-AL-IlirNeural"], - "sr-RS": ["sr-RS-NicholasNeural", "sr-RS-SophieNeural"], - "su-ID": ["su-ID-JajangNeural", "su-ID-TutiNeural"], - "sv-SE": ["sv-SE-MattiasNeural", "sv-SE-SofieNeural"], - "sw-KE": ["sw-KE-RafikiNeural", "sw-KE-ZuriNeural"], - "sw-TZ": ["sw-TZ-DaudiNeural", "sw-TZ-RehemaNeural"], - "ta-IN": ["ta-IN-PallaviNeural", "ta-IN-ValluvarNeural"], - "ta-LK": ["ta-LK-KumarNeural", "ta-LK-SaranyaNeural"], - "ta-MY": ["ta-MY-KaniNeural", "ta-MY-SuryaNeural"], - "ta-SG": ["ta-SG-AnbuNeural", "ta-SG-VenbaNeural"], - "te-IN": ["te-IN-MohanNeural", "te-IN-ShrutiNeural"], - "th-TH": ["th-TH-NiwatNeural", "th-TH-PremwadeeNeural"], - "tr-TR": ["tr-TR-AhmetNeural", "tr-TR-EmelNeural"], - "uk-UA": ["uk-UA-OstapNeural", "uk-UA-PolinaNeural"], - "ur-IN": ["ur-IN-GulNeural", "ur-IN-SalmanNeural"], - "ur-PK": ["ur-PK-AsadNeural", "ur-PK-UzmaNeural"], - "uz-UZ": ["uz-UZ-MadinaNeural", "uz-UZ-SardorNeural"], - "vi-VN": ["vi-VN-HoaiMyNeural", "vi-VN-NamMinhNeural"], - "zh-CN": [ - "zh-CN-XiaoxiaoNeural", - "zh-CN-XiaoyiNeural", - "zh-CN-YunjianNeural", - "zh-CN-YunxiNeural", - "zh-CN-YunxiaNeural", - "zh-CN-YunyangNeural" - ], - "zh-CN-liaoning": ["zh-CN-liaoning-XiaobeiNeural"], - "zh-CN-shaanxi": ["zh-CN-shaanxi-XiaoniNeural"], - "zh-HK": ["zh-HK-HiuGaaiNeural", "zh-HK-HiuMaanNeural", "zh-HK-WanLungNeural"], - "zh-TW": ["zh-TW-HsiaoChenNeural", "zh-TW-YunJheNeural", "zh-TW-HsiaoYuNeural"], - "zu-ZA": ["zu-ZA-ThandoNeural", "zu-ZA-ThembaNeural"] -} diff --git a/src/data/edgeVoiceList.ts b/src/data/edgeVoiceList.ts new file mode 100644 index 0000000..eedfffa --- /dev/null +++ b/src/data/edgeVoiceList.ts @@ -0,0 +1,33 @@ +export default { + 'ar-SA': ['ar-SA-HamedNeural', 'ar-SA-ZariyahNeural'], + 'de-DE': ['de-DE-AmalaNeural', 'de-DE-ConradNeural', 'de-DE-KatjaNeural', 'de-DE-KillianNeural'], + 'en-US': [ + 'en-US-AriaNeural', + 'en-US-AnaNeural', + 'en-US-ChristopherNeural', + 'en-US-EricNeural', + 'en-US-GuyNeural', + 'en-US-JennyNeural', + 'en-US-MichelleNeural', + 'en-US-RogerNeural', + 'en-US-SteffanNeural', + ], + 'es-ES': ['es-ES-AlvaroNeural', 'es-ES-ElviraNeural'], + 'fr-FR': ['fr-FR-DeniseNeural', 'fr-FR-EloiseNeural', 'fr-FR-HenriNeural'], + 'ja-JP': ['ja-JP-KeitaNeural', 'ja-JP-NanamiNeural'], + 'ko-KR': ['ko-KR-InJoonNeural', 'ko-KR-SunHiNeural'], + 'pt-BR': ['pt-BR-AntonioNeural', 'pt-BR-FranciscaNeural'], + 'ru-RU': ['ru-RU-DmitryNeural', 'ru-RU-SvetlanaNeural'], + 'zh-CN': [ + 'zh-CN-XiaoxiaoNeural', + 'zh-CN-XiaoyiNeural', + 'zh-CN-YunjianNeural', + 'zh-CN-liaoning-XiaobeiNeural', + 'zh-CN-shaanxi-XiaoniNeural', + 'zh-CN-YunxiNeural', + 'zh-CN-YunxiaNeural', + 'zh-CN-YunyangNeural', + ], + + 'zh-TW': ['zh-TW-HsiaoChenNeural', 'zh-TW-YunJheNeural', 'zh-TW-HsiaoYuNeural'], +} as const; diff --git a/src/data/locales.ts b/src/data/locales.ts new file mode 100644 index 0000000..7ec77a1 --- /dev/null +++ b/src/data/locales.ts @@ -0,0 +1,13 @@ +export default { + 'ar-SA': 'العربية', + 'de-DE': 'Deutsch', + 'en-US': 'English', + 'es-ES': 'Español', + 'fr-FR': 'Français', + 'ja-JP': '日本語', + 'ko-KR': '한국어', + 'pt-BR': 'Português', + 'ru-RU': 'Русский', + 'zh-CN': '简体中文', + 'zh-TW': '繁體中文', +} as const; diff --git a/src/data/nameList.ts b/src/data/nameList.ts new file mode 100644 index 0000000..dd354ef --- /dev/null +++ b/src/data/nameList.ts @@ -0,0 +1,149 @@ +export default { + 'ar-SA-HamedNeural': 'حامد', + 'ar-SA-ZariyahNeural': 'زارية', + 'de-DE-AmalaNeural': 'Amala', + 'de-DE-BerndNeural': 'Bernd', + 'de-DE-ChristophNeural': 'Christoph', + 'de-DE-ConradNeural': 'Conrad', + 'de-DE-ElkeNeural': 'Elke', + 'de-DE-GiselaNeural': 'Gisela', + 'de-DE-KasperNeural': 'Kasper', + 'de-DE-KatjaNeural': 'Katja', + 'de-DE-KillianNeural': 'Killian', + 'de-DE-KlarissaNeural': 'Klarissa', + 'de-DE-KlausNeural': 'Klaus', + 'de-DE-LouisaNeural': 'Louisa', + 'de-DE-MajaNeural': 'Maja', + 'de-DE-RalfNeural': 'Ralf', + 'de-DE-TanjaNeural': 'Tanja', + 'en-US-AIGenerate1Neural': 'AIGenerate1', + 'en-US-AIGenerate2Neural': 'AIGenerate2', + 'en-US-AmberNeural': 'Amber', + 'en-US-AnaNeural': 'Ana', + 'en-US-AndrewNeural': 'Andrew', + 'en-US-AriaNeural': 'Aria', + 'en-US-AshleyNeural': 'Ashley', + 'en-US-BlueNeural': 'Blue', + 'en-US-BrandonNeural': 'Brandon', + 'en-US-BrianNeural': 'Brian', + 'en-US-ChristopherNeural': 'Christopher', + 'en-US-CoraNeural': 'Cora', + 'en-US-DavisNeural': 'Davis', + 'en-US-ElizabethNeural': 'Elizabeth', + 'en-US-EmmaNeural': 'Emma', + 'en-US-EricNeural': 'Eric', + 'en-US-GuyNeural': 'Guy', + 'en-US-JacobNeural': 'Jacob', + 'en-US-JaneNeural': 'Jane', + 'en-US-JasonNeural': 'Jason', + 'en-US-JennyMultilingualNeural': 'Jenny Multilingual', + 'en-US-JennyMultilingualV2Neural': 'Jenny Multilingual V2', + 'en-US-JennyNeural': 'Jenny', + 'en-US-MichelleNeural': 'Michelle', + 'en-US-MonicaNeural': 'Monica', + 'en-US-NancyNeural': 'Nancy', + 'en-US-RogerNeural': 'Roger', + 'en-US-RyanMultilingualNeural': 'Ryan Multilingual', + 'en-US-SaraNeural': 'Sara', + 'en-US-SteffanNeural': 'Steffan', + 'en-US-TonyNeural': 'Tony', + 'es-ES-AbrilNeural': 'Abril', + 'es-ES-AlvaroNeural': 'Álvaro', + 'es-ES-ArnauNeural': 'Arnau', + 'es-ES-DarioNeural': 'Dario', + 'es-ES-EliasNeural': 'Elias', + 'es-ES-ElviraNeural': 'Elvira', + 'es-ES-EstrellaNeural': 'Estrella', + 'es-ES-IreneNeural': 'Irene', + 'es-ES-LaiaNeural': 'Laia', + 'es-ES-LiaNeural': 'Lia', + 'es-ES-NilNeural': 'Nil', + 'es-ES-SaulNeural': 'Saul', + 'es-ES-TeoNeural': 'Teo', + 'es-ES-TrianaNeural': 'Triana', + 'es-ES-VeraNeural': 'Vera', + 'fr-FR-AlainNeural': 'Alain', + 'fr-FR-BrigitteNeural': 'Brigitte', + 'fr-FR-CelesteNeural': 'Celeste', + 'fr-FR-ClaudeNeural': 'Claude', + 'fr-FR-CoralieNeural': 'Coralie', + 'fr-FR-DeniseNeural': 'Denise', + 'fr-FR-EloiseNeural': 'Eloise', + 'fr-FR-HenriNeural': 'Henri', + 'fr-FR-JacquelineNeural': 'Jacqueline', + 'fr-FR-JeromeNeural': 'Jerome', + 'fr-FR-JosephineNeural': 'Josephine', + 'fr-FR-MauriceNeural': 'Maurice', + 'fr-FR-YvesNeural': 'Yves', + 'fr-FR-YvetteNeural': 'Yvette', + 'ja-JP-AoiNeural': '碧衣', + 'ja-JP-DaichiNeural': '大智', + 'ja-JP-KeitaNeural': '圭太', + 'ja-JP-MayuNeural': '真夕', + 'ja-JP-NanamiNeural': '七海', + 'ja-JP-NaokiNeural': '直紀', + 'ja-JP-ShioriNeural': '志織', + 'ko-KR-BongJinNeural': '봉진', + 'ko-KR-GookMinNeural': '국민', + 'ko-KR-InJoonNeural': '인준', + 'ko-KR-JiMinNeural': '지민', + 'ko-KR-SeoHyeonNeural': '서현', + 'ko-KR-SoonBokNeural': '순복', + 'ko-KR-SunHiNeural': '선히', + 'ko-KR-YuJinNeural': '유진', + 'pt-BR-AntonioNeural': 'Antônio', + 'pt-BR-BrendaNeural': 'Brenda', + 'pt-BR-DonatoNeural': 'Donato', + 'pt-BR-ElzaNeural': 'Elza', + 'pt-BR-FabioNeural': 'Fabio', + 'pt-BR-FranciscaNeural': 'Francisca', + 'pt-BR-GiovannaNeural': 'Giovanna', + 'pt-BR-HumbertoNeural': 'Humberto', + 'pt-BR-JulioNeural': 'Julio', + 'pt-BR-LeilaNeural': 'Leila', + 'pt-BR-LeticiaNeural': 'Leticia', + 'pt-BR-ManuelaNeural': 'Manuela', + 'pt-BR-NicolauNeural': 'Nicolau', + 'pt-BR-ValerioNeural': 'Valerio', + 'pt-BR-YaraNeural': 'Yara', + 'ru-RU-DariyaNeural': 'Дария', + 'ru-RU-DmitryNeural': 'Дмитрий', + 'ru-RU-SvetlanaNeural': 'Светлана', + '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-XiaorouNeural': '晓柔', + 'zh-CN-XiaoruiNeural': '晓睿', + 'zh-CN-XiaoshuangNeural': '晓双', + 'zh-CN-XiaoxiaoNeural': '晓晓', + 'zh-CN-XiaoxuanNeural': '晓萱', + 'zh-CN-XiaoyanNeural': '晓颜', + 'zh-CN-XiaoyiNeural': '晓伊', + 'zh-CN-XiaoyouNeural': '晓悠', + 'zh-CN-XiaozhenNeural': '晓甄', + 'zh-CN-YunfengNeural': '云枫', + 'zh-CN-YunhaoNeural': '云皓', + 'zh-CN-YunjianNeural': '云健', + 'zh-CN-YunjieNeural': '云杰', + 'zh-CN-YunxiNeural': '云希', + 'zh-CN-YunxiaNeural': '云夏', + 'zh-CN-YunyangNeural': '云扬', + 'zh-CN-YunyeNeural': '云野', + 'zh-CN-YunzeNeural': '云泽', + 'zh-CN-guangxi-YunqiNeural': '云奇', + 'zh-CN-henan-YundengNeural': '云登', + 'zh-CN-liaoning-XiaobeiNeural': '晓北', + 'zh-CN-liaoning-YunbiaoNeural': '云彪', + 'zh-CN-shaanxi-XiaoniNeural': '晓妮', + 'zh-CN-shandong-YunxiangNeural': '云翔', + 'zh-CN-sichuan-YunxiNeural': '云希', + 'zh-TW-HsiaoChenNeural': '曉臻', + 'zh-TW-HsiaoYuNeural': '曉雨', + 'zh-TW-YunJheNeural': '雲哲', +} as any; diff --git a/src/data/openaiVoiceList.json b/src/data/openaiVoiceList.json deleted file mode 100644 index fe1f721..0000000 --- a/src/data/openaiVoiceList.json +++ /dev/null @@ -1 +0,0 @@ -["alloy", "echo", "fable", "onyx", "nova", "shimmer"] diff --git a/src/data/openaiVoiceList.ts b/src/data/openaiVoiceList.ts new file mode 100644 index 0000000..7580272 --- /dev/null +++ b/src/data/openaiVoiceList.ts @@ -0,0 +1 @@ +export default ['alloy', 'echo', 'fable', 'onyx', 'nova', 'shimmer'] as const; diff --git a/src/data/speechSynthesVoiceList.json b/src/data/speechSynthesVoiceList.json deleted file mode 100644 index a2a4d10..0000000 --- a/src/data/speechSynthesVoiceList.json +++ /dev/null @@ -1,182 +0,0 @@ -{ - "ar-001": ["Majed"], - "bg-BG": ["Daria"], - "ca-ES": ["Montse"], - "cs-CZ": ["Zuzana"], - "da-DK": ["Sara"], - "de-DE": [ - "Anna", - "Eddy (德语(德国))", - "Flo (德语(德国))", - "Grandma (德语(德国))", - "Grandpa (德语(德国))", - "Helena", - "Martin", - "Reed (德语(德国))", - "Rocko (德语(德国))", - "Sandy (德语(德国))", - "Shelley (德语(德国))", - "Google Deutsch" - ], - "el-GR": ["Melina"], - "en-AU": ["Catherine", "Gordon", "Karen"], - "en-GB": [ - "Arthur", - "Daniel (英语(英国))", - "Eddy (英语(英国))", - "Flo (英语(英国))", - "Grandma (英语(英国))", - "Grandpa (英语(英国))", - "Martha", - "Reed (英语(英国))", - "Rocko (英语(英国))", - "Sandy (英语(英国))", - "Shelley (英语(英国))", - "Google UK English Female", - "Google UK English Male" - ], - "en-IE": ["Moira"], - "en-IN": ["Rishi"], - "en-US": [ - "Aaron", - "Albert", - "Bad News", - "Bahh", - "Bells", - "Boing", - "Bubbles", - "Cellos", - "Eddy (英语(美国))", - "Flo (英语(美国))", - "Fred", - "Good News", - "Grandma (英语(美国))", - "Grandpa (英语(美国))", - "Jester", - "Junior", - "Kathy", - "Nicky", - "Organ", - "Ralph", - "Reed (英语(美国))", - "Rocko (英语(美国))", - "Samantha", - "Sandy (英语(美国))", - "Shelley (英语(美国))", - "Superstar", - "Trinoids", - "Whisper", - "Wobble", - "Zarvox", - "Google US English" - ], - "en-ZA": ["Tessa"], - "es-ES": [ - "Eddy (西班牙语(西班牙))", - "Flo (西班牙语(西班牙))", - "Grandma (西班牙语(西班牙))", - "Grandpa (西班牙语(西班牙))", - "Mónica", - "Reed (西班牙语(西班牙))", - "Rocko (西班牙语(西班牙))", - "Sandy (西班牙语(西班牙))", - "Shelley (西班牙语(西班牙))", - "Google español" - ], - "es-MX": [ - "Eddy (西班牙语(墨西哥))", - "Flo (西班牙语(墨西哥))", - "Grandma (西班牙语(墨西哥))", - "Grandpa (西班牙语(墨西哥))", - "Paulina", - "Reed (西班牙语(墨西哥))", - "Rocko (西班牙语(墨西哥))", - "Sandy (西班牙语(墨西哥))", - "Shelley (西班牙语(墨西哥))" - ], - "es-US": ["Google español de Estados Unidos"], - "fi-FI": [ - "Eddy (芬兰语(芬兰))", - "Flo (芬兰语(芬兰))", - "Grandma (芬兰语(芬兰))", - "Grandpa (芬兰语(芬兰))", - "Reed (芬兰语(芬兰))", - "Rocko (芬兰语(芬兰))", - "Sandy (芬兰语(芬兰))", - "Satu", - "Shelley (芬兰语(芬兰))" - ], - "fr-CA": [ - "Amélie", - "Eddy (法语(加拿大))", - "Flo (法语(加拿大))", - "Grandma (法语(加拿大))", - "Grandpa (法语(加拿大))", - "Reed (法语(加拿大))", - "Rocko (法语(加拿大))", - "Sandy (法语(加拿大))", - "Shelley (法语(加拿大))" - ], - "fr-FR": [ - "Daniel (法语(法国))", - "Eddy (法语(法国))", - "Flo (法语(法国))", - "Grandma (法语(法国))", - "Grandpa (法语(法国))", - "Jacques", - "Marie", - "Rocko (法语(法国))", - "Sandy (法语(法国))", - "Shelley (法语(法国))", - "Thomas", - "Google français" - ], - "he-IL": ["Carmit"], - "hi-IN": ["Lekha", "Google हिन्दी"], - "hr-HR": ["Lana"], - "hu-HU": ["Tünde"], - "id-ID": ["Damayanti", "Google Bahasa Indonesia"], - "it-IT": [ - "Alice", - "Eddy (意大利语(意大利))", - "Flo (意大利语(意大利))", - "Grandma (意大利语(意大利))", - "Grandpa (意大利语(意大利))", - "Reed (意大利语(意大利))", - "Rocko (意大利语(意大利))", - "Sandy (意大利语(意大利))", - "Shelley (意大利语(意大利))", - "Google italiano" - ], - "ja-JP": ["Hattori", "Kyoko", "O-Ren", "Google 日本語"], - "ko-KR": ["Yuna", "Google 한국의"], - "ms-MY": ["Amira"], - "nb-NO": ["Nora"], - "nl-BE": ["Ellen"], - "nl-NL": ["Xander", "Google Nederlands"], - "pl-PL": ["Zosia", "Google polski"], - "pt-BR": [ - "Eddy (葡萄牙语(巴西))", - "Flo (葡萄牙语(巴西))", - "Grandma (葡萄牙语(巴西))", - "Grandpa (葡萄牙语(巴西))", - "Luciana", - "Reed (葡萄牙语(巴西))", - "Rocko (葡萄牙语(巴西))", - "Sandy (葡萄牙语(巴西))", - "Shelley (葡萄牙语(巴西))", - "Google português do Brasil" - ], - "pt-PT": ["Joana"], - "ro-RO": ["Ioana"], - "ru-RU": ["Milena", "Google русский"], - "sk-SK": ["Laura"], - "sv-SE": ["Alva"], - "th-TH": ["Kanya"], - "tr-TR": ["Yelda"], - "uk-UA": ["Lesya"], - "vi-VN": ["Linh"], - "zh-CN": ["婷婷", "Li-Mu", "语舒", "Google 普通话(中国大陆)"], - "zh-HK": ["善怡", "Google 粤語(香港)"], - "zh-TW": ["美嘉", "Google 國語(臺灣)"] -} diff --git a/src/data/speechSynthesVoiceList.ts b/src/data/speechSynthesVoiceList.ts new file mode 100644 index 0000000..d543e15 --- /dev/null +++ b/src/data/speechSynthesVoiceList.ts @@ -0,0 +1,94 @@ +export default { + 'ar-SA': ['Majed'], + 'de-DE': [ + 'Anna', + 'Eddy (德语(德国))', + 'Flo (德语(德国))', + 'Grandma (德语(德国))', + 'Grandpa (德语(德国))', + 'Helena', + 'Martin', + 'Reed (德语(德国))', + 'Rocko (德语(德国))', + 'Sandy (德语(德国))', + 'Shelley (德语(德国))', + 'Google Deutsch', + ], + 'en-US': [ + 'Aaron', + 'Albert', + 'Bad News', + 'Bahh', + 'Bells', + 'Boing', + 'Bubbles', + 'Cellos', + 'Eddy (英语(美国))', + 'Flo (英语(美国))', + 'Fred', + 'Good News', + 'Grandma (英语(美国))', + 'Grandpa (英语(美国))', + 'Jester', + 'Junior', + 'Kathy', + 'Nicky', + 'Organ', + 'Ralph', + 'Reed (英语(美国))', + 'Rocko (英语(美国))', + 'Samantha', + 'Sandy (英语(美国))', + 'Shelley (英语(美国))', + 'Superstar', + 'Trinoids', + 'Whisper', + 'Wobble', + 'Zarvox', + 'Google US English', + ], + + 'es-ES': [ + 'Eddy (西班牙语(西班牙))', + 'Flo (西班牙语(西班牙))', + 'Grandma (西班牙语(西班牙))', + 'Grandpa (西班牙语(西班牙))', + 'Mónica', + 'Reed (西班牙语(西班牙))', + 'Rocko (西班牙语(西班牙))', + 'Sandy (西班牙语(西班牙))', + 'Shelley (西班牙语(西班牙))', + 'Google español', + ], + 'fr-FR': [ + 'Daniel (法语(法国))', + 'Eddy (法语(法国))', + 'Flo (法语(法国))', + 'Grandma (法语(法国))', + 'Grandpa (法语(法国))', + 'Jacques', + 'Marie', + 'Rocko (法语(法国))', + 'Sandy (法语(法国))', + 'Shelley (法语(法国))', + 'Thomas', + 'Google français', + ], + 'ja-JP': ['Hattori', 'Kyoko', 'O-Ren', 'Google 日本語'], + 'ko-KR': ['Yuna', 'Google 한국의'], + 'pt-BR': [ + 'Eddy (葡萄牙语(巴西))', + 'Flo (葡萄牙语(巴西))', + 'Grandma (葡萄牙语(巴西))', + 'Grandpa (葡萄牙语(巴西))', + 'Luciana', + 'Reed (葡萄牙语(巴西))', + 'Rocko (葡萄牙语(巴西))', + 'Sandy (葡萄牙语(巴西))', + 'Shelley (葡萄牙语(巴西))', + 'Google português do Brasil', + ], + 'ru-RU': ['Milena', 'Google русский'], + 'zh-CN': ['婷婷', 'Li-Mu', '语舒', 'Google 普通话(中国大陆)'], + 'zh-TW': ['美嘉', 'Google 國語(臺灣)', '善怡', 'Google 粤語(香港)'], +} as const; diff --git a/src/index.ts b/src/index.ts index 2343223..f770dc2 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,5 +1,10 @@ export { default as AudioPlayer, type AudioPlayerProps } from './AudioPlayer'; export { default as AudioVisualizer, type AudioVisualizerProps } from './AudioVisualizer'; +export { default as azureVoiceList } from './data/azureVoiceList'; +export { default as edgeVoiceList } from './data/edgeVoiceList'; +export { default as voiceLocale } from './data/locales'; +export { default as nameList } from './data/nameList'; +export { default as openaiVoiceList } from './data/openaiVoiceList'; export { useAudioPlayer } from './hooks/useAudioPlayer'; export { useAudioVisualizer } from './hooks/useAudioVisualizer'; export { useBlobUrl } from './hooks/useBlobUrl'; @@ -19,8 +24,10 @@ export { usePersistedSpeechRecognition } from './useSpeechRecognition/usePersist export { useSpeechRecognition } from './useSpeechRecognition/useSpeechRecognition'; export { useSpeechSynthes } from './useSpeechSynthes'; export { - getAzureVoiceList, - getEdgeVoiceList, - getOpenaiVoiceList, - getSpeechSynthesVoiceList, + genLevaOptions, + getAzureVoiceOptions, + getEdgeVoiceOptions, + getOpenaiVoiceOptions, + getSpeechSynthesVoiceOptions, + getVoiceLocaleOptions, } from './utils/getVoiceList'; diff --git a/src/useAzureSpeech/demos/index.tsx b/src/useAzureSpeech/demos/index.tsx index e5bdf18..8d5e7b6 100644 --- a/src/useAzureSpeech/demos/index.tsx +++ b/src/useAzureSpeech/demos/index.tsx @@ -1,4 +1,4 @@ -import { AudioPlayer, getEdgeVoiceList, useAzureSpeech } from '@lobehub/tts'; +import { AudioPlayer, genLevaOptions, getAzureVoiceOptions, useAzureSpeech } from '@lobehub/tts'; import { Icon, StoryBook, useControls, useCreateStore } from '@lobehub/ui'; import { Button, Input } from 'antd'; import { Volume2 } from 'lucide-react'; @@ -26,7 +26,7 @@ export default () => { const options: any = useControls( { name: { - options: getEdgeVoiceList(), + options: genLevaOptions(getAzureVoiceOptions()), value: 'zh-CN-YunxiaNeural', }, pitch: { diff --git a/src/useEdgeSpeech/demos/index.tsx b/src/useEdgeSpeech/demos/index.tsx index 746f157..dae1ef8 100644 --- a/src/useEdgeSpeech/demos/index.tsx +++ b/src/useEdgeSpeech/demos/index.tsx @@ -1,4 +1,4 @@ -import { AudioPlayer, getEdgeVoiceList, useEdgeSpeech } from '@lobehub/tts'; +import { AudioPlayer, genLevaOptions, getEdgeVoiceOptions, useEdgeSpeech } from '@lobehub/tts'; import { Icon, StoryBook, useControls, useCreateStore } from '@lobehub/ui'; import { Button, Input } from 'antd'; import { Volume2 } from 'lucide-react'; @@ -26,7 +26,7 @@ export default () => { const options: any = useControls( { name: { - options: getEdgeVoiceList(), + options: genLevaOptions(getEdgeVoiceOptions()), value: 'zh-CN-YunxiaNeural', }, }, diff --git a/src/useMicrosoftSpeech/demos/index.tsx b/src/useMicrosoftSpeech/demos/index.tsx index 61ceb6c..ac31eba 100644 --- a/src/useMicrosoftSpeech/demos/index.tsx +++ b/src/useMicrosoftSpeech/demos/index.tsx @@ -1,4 +1,4 @@ -import { AudioPlayer, getEdgeVoiceList, useMicrosoftSpeech } from '@lobehub/tts'; +import { AudioPlayer, genLevaOptions, getEdgeVoiceOptions, useMicrosoftSpeech } from '@lobehub/tts'; import { Icon, StoryBook, useControls, useCreateStore } from '@lobehub/ui'; import { Button, Input } from 'antd'; import { Volume2 } from 'lucide-react'; @@ -15,7 +15,7 @@ export default () => { value: '', }, name: { - options: getEdgeVoiceList(), + options: genLevaOptions(getEdgeVoiceOptions()), value: 'zh-CN-YunxiaNeural', }, pitch: { diff --git a/src/useOpenaiTTS/demos/index.tsx b/src/useOpenaiTTS/demos/index.tsx index 46c2013..b07e534 100644 --- a/src/useOpenaiTTS/demos/index.tsx +++ b/src/useOpenaiTTS/demos/index.tsx @@ -1,4 +1,4 @@ -import { AudioPlayer, getOpenaiVoiceList, useOpenaiTTS } from '@lobehub/tts'; +import { AudioPlayer, openaiVoiceList, useOpenaiTTS } from '@lobehub/tts'; import { Icon, StoryBook, useControls, useCreateStore } from '@lobehub/ui'; import { Button, Input } from 'antd'; import { Volume2 } from 'lucide-react'; @@ -26,7 +26,7 @@ export default () => { const options: any = useControls( { name: { - options: getOpenaiVoiceList(), + options: openaiVoiceList, value: 'alloy', }, }, diff --git a/src/useSpeechSynthes/demos/index.tsx b/src/useSpeechSynthes/demos/index.tsx index 299f543..162c9d6 100644 --- a/src/useSpeechSynthes/demos/index.tsx +++ b/src/useSpeechSynthes/demos/index.tsx @@ -1,4 +1,4 @@ -import { getSpeechSynthesVoiceList, useSpeechSynthes } from '@lobehub/tts'; +import { genLevaOptions, getSpeechSynthesVoiceOptions, useSpeechSynthes } from '@lobehub/tts'; import { Icon, StoryBook, useControls, useCreateStore } from '@lobehub/ui'; import { Button, Input } from 'antd'; import { StopCircle, Volume2 } from 'lucide-react'; @@ -11,7 +11,7 @@ export default () => { const options: any = useControls( { name: { - options: getSpeechSynthesVoiceList(), + options: genLevaOptions(getSpeechSynthesVoiceOptions()), value: '婷婷', }, pitch: { diff --git a/src/utils/getVoiceList.ts b/src/utils/getVoiceList.ts index 887b299..841b040 100644 --- a/src/utils/getVoiceList.ts +++ b/src/utils/getVoiceList.ts @@ -1,76 +1,64 @@ +import { SelectProps } from 'antd'; import { flatten } from 'lodash-es'; -import azureVoiceList from '../data/azureVoiceListLite.json'; -import edgeVoiceList from '../data/edgeVoiceList.json'; -import openaiVoiceList from '../data/openaiVoiceList.json'; -import speechSynthesVoiceListFallback from '../data/speechSynthesVoiceList.json'; +import azureVoiceList from '@/data/azureVoiceList'; +import edgeVoiceList from '@/data/edgeVoiceList'; +import voiceLocale from '@/data/locales'; +import nameList from '@/data/nameList'; +import openaiVoiceList from '@/data/openaiVoiceList'; +import speechSynthesVoiceList from '@/data/speechSynthesVoiceList'; -interface Voice { - localeName?: string; - name: string; -} - -interface VoiceOptions { - [key: string]: string; -} -export interface VoiceList { - [locale: string]: Voice[]; -} - -export interface VoiceListLite { - [locale: string]: string[]; -} - -export const genSpeechSynthesVoiceList = (): VoiceListLite => { +export const genSpeechSynthesVoiceList = () => { const data = speechSynthesis.getVoices(); - const list: VoiceListLite = {}; + const localeKeys = Object.keys(voiceLocale); + const list: any = {}; for (const voice of data) { - if (!list[voice.lang]) list[voice.lang] = []; - list[voice.lang].push(voice.name); + if (localeKeys.includes(voice.lang)) { + if (!list[voice.lang]) list[voice.lang] = []; + list[voice.lang].push(voice.name); + } } - return Object.keys(list).length > 0 ? list : speechSynthesVoiceListFallback; + return Object.keys(list).length > 0 ? list : speechSynthesVoiceList; }; -export const getSpeechSynthesVoiceList = (locale?: string): string[] => { +export const getSpeechSynthesVoiceOptions = (locale?: string): SelectProps['options'] => { const speechSynthesVoiceList = genSpeechSynthesVoiceList(); - let data: string[] = []; - data = + const data: string[] = locale && speechSynthesVoiceList?.[locale] ? speechSynthesVoiceList?.[locale] || [] : flatten(Object.values(speechSynthesVoiceList)); - return data; + return data.map((voice) => ({ label: voice, value: voice })); }; -export const getAzureVoiceList = (locale?: string): VoiceOptions => { - const options: VoiceOptions = {}; - let data: Voice[] = []; - data = - locale && (azureVoiceList as VoiceList)[locale] - ? (azureVoiceList as VoiceList)[locale] || [] +export const getAzureVoiceOptions = (locale?: string): SelectProps['options'] => { + const data = + locale && (azureVoiceList as any)?.[locale] + ? (azureVoiceList as any)?.[locale] || [] : flatten(Object.values(azureVoiceList)); - data.forEach((voice: any) => { - options[voice.localeName || voice.name] = voice.name; - }); - return options; + return data.map((voice: any) => ({ label: (nameList as any)?.[voice] || voice, value: voice })); }; -export const getEdgeVoiceList = (locale?: string): VoiceOptions => { - const options: VoiceOptions = {}; - const list = flatten(Object.values(edgeVoiceList)); - let data: Voice[] = []; - data = - locale && (azureVoiceList as VoiceList)[locale] - ? (azureVoiceList as VoiceList)[locale] || [] - : flatten(Object.values(azureVoiceList)); - data.forEach((voice: any) => { - if (!list.includes(voice.name)) return; - options[voice.localeName || voice.name] = voice.name; - }); +export const getEdgeVoiceOptions = (locale?: string): SelectProps['options'] => { + const data = + locale && (edgeVoiceList as any)[locale] + ? (edgeVoiceList as any)[locale] || [] + : flatten(Object.values(edgeVoiceList)); + return data.map((voice: any) => ({ label: (nameList as any)?.[voice] || voice, value: voice })); +}; + +export const getOpenaiVoiceOptions = (): SelectProps['options'] => { + return openaiVoiceList.map((voice) => ({ label: voice, value: voice })); +}; - return options; +export const getVoiceLocaleOptions = (): SelectProps['options'] => { + return Object.entries(voiceLocale).map(([value, label]) => ({ label, value })); }; -export const getOpenaiVoiceList = () => openaiVoiceList; +export const genLevaOptions = (options: SelectProps['options']) => { + const data: any = {}; + options?.forEach((item: any) => (data[item?.label || item?.value] = item?.value)); + return data; +};