GetLexicon - Amazon Polly

GetLexicon

Nel seguente codice Python viene utilizzato AWS SDK for Python (Boto) per recuperare tutti i lessici archiviati in una regione AWS. Nell'esempio viene accettato un nome di lessico come parametro della riga di comando e viene recuperato solo tale lessico, stampando il percorso temporaneo in cui è stato salvato in locale.

Nell'esempio di codice seguente vengono utilizzate le credenziali di default archiviate nel file di configurazione dell'SDK AWS. Per informazioni sulla creazione del file di configurazione, consulta Fase 3.1: configurazione di AWS Command Line Interface (AWS CLI).

Per ulteriori informazioni su questa operazione, consulta il riferimento per l'API GetLexicon.

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 AWS 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.")