:py:mod:`airflow.providers.google.cloud.operators.text_to_speech`
=================================================================

.. py:module:: airflow.providers.google.cloud.operators.text_to_speech

.. autoapi-nested-parse::

   This module contains a Google Text to Speech operator.



Module Contents
---------------

Classes
~~~~~~~

.. autoapisummary::

   airflow.providers.google.cloud.operators.text_to_speech.CloudTextToSpeechSynthesizeOperator




.. py:class:: CloudTextToSpeechSynthesizeOperator(*, input_data, voice, audio_config, target_bucket_name, target_filename, project_id = None, gcp_conn_id = 'google_cloud_default', retry = DEFAULT, timeout = None, impersonation_chain = None, **kwargs)

   Bases: :py:obj:`airflow.models.BaseOperator`

   Synthesizes text to speech and stores it in Google Cloud Storage

   .. seealso::
       For more information on how to use this operator, take a look at the guide:
       :ref:`howto/operator:CloudTextToSpeechSynthesizeOperator`

   :param input_data: text input to be synthesized. See more:
       https://googleapis.github.io/google-cloud-python/latest/texttospeech/gapic/v1/types.html#google.cloud.texttospeech_v1.types.SynthesisInput
   :param voice: configuration of voice to be used in synthesis. See more:
       https://googleapis.github.io/google-cloud-python/latest/texttospeech/gapic/v1/types.html#google.cloud.texttospeech_v1.types.VoiceSelectionParams
   :param audio_config: configuration of the synthesized audio. See more:
       https://googleapis.github.io/google-cloud-python/latest/texttospeech/gapic/v1/types.html#google.cloud.texttospeech_v1.types.AudioConfig
   :param target_bucket_name: name of the GCS bucket in which output file should be stored
   :param target_filename: filename of the output file.
   :param project_id: Optional, Google Cloud Project ID where the Compute
       Engine Instance exists. If set to None or missing, the default project_id from the Google Cloud
       connection is used.
   :param gcp_conn_id: Optional, The connection ID used to connect to Google Cloud.
       Defaults to 'google_cloud_default'.
   :param retry: (Optional) A retry object used to retry requests. If None is specified,
           requests will not be retried.
   :param timeout: (Optional) The amount of time, in seconds, to wait for the request to complete.
       Note that if retry is specified, the timeout applies to each individual attempt.
   :param impersonation_chain: Optional service account to impersonate using short-term
       credentials, or chained list of accounts required to get the access_token
       of the last account in the list, which will be impersonated in the request.
       If set as a string, the account must grant the originating account
       the Service Account Token Creator IAM role.
       If set as a sequence, the identities from the list must grant
       Service Account Token Creator IAM role to the directly preceding identity, with first
       account from the list granting this role to the originating account (templated).

   .. py:attribute:: template_fields
      :annotation: :Sequence[str] = ['input_data', 'voice', 'audio_config', 'project_id', 'gcp_conn_id', 'target_bucket_name',...

      

   .. py:attribute:: operator_extra_links
      

      

   .. py:method:: execute(self, context)

      This is the main method to derive when creating an operator.
      Context is the same dictionary used as when rendering jinja templates.

      Refer to get_template_context for more context.



