Chat-GPT-LangChain / polly_utils.py
appl044's picture
Duplicate from JavaFXpert/Chat-GPT-LangChain
8592444
# 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)