diff --git a/moto/polly/resources.py b/moto/polly/resources.py index 560e62b7b..8bfdf2e1a 100644 --- a/moto/polly/resources.py +++ b/moto/polly/resources.py @@ -1,418 +1,646 @@ # -*- coding: utf-8 -*- +# This data is a verbatim copy of that produced using the AWS CLI (requires AWS +# account) and jq utility to pull out the right part and reformat: +# +# aws polly describe-voices | jq .Voices --indent 4 VOICE_DATA = [ { - "Id": "Joanna", + "Gender": "Male", + "Id": "Kevin", "LanguageCode": "en-US", "LanguageName": "US English", - "Gender": "Female", - "Name": "Joanna", + "Name": "Kevin", + "SupportedEngines": ["neural"], }, { - "Id": "Mizuki", - "LanguageCode": "ja-JP", - "LanguageName": "Japanese", "Gender": "Female", - "Name": "Mizuki", - }, - { "Id": "Filiz", "LanguageCode": "tr-TR", "LanguageName": "Turkish", - "Gender": "Female", "Name": "Filiz", + "SupportedEngines": ["standard"], }, { + "Gender": "Female", + "Id": "Elin", + "LanguageCode": "sv-SE", + "LanguageName": "Swedish", + "Name": "Elin", + "SupportedEngines": ["neural"], + }, + { + "Gender": "Female", "Id": "Astrid", "LanguageCode": "sv-SE", "LanguageName": "Swedish", - "Gender": "Female", "Name": "Astrid", + "SupportedEngines": ["standard"], }, { + "Gender": "Female", "Id": "Tatyana", "LanguageCode": "ru-RU", "LanguageName": "Russian", - "Gender": "Female", "Name": "Tatyana", + "SupportedEngines": ["standard"], }, { + "Gender": "Male", "Id": "Maxim", "LanguageCode": "ru-RU", "LanguageName": "Russian", - "Gender": "Male", "Name": "Maxim", + "SupportedEngines": ["standard"], }, { + "Gender": "Female", "Id": "Carmen", "LanguageCode": "ro-RO", "LanguageName": "Romanian", - "Gender": "Female", "Name": "Carmen", + "SupportedEngines": ["standard"], }, { + "Gender": "Female", "Id": "Ines", "LanguageCode": "pt-PT", "LanguageName": "Portuguese", - "Gender": "Female", "Name": "Inês", + "SupportedEngines": ["neural", "standard"], }, { + "Gender": "Male", "Id": "Cristiano", "LanguageCode": "pt-PT", "LanguageName": "Portuguese", - "Gender": "Male", "Name": "Cristiano", + "SupportedEngines": ["standard"], }, { + "Gender": "Female", "Id": "Vitoria", "LanguageCode": "pt-BR", "LanguageName": "Brazilian Portuguese", - "Gender": "Female", "Name": "Vitória", + "SupportedEngines": ["neural", "standard"], }, { + "Gender": "Male", "Id": "Ricardo", "LanguageCode": "pt-BR", "LanguageName": "Brazilian Portuguese", - "Gender": "Male", "Name": "Ricardo", + "SupportedEngines": ["standard"], }, { + "Gender": "Female", + "Id": "Camila", + "LanguageCode": "pt-BR", + "LanguageName": "Brazilian Portuguese", + "Name": "Camila", + "SupportedEngines": ["neural", "standard"], + }, + { + "Gender": "Female", "Id": "Maja", "LanguageCode": "pl-PL", "LanguageName": "Polish", - "Gender": "Female", "Name": "Maja", + "SupportedEngines": ["standard"], }, { + "Gender": "Male", "Id": "Jan", "LanguageCode": "pl-PL", "LanguageName": "Polish", - "Gender": "Male", "Name": "Jan", + "SupportedEngines": ["standard"], }, { - "Id": "Ewa", - "LanguageCode": "pl-PL", - "LanguageName": "Polish", - "Gender": "Female", - "Name": "Ewa", - }, - { - "Id": "Ruben", - "LanguageCode": "nl-NL", - "LanguageName": "Dutch", "Gender": "Male", - "Name": "Ruben", - }, - { - "Id": "Lotte", - "LanguageCode": "nl-NL", - "LanguageName": "Dutch", - "Gender": "Female", - "Name": "Lotte", - }, - { - "Id": "Liv", - "LanguageCode": "nb-NO", - "LanguageName": "Norwegian", - "Gender": "Female", - "Name": "Liv", - }, - { - "Id": "Giorgio", - "LanguageCode": "it-IT", - "LanguageName": "Italian", - "Gender": "Male", - "Name": "Giorgio", - }, - { - "Id": "Carla", - "LanguageCode": "it-IT", - "LanguageName": "Italian", - "Gender": "Female", - "Name": "Carla", - }, - { - "Id": "Karl", - "LanguageCode": "is-IS", - "LanguageName": "Icelandic", - "Gender": "Male", - "Name": "Karl", - }, - { - "Id": "Dora", - "LanguageCode": "is-IS", - "LanguageName": "Icelandic", - "Gender": "Female", - "Name": "Dóra", - }, - { - "Id": "Mathieu", - "LanguageCode": "fr-FR", - "LanguageName": "French", - "Gender": "Male", - "Name": "Mathieu", - }, - { - "Id": "Celine", - "LanguageCode": "fr-FR", - "LanguageName": "French", - "Gender": "Female", - "Name": "Céline", - }, - { - "Id": "Chantal", - "LanguageCode": "fr-CA", - "LanguageName": "Canadian French", - "Gender": "Female", - "Name": "Chantal", - }, - { - "Id": "Penelope", - "LanguageCode": "es-US", - "LanguageName": "US Spanish", - "Gender": "Female", - "Name": "Penélope", - }, - { - "Id": "Miguel", - "LanguageCode": "es-US", - "LanguageName": "US Spanish", - "Gender": "Male", - "Name": "Miguel", - }, - { - "Id": "Enrique", - "LanguageCode": "es-ES", - "LanguageName": "Castilian Spanish", - "Gender": "Male", - "Name": "Enrique", - }, - { - "Id": "Conchita", - "LanguageCode": "es-ES", - "LanguageName": "Castilian Spanish", - "Gender": "Female", - "Name": "Conchita", - }, - { - "Id": "Geraint", - "LanguageCode": "en-GB-WLS", - "LanguageName": "Welsh English", - "Gender": "Male", - "Name": "Geraint", - }, - { - "Id": "Salli", - "LanguageCode": "en-US", - "LanguageName": "US English", - "Gender": "Female", - "Name": "Salli", - }, - { - "Id": "Kimberly", - "LanguageCode": "en-US", - "LanguageName": "US English", - "Gender": "Female", - "Name": "Kimberly", - }, - { - "Id": "Kendra", - "LanguageCode": "en-US", - "LanguageName": "US English", - "Gender": "Female", - "Name": "Kendra", - }, - { - "Id": "Justin", - "LanguageCode": "en-US", - "LanguageName": "US English", - "Gender": "Male", - "Name": "Justin", - }, - { - "Id": "Joey", - "LanguageCode": "en-US", - "LanguageName": "US English", - "Gender": "Male", - "Name": "Joey", - }, - { - "Id": "Ivy", - "LanguageCode": "en-US", - "LanguageName": "US English", - "Gender": "Female", - "Name": "Ivy", - }, - { - "Id": "Raveena", - "LanguageCode": "en-IN", - "LanguageName": "Indian English", - "Gender": "Female", - "Name": "Raveena", - }, - { - "Id": "Emma", - "LanguageCode": "en-GB", - "LanguageName": "British English", - "Gender": "Female", - "Name": "Emma", - }, - { - "Id": "Brian", - "LanguageCode": "en-GB", - "LanguageName": "British English", - "Gender": "Male", - "Name": "Brian", - }, - { - "Id": "Amy", - "LanguageCode": "en-GB", - "LanguageName": "British English", - "Gender": "Female", - "Name": "Amy", - }, - { - "Id": "Russell", - "LanguageCode": "en-AU", - "LanguageName": "Australian English", - "Gender": "Male", - "Name": "Russell", - }, - { - "Id": "Nicole", - "LanguageCode": "en-AU", - "LanguageName": "Australian English", - "Gender": "Female", - "Name": "Nicole", - }, - { - "Id": "Vicki", - "LanguageCode": "de-DE", - "LanguageName": "German", - "Gender": "Female", - "Name": "Vicki", - }, - { - "Id": "Marlene", - "LanguageCode": "de-DE", - "LanguageName": "German", - "Gender": "Female", - "Name": "Marlene", - }, - { - "Id": "Hans", - "LanguageCode": "de-DE", - "LanguageName": "German", - "Gender": "Male", - "Name": "Hans", - }, - { - "Id": "Naja", - "LanguageCode": "da-DK", - "LanguageName": "Danish", - "Gender": "Female", - "Name": "Naja", - }, - { - "Id": "Mads", - "LanguageCode": "da-DK", - "LanguageName": "Danish", - "Gender": "Male", - "Name": "Mads", - }, - { - "Id": "Gwyneth", - "LanguageCode": "cy-GB", - "LanguageName": "Welsh", - "Gender": "Female", - "Name": "Gwyneth", - }, - { "Id": "Jacek", "LanguageCode": "pl-PL", "LanguageName": "Polish", - "Gender": "Male", "Name": "Jacek", + "SupportedEngines": ["standard"], + }, + { + "Gender": "Female", + "Id": "Ewa", + "LanguageCode": "pl-PL", + "LanguageName": "Polish", + "Name": "Ewa", + "SupportedEngines": ["standard"], + }, + { + "Gender": "Female", + "Id": "Ola", + "LanguageCode": "pl-PL", + "LanguageName": "Polish", + "Name": "Ola", + "SupportedEngines": ["neural"], + }, + { + "Gender": "Male", + "Id": "Ruben", + "LanguageCode": "nl-NL", + "LanguageName": "Dutch", + "Name": "Ruben", + "SupportedEngines": ["standard"], + }, + { + "Gender": "Female", + "Id": "Lotte", + "LanguageCode": "nl-NL", + "LanguageName": "Dutch", + "Name": "Lotte", + "SupportedEngines": ["standard"], + }, + { + "Gender": "Female", + "Id": "Laura", + "LanguageCode": "nl-NL", + "LanguageName": "Dutch", + "Name": "Laura", + "SupportedEngines": ["neural"], + }, + { + "Gender": "Female", + "Id": "Ida", + "LanguageCode": "nb-NO", + "LanguageName": "Norwegian", + "Name": "Ida", + "SupportedEngines": ["neural"], + }, + { + "Gender": "Female", + "Id": "Liv", + "LanguageCode": "nb-NO", + "LanguageName": "Norwegian", + "Name": "Liv", + "SupportedEngines": ["standard"], + }, + { + "Gender": "Female", + "Id": "Seoyeon", + "LanguageCode": "ko-KR", + "LanguageName": "Korean", + "Name": "Seoyeon", + "SupportedEngines": ["neural", "standard"], + }, + { + "Gender": "Male", + "Id": "Takumi", + "LanguageCode": "ja-JP", + "LanguageName": "Japanese", + "Name": "Takumi", + "SupportedEngines": ["neural", "standard"], + }, + { + "Gender": "Female", + "Id": "Mizuki", + "LanguageCode": "ja-JP", + "LanguageName": "Japanese", + "Name": "Mizuki", + "SupportedEngines": ["standard"], + }, + { + "Gender": "Female", + "Id": "Bianca", + "LanguageCode": "it-IT", + "LanguageName": "Italian", + "Name": "Bianca", + "SupportedEngines": ["neural", "standard"], + }, + { + "Gender": "Male", + "Id": "Giorgio", + "LanguageCode": "it-IT", + "LanguageName": "Italian", + "Name": "Giorgio", + "SupportedEngines": ["standard"], + }, + { + "Gender": "Female", + "Id": "Carla", + "LanguageCode": "it-IT", + "LanguageName": "Italian", + "Name": "Carla", + "SupportedEngines": ["standard"], + }, + { + "Gender": "Male", + "Id": "Karl", + "LanguageCode": "is-IS", + "LanguageName": "Icelandic", + "Name": "Karl", + "SupportedEngines": ["standard"], + }, + { + "Gender": "Female", + "Id": "Dora", + "LanguageCode": "is-IS", + "LanguageName": "Icelandic", + "Name": "Dóra", + "SupportedEngines": ["standard"], + }, + { + "Gender": "Male", + "Id": "Mathieu", + "LanguageCode": "fr-FR", + "LanguageName": "French", + "Name": "Mathieu", + "SupportedEngines": ["standard"], + }, + { + "Gender": "Female", + "Id": "Lea", + "LanguageCode": "fr-FR", + "LanguageName": "French", + "Name": "Léa", + "SupportedEngines": ["neural", "standard"], + }, + { + "Gender": "Female", + "Id": "Celine", + "LanguageCode": "fr-FR", + "LanguageName": "French", + "Name": "Céline", + "SupportedEngines": ["standard"], + }, + { + "Gender": "Female", + "Id": "Chantal", + "LanguageCode": "fr-CA", + "LanguageName": "Canadian French", + "Name": "Chantal", + "SupportedEngines": ["standard"], + }, + { + "Gender": "Female", + "Id": "Gabrielle", + "LanguageCode": "fr-CA", + "LanguageName": "Canadian French", + "Name": "Gabrielle", + "SupportedEngines": ["neural"], + }, + { + "Gender": "Female", + "Id": "Penelope", + "LanguageCode": "es-US", + "LanguageName": "US Spanish", + "Name": "Penélope", + "SupportedEngines": ["standard"], + }, + { + "Gender": "Male", + "Id": "Miguel", + "LanguageCode": "es-US", + "LanguageName": "US Spanish", + "Name": "Miguel", + "SupportedEngines": ["standard"], + }, + { + "Gender": "Female", + "Id": "Lupe", + "LanguageCode": "es-US", + "LanguageName": "US Spanish", + "Name": "Lupe", + "SupportedEngines": ["neural", "standard"], + }, + { + "Gender": "Female", + "Id": "Mia", + "LanguageCode": "es-MX", + "LanguageName": "Mexican Spanish", + "Name": "Mia", + "SupportedEngines": ["neural", "standard"], + }, + { + "Gender": "Female", + "Id": "Lucia", + "LanguageCode": "es-ES", + "LanguageName": "Castilian Spanish", + "Name": "Lucia", + "SupportedEngines": ["neural", "standard"], + }, + { + "Gender": "Male", + "Id": "Enrique", + "LanguageCode": "es-ES", + "LanguageName": "Castilian Spanish", + "Name": "Enrique", + "SupportedEngines": ["standard"], + }, + { + "Gender": "Female", + "Id": "Conchita", + "LanguageCode": "es-ES", + "LanguageName": "Castilian Spanish", + "Name": "Conchita", + "SupportedEngines": ["standard"], + }, + { + "Gender": "Male", + "Id": "Geraint", + "LanguageCode": "en-GB-WLS", + "LanguageName": "Welsh English", + "Name": "Geraint", + "SupportedEngines": ["standard"], + }, + { + "Gender": "Female", + "Id": "Salli", + "LanguageCode": "en-US", + "LanguageName": "US English", + "Name": "Salli", + "SupportedEngines": ["neural", "standard"], + }, + { + "Gender": "Male", + "Id": "Matthew", + "LanguageCode": "en-US", + "LanguageName": "US English", + "Name": "Matthew", + "SupportedEngines": ["neural", "standard"], + }, + { + "Gender": "Female", + "Id": "Kimberly", + "LanguageCode": "en-US", + "LanguageName": "US English", + "Name": "Kimberly", + "SupportedEngines": ["neural", "standard"], + }, + { + "Gender": "Female", + "Id": "Kendra", + "LanguageCode": "en-US", + "LanguageName": "US English", + "Name": "Kendra", + "SupportedEngines": ["neural", "standard"], + }, + { + "Gender": "Male", + "Id": "Justin", + "LanguageCode": "en-US", + "LanguageName": "US English", + "Name": "Justin", + "SupportedEngines": ["neural", "standard"], + }, + { + "Gender": "Male", + "Id": "Joey", + "LanguageCode": "en-US", + "LanguageName": "US English", + "Name": "Joey", + "SupportedEngines": ["neural", "standard"], + }, + { + "Gender": "Female", + "Id": "Joanna", + "LanguageCode": "en-US", + "LanguageName": "US English", + "Name": "Joanna", + "SupportedEngines": ["neural", "standard"], + }, + { + "Gender": "Female", + "Id": "Ivy", + "LanguageCode": "en-US", + "LanguageName": "US English", + "Name": "Ivy", + "SupportedEngines": ["neural", "standard"], + }, + { + "Gender": "Female", + "Id": "Aria", + "LanguageCode": "en-NZ", + "LanguageName": "New Zealand English", + "Name": "Aria", + "SupportedEngines": ["neural"], + }, + { + "Gender": "Female", + "Id": "Ayanda", + "LanguageCode": "en-ZA", + "LanguageName": "South African English", + "Name": "Ayanda", + "SupportedEngines": ["neural"], + }, + { + "Gender": "Female", + "Id": "Raveena", + "LanguageCode": "en-IN", + "LanguageName": "Indian English", + "Name": "Raveena", + "SupportedEngines": ["standard"], + }, + { + "Gender": "Female", + "Id": "Aditi", + "LanguageCode": "en-IN", + "LanguageName": "Indian English", + "Name": "Aditi", + "AdditionalLanguageCodes": ["hi-IN"], + "SupportedEngines": ["standard"], + }, + { + "Gender": "Female", + "Id": "Emma", + "LanguageCode": "en-GB", + "LanguageName": "British English", + "Name": "Emma", + "SupportedEngines": ["neural", "standard"], + }, + { + "Gender": "Male", + "Id": "Brian", + "LanguageCode": "en-GB", + "LanguageName": "British English", + "Name": "Brian", + "SupportedEngines": ["neural", "standard"], + }, + { + "Gender": "Female", + "Id": "Amy", + "LanguageCode": "en-GB", + "LanguageName": "British English", + "Name": "Amy", + "SupportedEngines": ["neural", "standard"], + }, + { + "Gender": "Male", + "Id": "Russell", + "LanguageCode": "en-AU", + "LanguageName": "Australian English", + "Name": "Russell", + "SupportedEngines": ["standard"], + }, + { + "Gender": "Female", + "Id": "Nicole", + "LanguageCode": "en-AU", + "LanguageName": "Australian English", + "Name": "Nicole", + "SupportedEngines": ["standard"], + }, + { + "Gender": "Female", + "Id": "Olivia", + "LanguageCode": "en-AU", + "LanguageName": "Australian English", + "Name": "Olivia", + "SupportedEngines": ["neural"], + }, + { + "Gender": "Female", + "Id": "Vicki", + "LanguageCode": "de-DE", + "LanguageName": "German", + "Name": "Vicki", + "SupportedEngines": ["neural", "standard"], + }, + { + "Gender": "Female", + "Id": "Marlene", + "LanguageCode": "de-DE", + "LanguageName": "German", + "Name": "Marlene", + "SupportedEngines": ["standard"], + }, + { + "Gender": "Male", + "Id": "Hans", + "LanguageCode": "de-DE", + "LanguageName": "German", + "Name": "Hans", + "SupportedEngines": ["standard"], + }, + { + "Gender": "Female", + "Id": "Naja", + "LanguageCode": "da-DK", + "LanguageName": "Danish", + "Name": "Naja", + "SupportedEngines": ["standard"], + }, + { + "Gender": "Male", + "Id": "Mads", + "LanguageCode": "da-DK", + "LanguageName": "Danish", + "Name": "Mads", + "SupportedEngines": ["standard"], + }, + { + "Gender": "Female", + "Id": "Gwyneth", + "LanguageCode": "cy-GB", + "LanguageName": "Welsh", + "Name": "Gwyneth", + "SupportedEngines": ["standard"], + }, + { + "Gender": "Female", + "Id": "Zhiyu", + "LanguageCode": "cmn-CN", + "LanguageName": "Chinese Mandarin", + "Name": "Zhiyu", + "SupportedEngines": ["neural", "standard"], + }, + { + "Gender": "Female", + "Id": "Zeina", + "LanguageCode": "arb", + "LanguageName": "Arabic", + "Name": "Zeina", + "SupportedEngines": ["standard"], + }, + { + "Gender": "Female", + "Id": "Hala", + "LanguageCode": "ar-AE", + "LanguageName": "Gulf Arabic", + "Name": "Hala", + "SupportedEngines": ["neural"], + }, + { + "Gender": "Female", + "Id": "Arlet", + "LanguageCode": "ca-ES", + "LanguageName": "Catalan", + "Name": "Arlet", + "SupportedEngines": ["neural"], + }, + { + "Gender": "Female", + "Id": "Hannah", + "LanguageCode": "de-AT", + "LanguageName": "German", + "Name": "Hannah", + "SupportedEngines": ["neural"], + }, + { + "Gender": "Female", + "Id": "Kajal", + "LanguageCode": "en-IN", + "LanguageName": "Indian English", + "Name": "Kajal", + "AdditionalLanguageCodes": ["hi-IN"], + "SupportedEngines": ["neural"], + }, + { + "Gender": "Female", + "Id": "Hiujin", + "LanguageCode": "yue-CN", + "LanguageName": "Cantonese", + "Name": "Hiujin", + "SupportedEngines": ["neural"], + }, + { + "Gender": "Female", + "Id": "Suvi", + "LanguageCode": "fi-FI", + "LanguageName": "Finnish", + "Name": "Suvi", + "SupportedEngines": ["neural"], + }, + { + "Gender": "Male", + "Id": "Arthur", + "LanguageCode": "en-GB", + "LanguageName": "British English", + "Name": "Arthur", + "SupportedEngines": ["neural"], + }, + { + "Gender": "Male", + "Id": "Daniel", + "LanguageCode": "de-DE", + "LanguageName": "German", + "Name": "Daniel", + "SupportedEngines": ["neural"], + }, + { + "Gender": "Male", + "Id": "Liam", + "LanguageCode": "fr-CA", + "LanguageName": "Canadian French", + "Name": "Liam", + "SupportedEngines": ["neural"], + }, + { + "Gender": "Male", + "Id": "Pedro", + "LanguageCode": "es-US", + "LanguageName": "US Spanish", + "Name": "Pedro", + "SupportedEngines": ["neural"], }, ] -# {...} is also shorthand set syntax -LANGUAGE_CODES = { - "cy-GB", - "da-DK", - "de-DE", - "en-AU", - "en-GB", - "en-GB-WLS", - "en-IN", - "en-US", - "es-ES", - "es-US", - "fr-CA", - "fr-FR", - "is-IS", - "it-IT", - "ja-JP", - "nb-NO", - "nl-NL", - "pl-PL", - "pt-BR", - "pt-PT", - "ro-RO", - "ru-RU", - "sv-SE", - "tr-TR", -} +LANGUAGE_CODES = {voice["LanguageCode"] for voice in VOICE_DATA} -VOICE_IDS = { - "Geraint", - "Gwyneth", - "Mads", - "Naja", - "Hans", - "Marlene", - "Nicole", - "Russell", - "Amy", - "Brian", - "Emma", - "Raveena", - "Ivy", - "Joanna", - "Joey", - "Justin", - "Kendra", - "Kimberly", - "Salli", - "Conchita", - "Enrique", - "Miguel", - "Penelope", - "Chantal", - "Celine", - "Mathieu", - "Dora", - "Karl", - "Carla", - "Giorgio", - "Mizuki", - "Liv", - "Lotte", - "Ruben", - "Ewa", - "Jacek", - "Jan", - "Maja", - "Ricardo", - "Vitoria", - "Cristiano", - "Ines", - "Carmen", - "Maxim", - "Tatyana", - "Astrid", - "Filiz", -} +VOICE_IDS = {voice["Name"] for voice in VOICE_DATA} diff --git a/tests/test_polly/test_polly.py b/tests/test_polly/test_polly.py index 235311373..ecde12bc7 100644 --- a/tests/test_polly/test_polly.py +++ b/tests/test_polly/test_polly.py @@ -29,7 +29,7 @@ def test_describe_voices(): len(resp["Voices"]).should.be.greater_than(1) resp = client.describe_voices(LanguageCode="en-GB") - len(resp["Voices"]).should.equal(3) + len(resp["Voices"]).should.equal(4) try: client.describe_voices(LanguageCode="SOME_LANGUAGE")