Amazon Polly


The amazon_polly text-to-speech platform that works with Amazon Polly to create the spoken output. Polly is a paid service via Amazon Web Services. There is a free tier for the first 12 months and then a charge per million characters afterwards.

To get started, add the following lines to your configuration.yaml (example for Amazon Polly):

# Example configuration.yaml entry
tts:
  - platform: amazon_polly
    aws_access_key_id: AWS_ACCESS_KEY_ID
    aws_secret_access_key: AWS_SECRET_ACCESS_KEY
    profile_name: AWS_PROFILE
    region_name: 'us-east-1'
    voice: Joanna

Configuration variables:

Parameter Value Description
aws_access_key_id Required Your AWS Access Key ID. For more information, please read the AWS General Reference regarding Security Credentials. If provided, you must also provide an aws_secret_access_key and must not provide a profile_name
aws_secret_access_key Required Your AWS Secret Access Key. For more information, please read the AWS General Reference regarding Security Credentials. If provided, you must also provide an aws_access_key_id and must not provide a profile_name.
profile_name Optional A credentials profile name. For more information, please see the boto3 Documentation for more information.
region_name Optional The region identifier to connect to. The default is us-east-1.
name Optional Setting the optional parameter name allows multiple notifiers to be created. The default value is notify. The notifier will bind to the service notify.NOTIFIER_NAME.
text_type text/ssml text or ssml: Specify wherever to use text (default) or ssml markup by default.
voice Optional Voice name to be used. See the Amazon Documentation for available voices.
output_format mp3/ogg_vorbis/pcm Override the default output format, defaults to MP3.
sample_rate 8000/16000/22050 Override the default sample rate, defaults to 22050 for MP3 and Ogg Vorbis, 16000 for pcm.

Usage

Say to all media_player device entities:

- service: tts.amazon_polly_say
  data_template:
    message: '<speak>Hello from Amazon Polly</speak>'

or

- service: tts.amazon_polly_say
  data_template:
    message: >
      <speak>
          Hello from Amazon Polly
      </speak>

Say to the media_player.living_room device entity:

- service: tts.amazon_polly_say
  data_template:
    entity_id: media_player.living_room
    message: >
      <speak>
          Hello from Amazon Polly
      </speak>

Say with break:

- service: tts.amazon_polly_say
  data_template:
    message: >
      <speak>
          Hello from
          <break time=".9s" />
          Amazon Polly
      </speak>