import asyncio from edge_tts import list_voices async def print_voices() -> None: """Print all available voices.""" voices = await list_voices() voices = sorted(voices, key=lambda voice: voice["ShortName"]) print("| Name | Gender | Language |") print("| :--- | :----- | :--------|") for idx, voice in enumerate(voices): if idx != 0: pass cols = None for key in voice.keys(): if key in ( "SuggestedCodec", "FriendlyName", "Status", "VoiceTag", "Name", "Locale", ): continue pretty_key_name = key if key != "ShortName" else "Name" if pretty_key_name == 'Name': cols = [] cols.append(voice[key]) if pretty_key_name == 'Gender': print(f"| {cols[0]} | {cols[1]} | {'-'.join(cols[0].split('-')[0:2])} |") if __name__ == "__main__": asyncio.run(print_voices())