diff --git a/README.MD b/README.MD index 1b5b67e..70be7c9 100644 --- a/README.MD +++ b/README.MD @@ -1,26 +1,30 @@ +## 更新: +* MicrosoftSpeech_TTS节点上的语音列表可以通过修改voicelist.ini自定义。这个文件位于插件的根目录,包含全部可用语音选项并且默认屏蔽了一部分内容。用记事本或其他文本编辑软件打开这个文件,若想启用某个语音,删除这一行开头的“#”。对启用的语音进行屏蔽则在这行开头添加“#”。 +* 语音列表改为更清晰的名称显示(语种语言+姓名+性别) + ## 增加节点: 由于引入了新的节点,请重新安装依赖包。 ### Play Sound 可触发的声音播放节点,支持mp3和wav格式。这个节点支持多线程播放。 选项说明: -path:声音文件路径。 -volume:音量调整范围0-1.0。 -speed:语速调整范围0.1-2.0。 -trigger:触发开关,当其值为True时开始播放。 +* path:声音文件路径。 +* volume:音量调整范围0-1.0。 +* speed:语速调整范围0.1-2.0。 +* trigger:触发开关,当其值为True时开始播放。 ### Play Sound(loop) 可触发的声音播放节点,支持mp3和wav格式。这个节点始终占用一个声音播放线程。 选项说明: -path:声音文件路径。 -volume:音量调整范围0-1.0。 -loop:当其值为True时循环播放,否则播放一次。 -trigger:触发开关,当其值为True时开始播放。 +* path:声音文件路径。 +* volume:音量调整范围0-1.0。 +* loop:当其值为True时循环播放,否则播放一次。 +* trigger:触发开关,当其值为True时开始播放。 ### Input Trigger 输入触发器,可接入任意类型的数据,当检测到有输入内容(非None)时输出True;如果没有接入输入,将一直输出False。 输入:任意类型,包括且不限于image, latent, model, clip, string, float, int等等。 输出:Boolean值。 选项说明: -always_true:当此选项打开时,将忽略输入检测,直接输出True值; +* always_true:当此选项打开时,将忽略输入检测,直接输出True值; # ComfyUI_MSSpeech_TTS @@ -28,9 +32,9 @@ ComfyUI 选项说明: -voice: 语音种类。 -rate: 语音速度。默认是0,调整范围从-200到200。数字越大速度越快。 -filename_prefix:文件名前缀。 +* voice: 语音种类。 +* rate: 语音速度。默认是0,调整范围从-200到200。数字越大速度越快。 +* filename_prefix:文件名前缀。 输出: MP3 File,字符串类型,其内容是语音文件地址。 diff --git a/py/msspeechTTS.py b/py/msspeechTTS.py index 3c463ce..01ce3aa 100644 --- a/py/msspeechTTS.py +++ b/py/msspeechTTS.py @@ -1,15 +1,34 @@ import asyncio import datetime - import edge_tts import numpy as np import folder_paths import os -async def gen_tts(_text,_voice,_rate,filename): - tts = edge_tts.Communicate(text = _text, voice = _voice, rate = _rate) +async def gen_tts(_text, _voice, _rate, filename): + tts = edge_tts.Communicate(text=_text, voice=_voice, rate=_rate) await tts.save(filename) +INIFILE = os.path.join(os.path.dirname(os.path.dirname(os.path.normpath(__file__))), "voicelist.ini") +voice_dict = {} +try: + print('# MSSpeech: Load voice setting -> ' + INIFILE) + with open(INIFILE, 'r') as f: + ini = f.readlines() + + for line in ini: + if not line.startswith('#') and len(line) > 1: + api_name = line[: line.find('(')].rstrip() + gender = line[line.find('(') + 1:-2] + lang = api_name[:api_name.rfind('-')] + name = api_name[api_name.rfind('-') + 1:api_name.find('Neural')] + display_item = lang + ':' + name + '(' + gender + ')' + voice_dict.update({display_item: api_name}) + print('# MSSpeech: ' + str(len(voice_dict)) + ' voice load successfully.') +except Exception as e: + print('# MSSpeech: ERROR -> ' + repr(e)) + + class Text2AudioEdgeTts: def __init__(self): self.output_dir = os.path.join(folder_paths.get_output_directory(), 'audio') @@ -18,14 +37,8 @@ class Text2AudioEdgeTts: @classmethod def INPUT_TYPES(cls): - VOICES=[ -'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', -'en-US-AnaNeural','en-US-AriaNeural','en-US-ChristopherNeural','en-US-EricNeural','en-US-GuyNeural', -'en-US-JennyNeural','en-US-MichelleNeural','en-US-RogerNeural','en-US-SteffanNeural', -'en-GB-LibbyNeural','en-GB-MaisieNeural','en-GB-RyanNeural','en-GB-SoniaNeural','en-GB-ThomasNeural' - ] + + VOICES = list(voice_dict.keys()) return { "required": { "voice": (VOICES, ), @@ -42,15 +55,16 @@ class Text2AudioEdgeTts: CATEGORY = "MicrosoftSpeech_TTS" def text_2_audio(self,voice,filename_prefix,text,rate): + voice_name = voice_dict[voice] full_output_folder, filename, counter, subfolder, filename_prefix = folder_paths.get_save_image_path(filename_prefix, self.output_dir) _datetime = datetime.datetime.now().strftime("%Y%m%d") _datetime = _datetime + datetime.datetime.now().strftime("%H%M%S%f") - file = f"{filename}_{_datetime}_{voice}.mp3" + file = f"{filename}_{_datetime}_{voice_name}.mp3" audio_path=os.path.join(full_output_folder, file) _rate = str(rate) + "%" if rate < 0 else "+" + str(rate) + "%" - print(f"MicrosoftSpeech TTS: Generating voice files, voice=鈥榹voice}鈥�, rate={rate}, audiofile_path='{audio_path}, 'text='{text}'") + print(f"MicrosoftSpeech TTS: Generating voice files, voice=鈥榹voice_name}鈥�, rate={rate}, audiofile_path='{audio_path}, 'text='{text}'") - asyncio.run(gen_tts(text,voice,_rate,audio_path)) + asyncio.run(gen_tts(text,voice_name,_rate,audio_path)) return {"ui": {"text": "Audio file锛�"+os.path.join(full_output_folder, file), 'audios':[{'filename':file,'type':'output','subfolder':'audio'}]}, "result": (audio_path, )} diff --git a/voicelist.ini b/voicelist.ini new file mode 100644 index 0000000..c5aa9fa --- /dev/null +++ b/voicelist.ini @@ -0,0 +1,303 @@ +#af-ZA-AdriNeural (Female) +#af-ZA-WillemNeural (Male) +#am-ET-AmehaNeural (Male) +#am-ET-MekdesNeural (Female) +#ar-AE-FatimaNeural (Female) +#ar-AE-HamdanNeural (Male) +#ar-BH-AliNeural (Male) +#ar-BH-LailaNeural (Female) +#ar-DZ-AminaNeural (Female) +#ar-DZ-IsmaelNeural (Male) +#ar-EG-SalmaNeural (Female) +#ar-EG-ShakirNeural (Male) +#ar-IQ-BasselNeural (Male) +#ar-IQ-RanaNeural (Female) +#ar-JO-SanaNeural (Female) +#ar-JO-TaimNeural (Male) +#ar-KW-FahedNeural (Male) +#ar-KW-NouraNeural (Female) +#ar-LB-LaylaNeural (Female) +#ar-LB-RamiNeural (Male) +#ar-LY-ImanNeural (Female) +#ar-LY-OmarNeural (Male) +#ar-MA-JamalNeural (Male) +#ar-MA-MounaNeural (Female) +#ar-OM-AbdullahNeural (Male) +#ar-OM-AyshaNeural (Female) +#ar-QA-AmalNeural (Female) +#ar-QA-MoazNeural (Male) +#ar-SA-HamedNeural (Male) +#ar-SA-ZariyahNeural (Female) +#ar-SY-AmanyNeural (Female) +#ar-SY-LaithNeural (Male) +#ar-TN-HediNeural (Male) +#ar-TN-ReemNeural (Female) +#ar-YE-MaryamNeural (Female) +#ar-YE-SalehNeural (Male) +#az-AZ-BabekNeural (Male) +#az-AZ-BanuNeural (Female) +#bg-BG-BorislavNeural (Male) +#bg-BG-KalinaNeural (Female) +#bn-BD-NabanitaNeural (Female) +#bn-BD-PradeepNeural (Male) +#bn-IN-BashkarNeural (Male) +#bn-IN-TanishaaNeural (Female) +#bs-BA-GoranNeural (Male) +#bs-BA-VesnaNeural (Female) +#ca-ES-EnricNeural (Male) +#ca-ES-JoanaNeural (Female) +#cs-CZ-AntoninNeural (Male) +#cs-CZ-VlastaNeural (Female) +#cy-GB-AledNeural (Male) +#cy-GB-NiaNeural (Female) +#da-DK-ChristelNeural (Female) +#da-DK-JeppeNeural (Male) +#de-AT-IngridNeural (Female) +#de-AT-JonasNeural (Male) +#de-CH-JanNeural (Male) +#de-CH-LeniNeural (Female) +#de-DE-AmalaNeural (Female) +#de-DE-ConradNeural (Male) +#de-DE-KatjaNeural (Female) +#de-DE-KillianNeural (Male) +#el-GR-AthinaNeural (Female) +#el-GR-NestorasNeural (Male) +#en-AU-NatashaNeural (Female) +#en-AU-WilliamNeural (Male) +#en-CA-ClaraNeural (Female) +#en-CA-LiamNeural (Male) +#en-GB-LibbyNeural (Female) +#en-GB-MaisieNeural (Female) +#en-GB-RyanNeural (Male) +#en-GB-SoniaNeural (Female) +#en-GB-ThomasNeural (Male) +#en-HK-SamNeural (Male) +#en-HK-YanNeural (Female) +#en-IE-ConnorNeural (Male) +#en-IE-EmilyNeural (Female) +#en-IN-NeerjaExpressiveNeural (Female) +#en-IN-NeerjaNeural (Female) +#en-IN-PrabhatNeural (Male) +#en-KE-AsiliaNeural (Female) +#en-KE-ChilembaNeural (Male) +#en-NG-AbeoNeural (Male) +#en-NG-EzinneNeural (Female) +#en-NZ-MitchellNeural (Male) +#en-NZ-MollyNeural (Female) +#en-PH-JamesNeural (Male) +#en-PH-RosaNeural (Female) +#en-SG-LunaNeural (Female) +#en-SG-WayneNeural (Male) +#en-TZ-ElimuNeural (Male) +#en-TZ-ImaniNeural (Female) +en-US-AnaNeural (Female) +en-US-AriaNeural (Female) +en-US-ChristopherNeural (Male) +en-US-EricNeural (Male) +en-US-GuyNeural (Male) +en-US-JennyNeural (Female) +en-US-MichelleNeural (Female) +en-US-RogerNeural (Male) +en-US-SteffanNeural (Male) +#en-ZA-LeahNeural (Female) +#en-ZA-LukeNeural (Male) +#es-AR-ElenaNeural (Female) +#es-AR-TomasNeural (Male) +#es-BO-MarceloNeural (Male) +#es-BO-SofiaNeural (Female) +#es-CL-CatalinaNeural (Female) +#es-CL-LorenzoNeural (Male) +#es-CO-GonzaloNeural (Male) +#es-CO-SalomeNeural (Female) +#es-CR-JuanNeural (Male) +#es-CR-MariaNeural (Female) +#es-CU-BelkysNeural (Female) +#es-CU-ManuelNeural (Male) +#es-DO-EmilioNeural (Male) +#es-DO-RamonaNeural (Female) +#es-EC-AndreaNeural (Female) +#es-EC-LuisNeural (Male) +#es-ES-AlvaroNeural (Male) +#es-ES-ElviraNeural (Female) +#es-ES-ManuelEsCUNeural (Male) +#es-GQ-JavierNeural (Male) +#es-GQ-TeresaNeural (Female) +#es-GT-AndresNeural (Male) +#es-GT-MartaNeural (Female) +#es-HN-CarlosNeural (Male) +#es-HN-KarlaNeural (Female) +#es-MX-DaliaNeural (Female) +#es-MX-JorgeNeural (Male) +#es-MX-LorenzoEsCLNeural (Male) +#es-NI-FedericoNeural (Male) +#es-NI-YolandaNeural (Female) +#es-PA-MargaritaNeural (Female) +#es-PA-RobertoNeural (Male) +#es-PE-AlexNeural (Male) +#es-PE-CamilaNeural (Female) +#es-PR-KarinaNeural (Female) +#es-PR-VictorNeural (Male) +#es-PY-MarioNeural (Male) +#es-PY-TaniaNeural (Female) +#es-SV-LorenaNeural (Female) +#es-SV-RodrigoNeural (Male) +#es-US-AlonsoNeural (Male) +#es-US-PalomaNeural (Female) +#es-UY-MateoNeural (Male) +#es-UY-ValentinaNeural (Female) +#es-VE-PaolaNeural (Female) +#es-VE-SebastianNeural (Male) +#et-EE-AnuNeural (Female) +#et-EE-KertNeural (Male) +#fa-IR-DilaraNeural (Female) +#fa-IR-FaridNeural (Male) +#fi-FI-HarriNeural (Male) +#fi-FI-NooraNeural (Female) +#fil-PH-AngeloNeural (Male) +#fil-PH-BlessicaNeural (Female) +#fr-BE-CharlineNeural (Female) +#fr-BE-GerardNeural (Male) +#fr-CA-AntoineNeural (Male) +#fr-CA-JeanNeural (Male) +#fr-CA-SylvieNeural (Female) +#fr-CH-ArianeNeural (Female) +#fr-CH-FabriceNeural (Male) +#fr-FR-DeniseNeural (Female) +#fr-FR-EloiseNeural (Female) +#fr-FR-HenriNeural (Male) +#ga-IE-ColmNeural (Male) +#ga-IE-OrlaNeural (Female) +#gl-ES-RoiNeural (Male) +#gl-ES-SabelaNeural (Female) +#gu-IN-DhwaniNeural (Female) +#gu-IN-NiranjanNeural (Male) +#he-IL-AvriNeural (Male) +#he-IL-HilaNeural (Female) +#hi-IN-MadhurNeural (Male) +#hi-IN-SwaraNeural (Female) +#hr-HR-GabrijelaNeural (Female) +#hr-HR-SreckoNeural (Male) +#hu-HU-NoemiNeural (Female) +#hu-HU-TamasNeural (Male) +#id-ID-ArdiNeural (Male) +#id-ID-GadisNeural (Female) +#is-IS-GudrunNeural (Female) +#is-IS-GunnarNeural (Male) +#it-IT-DiegoNeural (Male) +#it-IT-ElsaNeural (Female) +#it-IT-IsabellaNeural (Female) +#ja-JP-KeitaNeural (Male) +#ja-JP-NanamiNeural (Female) +#jv-ID-DimasNeural (Male) +#jv-ID-SitiNeural (Female) +#ka-GE-EkaNeural (Female) +#ka-GE-GiorgiNeural (Male) +#kk-KZ-AigulNeural (Female) +#kk-KZ-DauletNeural (Male) +#km-KH-PisethNeural (Male) +#km-KH-SreymomNeural (Female) +#kn-IN-GaganNeural (Male) +#kn-IN-SapnaNeural (Female) +#ko-KR-InJoonNeural (Male) +#ko-KR-SunHiNeural (Female) +#lo-LA-ChanthavongNeural (Male) +#lo-LA-KeomanyNeural (Female) +#lt-LT-LeonasNeural (Male) +#lt-LT-OnaNeural (Female) +#lv-LV-EveritaNeural (Female) +#lv-LV-NilsNeural (Male) +#mk-MK-AleksandarNeural (Male) +#mk-MK-MarijaNeural (Female) +#ml-IN-MidhunNeural (Male) +#ml-IN-SobhanaNeural (Female) +#mn-MN-BataaNeural (Male) +#mn-MN-YesuiNeural (Female) +#mr-IN-AarohiNeural (Female) +#mr-IN-ManoharNeural (Male) +#ms-MY-OsmanNeural (Male) +#ms-MY-YasminNeural (Female) +#mt-MT-GraceNeural (Female) +#mt-MT-JosephNeural (Male) +#my-MM-NilarNeural (Female) +#my-MM-ThihaNeural (Male) +#nb-NO-FinnNeural (Male) +#nb-NO-PernilleNeural (Female) +#ne-NP-HemkalaNeural (Female) +#ne-NP-SagarNeural (Male) +#nl-BE-ArnaudNeural (Male) +#nl-BE-DenaNeural (Female) +#nl-NL-ColetteNeural (Female) +#nl-NL-FennaNeural (Female) +#nl-NL-MaartenNeural (Male) +#pl-PL-MarekNeural (Male) +#pl-PL-ZofiaNeural (Female) +#ps-AF-GulNawazNeural (Male) +#ps-AF-LatifaNeural (Female) +#pt-BR-AntonioNeural (Male) +#pt-BR-FranciscaNeural (Female) +#pt-PT-DuarteNeural (Male) +#pt-PT-RaquelNeural (Female) +#ro-RO-AlinaNeural (Female) +#ro-RO-EmilNeural (Male) +#ru-RU-DmitryNeural (Male) +#ru-RU-SvetlanaNeural (Female) +#si-LK-SameeraNeural (Male) +#si-LK-ThiliniNeural (Female) +#sk-SK-LukasNeural (Male) +#sk-SK-ViktoriaNeural (Female) +#sl-SI-PetraNeural (Female) +#sl-SI-RokNeural (Male) +#so-SO-MuuseNeural (Male) +#so-SO-UbaxNeural (Female) +#sq-AL-AnilaNeural (Female) +#sq-AL-IlirNeural (Male) +#sr-RS-NicholasNeural (Male) +#sr-RS-SophieNeural (Female) +#su-ID-JajangNeural (Male) +#su-ID-TutiNeural (Female) +#sv-SE-MattiasNeural (Male) +#sv-SE-SofieNeural (Female) +#sw-KE-RafikiNeural (Male) +#sw-KE-ZuriNeural (Female) +#sw-TZ-DaudiNeural (Male) +#sw-TZ-RehemaNeural (Female) +#ta-IN-PallaviNeural (Female) +#ta-IN-ValluvarNeural (Male) +#ta-LK-KumarNeural (Male) +#ta-LK-SaranyaNeural (Female) +#ta-MY-KaniNeural (Female) +#ta-MY-SuryaNeural (Male) +#ta-SG-AnbuNeural (Male) +#ta-SG-VenbaNeural (Female) +#te-IN-MohanNeural (Male) +#te-IN-ShrutiNeural (Female) +#th-TH-NiwatNeural (Male) +#th-TH-PremwadeeNeural (Female) +#tr-TR-AhmetNeural (Male) +#tr-TR-EmelNeural (Female) +#uk-UA-OstapNeural (Male) +#uk-UA-PolinaNeural (Female) +#ur-IN-GulNeural (Female) +#ur-IN-SalmanNeural (Male) +#ur-PK-AsadNeural (Male) +#ur-PK-UzmaNeural (Female) +#uz-UZ-MadinaNeural (Female) +#uz-UZ-SardorNeural (Male) +#vi-VN-HoaiMyNeural (Female) +#vi-VN-NamMinhNeural (Male) +zh-CN-XiaoxiaoNeural (Female) +zh-CN-XiaoyiNeural (Female) +zh-CN-YunjianNeural (Male) +zh-CN-YunxiNeural (Male) +zh-CN-YunxiaNeural (Male) +zh-CN-YunyangNeural (Male) +zh-CN-liaoning-XiaobeiNeural (Female) +zh-CN-shaanxi-XiaoniNeural (Female) +zh-HK-HiuGaaiNeural (Female) +zh-HK-HiuMaanNeural (Female) +zh-HK-WanLungNeural (Male) +zh-TW-HsiaoChenNeural (Female) +zh-TW-HsiaoYuNeural (Female) +zh-TW-YunJheNeural (Male) +#zu-ZA-ThandoNeural (Female) +#zu-ZA-ThembaNeural (Male \ No newline at end of file diff --git a/voicelist.txt b/voicelist.txt deleted file mode 100644 index f58cc82..0000000 --- a/voicelist.txt +++ /dev/null @@ -1,908 +0,0 @@ -Name: af-ZA-AdriNeural -Gender: Female - -Name: af-ZA-WillemNeural -Gender: Male - -Name: am-ET-AmehaNeural -Gender: Male - -Name: am-ET-MekdesNeural -Gender: Female - -Name: ar-AE-FatimaNeural -Gender: Female - -Name: ar-AE-HamdanNeural -Gender: Male - -Name: ar-BH-AliNeural -Gender: Male - -Name: ar-BH-LailaNeural -Gender: Female - -Name: ar-DZ-AminaNeural -Gender: Female - -Name: ar-DZ-IsmaelNeural -Gender: Male - -Name: ar-EG-SalmaNeural -Gender: Female - -Name: ar-EG-ShakirNeural -Gender: Male - -Name: ar-IQ-BasselNeural -Gender: Male - -Name: ar-IQ-RanaNeural -Gender: Female - -Name: ar-JO-SanaNeural -Gender: Female - -Name: ar-JO-TaimNeural -Gender: Male - -Name: ar-KW-FahedNeural -Gender: Male - -Name: ar-KW-NouraNeural -Gender: Female - -Name: ar-LB-LaylaNeural -Gender: Female - -Name: ar-LB-RamiNeural -Gender: Male - -Name: ar-LY-ImanNeural -Gender: Female - -Name: ar-LY-OmarNeural -Gender: Male - -Name: ar-MA-JamalNeural -Gender: Male - -Name: ar-MA-MounaNeural -Gender: Female - -Name: ar-OM-AbdullahNeural -Gender: Male - -Name: ar-OM-AyshaNeural -Gender: Female - -Name: ar-QA-AmalNeural -Gender: Female - -Name: ar-QA-MoazNeural -Gender: Male - -Name: ar-SA-HamedNeural -Gender: Male - -Name: ar-SA-ZariyahNeural -Gender: Female - -Name: ar-SY-AmanyNeural -Gender: Female - -Name: ar-SY-LaithNeural -Gender: Male - -Name: ar-TN-HediNeural -Gender: Male - -Name: ar-TN-ReemNeural -Gender: Female - -Name: ar-YE-MaryamNeural -Gender: Female - -Name: ar-YE-SalehNeural -Gender: Male - -Name: az-AZ-BabekNeural -Gender: Male - -Name: az-AZ-BanuNeural -Gender: Female - -Name: bg-BG-BorislavNeural -Gender: Male - -Name: bg-BG-KalinaNeural -Gender: Female - -Name: bn-BD-NabanitaNeural -Gender: Female - -Name: bn-BD-PradeepNeural -Gender: Male - -Name: bn-IN-BashkarNeural -Gender: Male - -Name: bn-IN-TanishaaNeural -Gender: Female - -Name: bs-BA-GoranNeural -Gender: Male - -Name: bs-BA-VesnaNeural -Gender: Female - -Name: ca-ES-EnricNeural -Gender: Male - -Name: ca-ES-JoanaNeural -Gender: Female - -Name: cs-CZ-AntoninNeural -Gender: Male - -Name: cs-CZ-VlastaNeural -Gender: Female - -Name: cy-GB-AledNeural -Gender: Male - -Name: cy-GB-NiaNeural -Gender: Female - -Name: da-DK-ChristelNeural -Gender: Female - -Name: da-DK-JeppeNeural -Gender: Male - -Name: de-AT-IngridNeural -Gender: Female - -Name: de-AT-JonasNeural -Gender: Male - -Name: de-CH-JanNeural -Gender: Male - -Name: de-CH-LeniNeural -Gender: Female - -Name: de-DE-AmalaNeural -Gender: Female - -Name: de-DE-ConradNeural -Gender: Male - -Name: de-DE-KatjaNeural -Gender: Female - -Name: de-DE-KillianNeural -Gender: Male - -Name: el-GR-AthinaNeural -Gender: Female - -Name: el-GR-NestorasNeural -Gender: Male - -Name: en-AU-NatashaNeural -Gender: Female - -Name: en-AU-WilliamNeural -Gender: Male - -Name: en-CA-ClaraNeural -Gender: Female - -Name: en-CA-LiamNeural -Gender: Male - -Name: en-GB-LibbyNeural -Gender: Female - -Name: en-GB-MaisieNeural -Gender: Female - -Name: en-GB-RyanNeural -Gender: Male - -Name: en-GB-SoniaNeural -Gender: Female - -Name: en-GB-ThomasNeural -Gender: Male - -Name: en-HK-SamNeural -Gender: Male - -Name: en-HK-YanNeural -Gender: Female - -Name: en-IE-ConnorNeural -Gender: Male - -Name: en-IE-EmilyNeural -Gender: Female - -Name: en-IN-NeerjaExpressiveNeural -Gender: Female - -Name: en-IN-NeerjaNeural -Gender: Female - -Name: en-IN-PrabhatNeural -Gender: Male - -Name: en-KE-AsiliaNeural -Gender: Female - -Name: en-KE-ChilembaNeural -Gender: Male - -Name: en-NG-AbeoNeural -Gender: Male - -Name: en-NG-EzinneNeural -Gender: Female - -Name: en-NZ-MitchellNeural -Gender: Male - -Name: en-NZ-MollyNeural -Gender: Female - -Name: en-PH-JamesNeural -Gender: Male - -Name: en-PH-RosaNeural -Gender: Female - -Name: en-SG-LunaNeural -Gender: Female - -Name: en-SG-WayneNeural -Gender: Male - -Name: en-TZ-ElimuNeural -Gender: Male - -Name: en-TZ-ImaniNeural -Gender: Female - -Name: en-US-AnaNeural -Gender: Female - -Name: en-US-AriaNeural -Gender: Female - -Name: en-US-ChristopherNeural -Gender: Male - -Name: en-US-EricNeural -Gender: Male - -Name: en-US-GuyNeural -Gender: Male - -Name: en-US-JennyNeural -Gender: Female - -Name: en-US-MichelleNeural -Gender: Female - -Name: en-US-RogerNeural -Gender: Male - -Name: en-US-SteffanNeural -Gender: Male - -Name: en-ZA-LeahNeural -Gender: Female - -Name: en-ZA-LukeNeural -Gender: Male - -Name: es-AR-ElenaNeural -Gender: Female - -Name: es-AR-TomasNeural -Gender: Male - -Name: es-BO-MarceloNeural -Gender: Male - -Name: es-BO-SofiaNeural -Gender: Female - -Name: es-CL-CatalinaNeural -Gender: Female - -Name: es-CL-LorenzoNeural -Gender: Male - -Name: es-CO-GonzaloNeural -Gender: Male - -Name: es-CO-SalomeNeural -Gender: Female - -Name: es-CR-JuanNeural -Gender: Male - -Name: es-CR-MariaNeural -Gender: Female - -Name: es-CU-BelkysNeural -Gender: Female - -Name: es-CU-ManuelNeural -Gender: Male - -Name: es-DO-EmilioNeural -Gender: Male - -Name: es-DO-RamonaNeural -Gender: Female - -Name: es-EC-AndreaNeural -Gender: Female - -Name: es-EC-LuisNeural -Gender: Male - -Name: es-ES-AlvaroNeural -Gender: Male - -Name: es-ES-ElviraNeural -Gender: Female - -Name: es-ES-ManuelEsCUNeural -Gender: Male - -Name: es-GQ-JavierNeural -Gender: Male - -Name: es-GQ-TeresaNeural -Gender: Female - -Name: es-GT-AndresNeural -Gender: Male - -Name: es-GT-MartaNeural -Gender: Female - -Name: es-HN-CarlosNeural -Gender: Male - -Name: es-HN-KarlaNeural -Gender: Female - -Name: es-MX-DaliaNeural -Gender: Female - -Name: es-MX-JorgeNeural -Gender: Male - -Name: es-MX-LorenzoEsCLNeural -Gender: Male - -Name: es-NI-FedericoNeural -Gender: Male - -Name: es-NI-YolandaNeural -Gender: Female - -Name: es-PA-MargaritaNeural -Gender: Female - -Name: es-PA-RobertoNeural -Gender: Male - -Name: es-PE-AlexNeural -Gender: Male - -Name: es-PE-CamilaNeural -Gender: Female - -Name: es-PR-KarinaNeural -Gender: Female - -Name: es-PR-VictorNeural -Gender: Male - -Name: es-PY-MarioNeural -Gender: Male - -Name: es-PY-TaniaNeural -Gender: Female - -Name: es-SV-LorenaNeural -Gender: Female - -Name: es-SV-RodrigoNeural -Gender: Male - -Name: es-US-AlonsoNeural -Gender: Male - -Name: es-US-PalomaNeural -Gender: Female - -Name: es-UY-MateoNeural -Gender: Male - -Name: es-UY-ValentinaNeural -Gender: Female - -Name: es-VE-PaolaNeural -Gender: Female - -Name: es-VE-SebastianNeural -Gender: Male - -Name: et-EE-AnuNeural -Gender: Female - -Name: et-EE-KertNeural -Gender: Male - -Name: fa-IR-DilaraNeural -Gender: Female - -Name: fa-IR-FaridNeural -Gender: Male - -Name: fi-FI-HarriNeural -Gender: Male - -Name: fi-FI-NooraNeural -Gender: Female - -Name: fil-PH-AngeloNeural -Gender: Male - -Name: fil-PH-BlessicaNeural -Gender: Female - -Name: fr-BE-CharlineNeural -Gender: Female - -Name: fr-BE-GerardNeural -Gender: Male - -Name: fr-CA-AntoineNeural -Gender: Male - -Name: fr-CA-JeanNeural -Gender: Male - -Name: fr-CA-SylvieNeural -Gender: Female - -Name: fr-CH-ArianeNeural -Gender: Female - -Name: fr-CH-FabriceNeural -Gender: Male - -Name: fr-FR-DeniseNeural -Gender: Female - -Name: fr-FR-EloiseNeural -Gender: Female - -Name: fr-FR-HenriNeural -Gender: Male - -Name: ga-IE-ColmNeural -Gender: Male - -Name: ga-IE-OrlaNeural -Gender: Female - -Name: gl-ES-RoiNeural -Gender: Male - -Name: gl-ES-SabelaNeural -Gender: Female - -Name: gu-IN-DhwaniNeural -Gender: Female - -Name: gu-IN-NiranjanNeural -Gender: Male - -Name: he-IL-AvriNeural -Gender: Male - -Name: he-IL-HilaNeural -Gender: Female - -Name: hi-IN-MadhurNeural -Gender: Male - -Name: hi-IN-SwaraNeural -Gender: Female - -Name: hr-HR-GabrijelaNeural -Gender: Female - -Name: hr-HR-SreckoNeural -Gender: Male - -Name: hu-HU-NoemiNeural -Gender: Female - -Name: hu-HU-TamasNeural -Gender: Male - -Name: id-ID-ArdiNeural -Gender: Male - -Name: id-ID-GadisNeural -Gender: Female - -Name: is-IS-GudrunNeural -Gender: Female - -Name: is-IS-GunnarNeural -Gender: Male - -Name: it-IT-DiegoNeural -Gender: Male - -Name: it-IT-ElsaNeural -Gender: Female - -Name: it-IT-IsabellaNeural -Gender: Female - -Name: ja-JP-KeitaNeural -Gender: Male - -Name: ja-JP-NanamiNeural -Gender: Female - -Name: jv-ID-DimasNeural -Gender: Male - -Name: jv-ID-SitiNeural -Gender: Female - -Name: ka-GE-EkaNeural -Gender: Female - -Name: ka-GE-GiorgiNeural -Gender: Male - -Name: kk-KZ-AigulNeural -Gender: Female - -Name: kk-KZ-DauletNeural -Gender: Male - -Name: km-KH-PisethNeural -Gender: Male - -Name: km-KH-SreymomNeural -Gender: Female - -Name: kn-IN-GaganNeural -Gender: Male - -Name: kn-IN-SapnaNeural -Gender: Female - -Name: ko-KR-InJoonNeural -Gender: Male - -Name: ko-KR-SunHiNeural -Gender: Female - -Name: lo-LA-ChanthavongNeural -Gender: Male - -Name: lo-LA-KeomanyNeural -Gender: Female - -Name: lt-LT-LeonasNeural -Gender: Male - -Name: lt-LT-OnaNeural -Gender: Female - -Name: lv-LV-EveritaNeural -Gender: Female - -Name: lv-LV-NilsNeural -Gender: Male - -Name: mk-MK-AleksandarNeural -Gender: Male - -Name: mk-MK-MarijaNeural -Gender: Female - -Name: ml-IN-MidhunNeural -Gender: Male - -Name: ml-IN-SobhanaNeural -Gender: Female - -Name: mn-MN-BataaNeural -Gender: Male - -Name: mn-MN-YesuiNeural -Gender: Female - -Name: mr-IN-AarohiNeural -Gender: Female - -Name: mr-IN-ManoharNeural -Gender: Male - -Name: ms-MY-OsmanNeural -Gender: Male - -Name: ms-MY-YasminNeural -Gender: Female - -Name: mt-MT-GraceNeural -Gender: Female - -Name: mt-MT-JosephNeural -Gender: Male - -Name: my-MM-NilarNeural -Gender: Female - -Name: my-MM-ThihaNeural -Gender: Male - -Name: nb-NO-FinnNeural -Gender: Male - -Name: nb-NO-PernilleNeural -Gender: Female - -Name: ne-NP-HemkalaNeural -Gender: Female - -Name: ne-NP-SagarNeural -Gender: Male - -Name: nl-BE-ArnaudNeural -Gender: Male - -Name: nl-BE-DenaNeural -Gender: Female - -Name: nl-NL-ColetteNeural -Gender: Female - -Name: nl-NL-FennaNeural -Gender: Female - -Name: nl-NL-MaartenNeural -Gender: Male - -Name: pl-PL-MarekNeural -Gender: Male - -Name: pl-PL-ZofiaNeural -Gender: Female - -Name: ps-AF-GulNawazNeural -Gender: Male - -Name: ps-AF-LatifaNeural -Gender: Female - -Name: pt-BR-AntonioNeural -Gender: Male - -Name: pt-BR-FranciscaNeural -Gender: Female - -Name: pt-PT-DuarteNeural -Gender: Male - -Name: pt-PT-RaquelNeural -Gender: Female - -Name: ro-RO-AlinaNeural -Gender: Female - -Name: ro-RO-EmilNeural -Gender: Male - -Name: ru-RU-DmitryNeural -Gender: Male - -Name: ru-RU-SvetlanaNeural -Gender: Female - -Name: si-LK-SameeraNeural -Gender: Male - -Name: si-LK-ThiliniNeural -Gender: Female - -Name: sk-SK-LukasNeural -Gender: Male - -Name: sk-SK-ViktoriaNeural -Gender: Female - -Name: sl-SI-PetraNeural -Gender: Female - -Name: sl-SI-RokNeural -Gender: Male - -Name: so-SO-MuuseNeural -Gender: Male - -Name: so-SO-UbaxNeural -Gender: Female - -Name: sq-AL-AnilaNeural -Gender: Female - -Name: sq-AL-IlirNeural -Gender: Male - -Name: sr-RS-NicholasNeural -Gender: Male - -Name: sr-RS-SophieNeural -Gender: Female - -Name: su-ID-JajangNeural -Gender: Male - -Name: su-ID-TutiNeural -Gender: Female - -Name: sv-SE-MattiasNeural -Gender: Male - -Name: sv-SE-SofieNeural -Gender: Female - -Name: sw-KE-RafikiNeural -Gender: Male - -Name: sw-KE-ZuriNeural -Gender: Female - -Name: sw-TZ-DaudiNeural -Gender: Male - -Name: sw-TZ-RehemaNeural -Gender: Female - -Name: ta-IN-PallaviNeural -Gender: Female - -Name: ta-IN-ValluvarNeural -Gender: Male - -Name: ta-LK-KumarNeural -Gender: Male - -Name: ta-LK-SaranyaNeural -Gender: Female - -Name: ta-MY-KaniNeural -Gender: Female - -Name: ta-MY-SuryaNeural -Gender: Male - -Name: ta-SG-AnbuNeural -Gender: Male - -Name: ta-SG-VenbaNeural -Gender: Female - -Name: te-IN-MohanNeural -Gender: Male - -Name: te-IN-ShrutiNeural -Gender: Female - -Name: th-TH-NiwatNeural -Gender: Male - -Name: th-TH-PremwadeeNeural -Gender: Female - -Name: tr-TR-AhmetNeural -Gender: Male - -Name: tr-TR-EmelNeural -Gender: Female - -Name: uk-UA-OstapNeural -Gender: Male - -Name: uk-UA-PolinaNeural -Gender: Female - -Name: ur-IN-GulNeural -Gender: Female - -Name: ur-IN-SalmanNeural -Gender: Male - -Name: ur-PK-AsadNeural -Gender: Male - -Name: ur-PK-UzmaNeural -Gender: Female - -Name: uz-UZ-MadinaNeural -Gender: Female - -Name: uz-UZ-SardorNeural -Gender: Male - -Name: vi-VN-HoaiMyNeural -Gender: Female - -Name: vi-VN-NamMinhNeural -Gender: Male - -Name: zh-CN-XiaoxiaoNeural -Gender: Female - -Name: zh-CN-XiaoyiNeural -Gender: Female - -Name: zh-CN-YunjianNeural -Gender: Male - -Name: zh-CN-YunxiNeural -Gender: Male - -Name: zh-CN-YunxiaNeural -Gender: Male - -Name: zh-CN-YunyangNeural -Gender: Male - -Name: zh-CN-liaoning-XiaobeiNeural -Gender: Female - -Name: zh-CN-shaanxi-XiaoniNeural -Gender: Female - -Name: zh-HK-HiuGaaiNeural -Gender: Female - -Name: zh-HK-HiuMaanNeural -Gender: Female - -Name: zh-HK-WanLungNeural -Gender: Male - -Name: zh-TW-HsiaoChenNeural -Gender: Female - -Name: zh-TW-HsiaoYuNeural -Gender: Female - -Name: zh-TW-YunJheNeural -Gender: Male - -Name: zu-ZA-ThandoNeural -Gender: Female - -Name: zu-ZA-ThembaNeural -Gender: Male \ No newline at end of file