# This class stores Polly voice data. Specifically, the class stores several records containing # language, lang_code, gender, voice_id and engine. The class also has a method to return the # voice_id, lang_code and engine given a language and gender. NEURAL_ENGINE = "neural" STANDARD_ENGINE = "standard" class PollyVoiceData: def get_voice(self, language, gender): for voice in self.voice_data: if voice['language'] == language and voice['gender'] == gender: if voice['neural'] == 'Yes': return voice['voice_id'], voice['lang_code'], NEURAL_ENGINE for voice in self.voice_data: if voice['language'] == language and voice['gender'] == gender: if voice['standard'] == 'Yes': return voice['voice_id'], voice['lang_code'], STANDARD_ENGINE return None, None, None def get_whisper_lang_code(self, language): for voice in self.voice_data: if voice['language'] == language: return voice['whisper_lang_code'] return "en" def __init__(self): self.voice_data = [ {'language': 'Arabic', 'lang_code': 'arb', 'whisper_lang_code': 'ar', 'voice_id': 'Zeina', 'gender': 'Female', 'neural': 'No', 'standard': 'Yes'}, {'language': 'Arabic (Gulf)', 'lang_code': 'ar-AE', 'whisper_lang_code': 'ar', 'voice_id': 'Hala', 'gender': 'Female', 'neural': 'Yes', 'standard': 'No'}, {'language': 'Catalan', 'lang_code': 'ca-ES', 'whisper_lang_code': 'ca', 'voice_id': 'Arlet', 'gender': 'Female', 'neural': 'Yes', 'standard': 'No'}, {'language': 'Chinese (Cantonese)', 'lang_code': 'yue-CN', 'whisper_lang_code': 'zh', 'voice_id': 'Hiujin', 'gender': 'Female', 'neural': 'Yes', 'standard': 'No'}, {'language': 'Chinese (Mandarin)', 'lang_code': 'cmn-CN', 'whisper_lang_code': 'zh', 'voice_id': 'Zhiyu', 'gender': 'Female', 'neural': 'Yes', 'standard': 'No'}, {'language': 'Danish', 'lang_code': 'da-DK', 'whisper_lang_code': 'da', 'voice_id': 'Naja', 'gender': 'Female', 'neural': 'No', 'standard': 'Yes'}, {'language': 'Danish', 'lang_code': 'da-DK', 'whisper_lang_code': 'da', 'voice_id': 'Mads', 'gender': 'Male', 'neural': 'No', 'standard': 'Yes'}, {'language': 'Dutch', 'lang_code': 'nl-NL', 'whisper_lang_code': 'nl', 'voice_id': 'Laura', 'gender': 'Female', 'neural': 'Yes', 'standard': 'No'}, {'language': 'Dutch', 'lang_code': 'nl-NL', 'whisper_lang_code': 'nl', 'voice_id': 'Lotte', 'gender': 'Female', 'neural': 'No', 'standard': 'Yes'}, {'language': 'Dutch', 'lang_code': 'nl-NL', 'whisper_lang_code': 'nl', 'voice_id': 'Ruben', 'gender': 'Male', 'neural': 'No', 'standard': 'Yes'}, {'language': 'English (Australian)', 'lang_code': 'en-AU', 'whisper_lang_code': 'en', 'voice_id': 'Nicole', 'gender': 'Female', 'neural': 'No', 'standard': 'Yes'}, {'language': 'English (Australian)', 'lang_code': 'en-AU', 'whisper_lang_code': 'en', 'voice_id': 'Olivia', 'gender': 'Female', 'neural': 'Yes', 'standard': 'No'}, {'language': 'English (Australian)', 'lang_code': 'en-AU', 'whisper_lang_code': 'en', 'voice_id': 'Russell', 'gender': 'Male', 'neural': 'No', 'standard': 'Yes'}, {'language': 'English (British)', 'lang_code': 'en-GB', 'whisper_lang_code': 'en', 'voice_id': 'Amy', 'gender': 'Female', 'neural': 'Yes', 'standard': 'Yes'}, {'language': 'English (British)', 'lang_code': 'en-GB', 'whisper_lang_code': 'en', 'voice_id': 'Emma', 'gender': 'Female', 'neural': 'Yes', 'standard': 'Yes'}, {'language': 'English (British)', 'lang_code': 'en-GB', 'whisper_lang_code': 'en', 'voice_id': 'Brian', 'gender': 'Male', 'neural': 'Yes', 'standard': 'Yes'}, {'language': 'English (British)', 'lang_code': 'en-GB', 'whisper_lang_code': 'en', 'voice_id': 'Arthur', 'gender': 'Male', 'neural': 'Yes', 'standard': 'No'}, {'language': 'English (Indian)', 'lang_code': 'en-IN', 'whisper_lang_code': 'en', 'voice_id': 'Aditi', 'gender': 'Female', 'neural': 'No', 'standard': 'Yes'}, {'language': 'English (Indian)', 'lang_code': 'en-IN', 'whisper_lang_code': 'en', 'voice_id': 'Raveena', 'gender': 'Female', 'neural': 'No', 'standard': 'Yes'}, {'language': 'English (Indian)', 'lang_code': 'en-IN', 'whisper_lang_code': 'en', 'voice_id': 'Kajal', 'gender': 'Female', 'neural': 'Yes', 'standard': 'No'}, {'language': 'English (New Zealand)', 'lang_code': 'en-NZ', 'whisper_lang_code': 'en', 'voice_id': 'Aria', 'gender': 'Female', 'neural': 'Yes', 'standard': 'No'}, {'language': 'English (South African)', 'lang_code': 'en-ZA', 'whisper_lang_code': 'en', 'voice_id': 'Ayanda', 'gender': 'Female', 'neural': 'Yes', 'standard': 'No'}, {'language': 'English (US)', 'lang_code': 'en-US', 'whisper_lang_code': 'en', 'voice_id': 'Ivy', 'gender': 'Female (child)', 'neural': 'Yes', 'standard': 'Yes'}, {'language': 'English (US)', 'lang_code': 'en-US', 'whisper_lang_code': 'en', 'voice_id': 'Joanna', 'gender': 'Female', 'neural': 'Yes', 'standard': 'Yes'}, {'language': 'English (US)', 'lang_code': 'en-US', 'whisper_lang_code': 'en', 'voice_id': 'Kendra', 'gender': 'Female', 'neural': 'Yes', 'standard': 'Yes'}, {'language': 'English (US)', 'lang_code': 'en-US', 'whisper_lang_code': 'en', 'voice_id': 'Kimberly', 'gender': 'Female', 'neural': 'Yes', 'standard': 'Yes'}, {'language': 'English (US)', 'lang_code': 'en-US', 'whisper_lang_code': 'en', 'voice_id': 'Salli', 'gender': 'Female', 'neural': 'Yes', 'standard': 'Yes'}, {'language': 'English (US)', 'lang_code': 'en-US', 'whisper_lang_code': 'en', 'voice_id': 'Joey', 'gender': 'Male', 'neural': 'Yes', 'standard': 'Yes'}, {'language': 'English (US)', 'lang_code': 'en-US', 'whisper_lang_code': 'en', 'voice_id': 'Justin', 'gender': 'Male (child)', 'neural': 'Yes', 'standard': 'Yes'}, {'language': 'English (US)', 'lang_code': 'en-US', 'whisper_lang_code': 'en', 'voice_id': 'Kevin', 'gender': 'Male (child)', 'neural': 'Yes', 'standard': 'No'}, {'language': 'English (US)', 'lang_code': 'en-US', 'whisper_lang_code': 'en', 'voice_id': 'Matthew', 'gender': 'Male', 'neural': 'Yes', 'standard': 'Yes'}, {'language': 'English (Welsh)', 'lang_code': 'en-GB-WLS', 'whisper_lang_code': 'en', 'voice_id': 'Geraint', 'gender': 'Male', 'neural': 'No', 'standard': 'Yes'}, {'language': 'Finnish', 'lang_code': 'fi-FI', 'whisper_lang_code': 'fi', 'voice_id': 'Suvi', 'gender': 'Female', 'neural': 'Yes', 'standard': 'No'}, {'language': 'French', 'lang_code': 'fr-FR', 'whisper_lang_code': 'fr', 'voice_id': 'Celine', 'gender': 'Female', 'neural': 'No', 'standard': 'Yes'}, {'language': 'French', 'lang_code': 'fr-FR', 'whisper_lang_code': 'fr', 'voice_id': 'Lea', 'gender': 'Female', 'neural': 'Yes', 'standard': 'Yes'}, {'language': 'French', 'lang_code': 'fr-FR', 'whisper_lang_code': 'fr', 'voice_id': 'Mathieu', 'gender': 'Male', 'neural': 'No', 'standard': 'Yes'}, {'language': 'French (Canadian)', 'lang_code': 'fr-CA', 'whisper_lang_code': 'fr', 'voice_id': 'Chantal', 'gender': 'Female', 'neural': 'No', 'standard': 'Yes'}, {'language': 'French (Canadian)', 'lang_code': 'fr-CA', 'whisper_lang_code': 'fr', 'voice_id': 'Gabrielle', 'gender': 'Female', 'neural': 'Yes', 'standard': 'No'}, {'language': 'French (Canadian)', 'lang_code': 'fr-CA', 'whisper_lang_code': 'fr', 'voice_id': 'Liam', 'gender': 'Male', 'neural': 'Yes', 'standard': 'No'}, {'language': 'German', 'lang_code': 'de-DE', 'whisper_lang_code': 'de', 'voice_id': 'Marlene', 'gender': 'Female', 'neural': 'No', 'standard': 'Yes'}, {'language': 'German', 'lang_code': 'de-DE', 'whisper_lang_code': 'de', 'voice_id': 'Vicki', 'gender': 'Female', 'neural': 'Yes', 'standard': 'Yes'}, {'language': 'German', 'lang_code': 'de-DE', 'whisper_lang_code': 'de', 'voice_id': 'Hans', 'gender': 'Male', 'neural': 'No', 'standard': 'Yes'}, {'language': 'German', 'lang_code': 'de-DE', 'whisper_lang_code': 'de', 'voice_id': 'Daniel', 'gender': 'Male', 'neural': 'Yes', 'standard': 'No'}, {'language': 'German (Austrian)', 'lang_code': 'de-AT', 'whisper_lang_code': 'de', 'voice_id': 'Hannah', 'gender': 'Female', 'neural': 'Yes', 'standard': 'No'}, {'language': 'Hindi', 'lang_code': 'hi-IN', 'whisper_lang_code': 'hi', 'voice_id': 'Aditi', 'gender': 'Female', 'neural': 'No', 'standard': 'Yes'}, {'language': 'Hindi', 'lang_code': 'hi-IN', 'whisper_lang_code': 'hi', 'voice_id': 'Kajal', 'gender': 'Female', 'neural': 'Yes', 'standard': 'No'}, {'language': 'Icelandic', 'lang_code': 'is-IS', 'whisper_lang_code': 'is', 'voice_id': 'Dora', 'gender': 'Female', 'neural': 'No', 'standard': 'Yes'}, {'language': 'Icelandic', 'lang_code': 'is-IS', 'whisper_lang_code': 'is', 'voice_id': 'Karl', 'gender': 'Male', 'neural': 'No', 'standard': 'Yes'}, {'language': 'Italian', 'lang_code': 'it-IT', 'whisper_lang_code': 'it', 'voice_id': 'Carla', 'gender': 'Female', 'neural': 'No', 'standard': 'Yes'}, {'language': 'Italian', 'lang_code': 'it-IT', 'whisper_lang_code': 'it', 'voice_id': 'Bianca', 'gender': 'Female', 'neural': 'Yes', 'standard': 'Yes'}, {'language': 'Japanese', 'lang_code': 'ja-JP', 'whisper_lang_code': 'ja', 'voice_id': 'Mizuki', 'gender': 'Female', 'neural': 'No', 'standard': 'Yes'}, {'language': 'Japanese', 'lang_code': 'ja-JP', 'whisper_lang_code': 'ja', 'voice_id': 'Takumi', 'gender': 'Male', 'neural': 'Yes', 'standard': 'Yes'}, {'language': 'Korean', 'lang_code': 'ko-KR', 'whisper_lang_code': 'ko', 'voice_id': 'Seoyeon', 'gender': 'Female', 'neural': 'Yes', 'standard': 'Yes'}, {'language': 'Norwegian', 'lang_code': 'nb-NO', 'whisper_lang_code': 'no', 'voice_id': 'Liv', 'gender': 'Female', 'neural': 'No', 'standard': 'Yes'}, {'language': 'Norwegian', 'lang_code': 'nb-NO', 'whisper_lang_code': 'no', 'voice_id': 'Ida', 'gender': 'Female', 'neural': 'Yes', 'standard': 'No'}, {'language': 'Polish', 'lang_code': 'pl-PL', 'whisper_lang_code': 'pl', 'voice_id': 'Ewa', 'gender': 'Female', 'neural': 'No', 'standard': 'Yes'}, {'language': 'Polish', 'lang_code': 'pl-PL', 'whisper_lang_code': 'pl', 'voice_id': 'Maja', 'gender': 'Female', 'neural': 'No', 'standard': 'Yes'}, {'language': 'Polish', 'lang_code': 'pl-PL', 'whisper_lang_code': 'pl', 'voice_id': 'Jacek', 'gender': 'Male', 'neural': 'No', 'standard': 'Yes'}, {'language': 'Polish', 'lang_code': 'pl-PL', 'whisper_lang_code': 'pl', 'voice_id': 'Jan', 'gender': 'Male', 'neural': 'No', 'standard': 'Yes'}, {'language': 'Polish', 'lang_code': 'pl-PL', 'whisper_lang_code': 'pl', 'voice_id': 'Ola', 'gender': 'Female', 'neural': 'Yes', 'standard': 'No'}, {'language': 'Portuguese (Brazilian)', 'lang_code': 'pt-BR', 'whisper_lang_code': 'pt', 'voice_id': 'Camila', 'gender': 'Female', 'neural': 'Yes', 'standard': 'Yes'}, {'language': 'Portuguese (Brazilian)', 'lang_code': 'pt-BR', 'whisper_lang_code': 'pt', 'voice_id': 'Vitoria', 'gender': 'Female', 'neural': 'Yes', 'standard': 'Yes'}, {'language': 'Portuguese (Brazilian)', 'lang_code': 'pt-BR', 'whisper_lang_code': 'pt', 'voice_id': 'Ricardo', 'gender': 'Male', 'neural': 'No', 'standard': 'Yes'}, {'language': 'Portuguese (European)', 'lang_code': 'pt-PT', 'whisper_lang_code': 'pt', 'voice_id': 'Ines', 'gender': 'Female', 'neural': 'Yes', 'standard': 'Yes'}, {'language': 'Portuguese (European)', 'lang_code': 'pt-PT', 'whisper_lang_code': 'pt', 'voice_id': 'Cristiano', 'gender': 'Male', 'neural': 'No', 'standard': 'Yes'}, {'language': 'Romanian', 'lang_code': 'ro-RO', 'whisper_lang_code': 'ro', 'voice_id': 'Carmen', 'gender': 'Female', 'neural': 'No', 'standard': 'Yes'}, {'language': 'Russian', 'lang_code': 'ru-RU', 'whisper_lang_code': 'ru', 'voice_id': 'Tatyana', 'gender': 'Female', 'neural': 'No', 'standard': 'Yes'}, {'language': 'Russian', 'lang_code': 'ru-RU', 'whisper_lang_code': 'ru', 'voice_id': 'Maxim', 'gender': 'Male', 'neural': 'No', 'standard': 'Yes'}, {'language': 'Spanish (European)', 'lang_code': 'es-ES', 'whisper_lang_code': 'es', 'voice_id': 'Conchita', 'gender': 'Female', 'neural': 'No', 'standard': 'Yes'}, {'language': 'Spanish (European)', 'lang_code': 'es-ES', 'whisper_lang_code': 'es', 'voice_id': 'Lucia', 'gender': 'Female', 'neural': 'Yes', 'standard': 'Yes'}, {'language': 'Spanish (European)', 'lang_code': 'es-ES', 'whisper_lang_code': 'es', 'voice_id': 'Enrique', 'gender': 'Male', 'neural': 'No', 'standard': 'Yes'}, {'language': 'Spanish (Mexican)', 'lang_code': 'es-MX', 'whisper_lang_code': 'es', 'voice_id': 'Mia', 'gender': 'Female', 'neural': 'Yes', 'standard': 'Yes'}, {'language': 'Spanish (US)', 'lang_code': 'es-US', 'whisper_lang_code': 'es', 'voice_id': 'Lupe', 'gender': 'Female', 'neural': 'Yes', 'standard': 'Yes'}, {'language': 'Spanish (US)', 'lang_code': 'es-US', 'whisper_lang_code': 'es', 'voice_id': 'Penelope', 'gender': 'Female', 'neural': 'No', 'standard': 'Yes'}, {'language': 'Spanish (US)', 'lang_code': 'es-US', 'whisper_lang_code': 'es', 'voice_id': 'Miguel', 'gender': 'Male', 'neural': 'No', 'standard': 'Yes'}, {'language': 'Spanish (US)', 'lang_code': 'es-US', 'whisper_lang_code': 'es', 'voice_id': 'Pedro', 'gender': 'Male', 'neural': 'Yes', 'standard': 'No'}, {'language': 'Swedish', 'lang_code': 'sv-SE', 'whisper_lang_code': 'sv', 'voice_id': 'Astrid', 'gender': 'Female', 'neural': 'No', 'standard': 'Yes'}, {'language': 'Swedish', 'lang_code': 'sv-SE', 'whisper_lang_code': 'sv', 'voice_id': 'Elin', 'gender': 'Female', 'neural': 'Yes', 'standard': 'No'}, {'language': 'Turkish', 'lang_code': 'tr-TR', 'whisper_lang_code': 'tr', 'voice_id': 'Filiz', 'gender': 'Female', 'neural': 'No', 'standard': 'Yes'}, {'language': 'Welsh', 'lang_code': 'cy-GB', 'whisper_lang_code': 'cy', 'voice_id': 'Gwyneth', 'gender': 'Female', 'neural': 'No', 'standard': 'Yes'} ] # Run from the command-line if __name__ == '__main__': polly_voice_data = PollyVoiceData() voice_id, language_code, engine = polly_voice_data.get_voice('English (US)', 'Male') print('English (US)', 'Male', voice_id, language_code, engine) voice_id, language_code, engine = polly_voice_data.get_voice('English (US)', 'Female') print('English (US)', 'Female', voice_id, language_code, engine) voice_id, language_code, engine = polly_voice_data.get_voice('French', 'Female') print('French', 'Female', voice_id, language_code, engine) voice_id, language_code, engine = polly_voice_data.get_voice('French', 'Male') print('French', 'Male', voice_id, language_code, engine) voice_id, language_code, engine = polly_voice_data.get_voice('Japanese', 'Female') print('Japanese', 'Female', voice_id, language_code, engine) voice_id, language_code, engine = polly_voice_data.get_voice('Japanese', 'Male') print('Japanese', 'Male', voice_id, language_code, engine) voice_id, language_code, engine = polly_voice_data.get_voice('Hindi', 'Female') print('Hindi', 'Female', voice_id, language_code, engine) voice_id, language_code, engine = polly_voice_data.get_voice('Hindi', 'Male') print('Hindi', 'Male', voice_id, language_code, engine) whisper_lang_code = polly_voice_data.get_whisper_lang_code('English (US)') print('English (US) whisper_lang_code:', whisper_lang_code) whisper_lang_code = polly_voice_data.get_whisper_lang_code('Chinese (Mandarin)') print('Chinese (Mandarin) whisper_lang_code:', whisper_lang_code) whisper_lang_code = polly_voice_data.get_whisper_lang_code('Norwegian') print('Norwegian whisper_lang_code:', whisper_lang_code) whisper_lang_code = polly_voice_data.get_whisper_lang_code('Dutch') print('Dutch whisper_lang_code:', whisper_lang_code) whisper_lang_code = polly_voice_data.get_whisper_lang_code('Foo') print('Foo whisper_lang_code:', whisper_lang_code)