GetLexicon - Amazon Polly
Services or capabilities described in Amazon Web Services documentation might vary by Region. To see the differences applicable to the China Regions, see Getting Started with Amazon Web Services in China (PDF).

GetLexicon

The following Python code uses the Amazon SDK for Python (Boto) to retrieve all lexicons stored in an Amazon Region. The example accepts a lexicon name as a command line parameter and fetches that lexicon only, printing out the tmp path where it has been saved locally.

The following code example uses default credentials stored in the Amazon SDK configuration file. For information about creating the configuration file, see Step 2.1: Set up the Amazon CLI.

For more information on this operation, see the reference for the GetLexicon API.

from argparse import ArgumentParser from os import path from tempfile import gettempdir from boto3 import Session from botocore.exceptions import BotoCoreError, ClientError # Define and parse the command line arguments cli = ArgumentParser(description="GetLexicon example") cli.add_argument("name", type=str, metavar="LEXICON_NAME") arguments = cli.parse_args() # Create a client using the credentials and region defined in the adminuser # section of the Amazon credentials and configuration files session = Session(profile_name="adminuser") polly = session.client("polly") print(u"Fetching {0}...".format(arguments.name)) try: # Fetch lexicon by name response = polly.get_lexicon(Name=arguments.name) except (BotoCoreError, ClientError) as error: # The service returned an error, exit gracefully cli.error(error) # Get the lexicon data from the response lexicon = response.get("Lexicon", {}) # Access the lexicon's content if "Content" in lexicon: output = path.join(gettempdir(), u"%s.pls" % arguments.name) print(u"Saving to %s..." % output) try: # Save the lexicon contents to a local file with open(output, "w") as pls_file: pls_file.write(lexicon["Content"]) except IOError as error: # Could not write to file, exit gracefully cli.error(error) else: # The response didn't contain lexicon data, exit gracefully cli.error("Could not fetch lexicons contents") print("Done.")