IBM Watson TTS
The watson_tts
text-to-speech integrationIntegrations connect and integrate Home Assistant with your devices, services, and more.
[Learn more] that works with IBM Watson Cloud to create the spoken output.
Watson is a paid service via IBM Cloud but there is a decent free tier which offers 10000 free characters every month.
Setup
For supported formats and voices please go to IBM Cloud About section.
To get started please read the Getting started tutorial.
Configuration
To configure Watson TTS, add the following lines to your configuration.yaml
The configuration.yaml file is the main configuration file for Home Assistant. It lists the integrations to be loaded and their specific configurations. In some cases, the configuration needs to be edited manually directly in the configuration.yaml file. Most integrations can be configured in the UI.[Learn more] file.
After changing the configuration.yaml
The configuration.yaml file is the main configuration file for Home Assistant. It lists the integrations to be loaded and their specific configurations. In some cases, the configuration needs to be edited manually directly in the configuration.yaml file. Most integrations can be configured in the UI.[Learn more] file, restart Home Assistant to apply the changes. To view the changes, go to Settings > Devices & services > Entities.
# Example configuration.yaml entry
tts:
- platform: watson_tts
watson_apikey: YOUR_GENERATED_APIKEY
You can get these tokens after you generated the credentials on the IBM Cloud console:
Configuration Variables
The endpoint to which the service will connect.
https://api.us-south.text-to-speech.watson.cloud.ibm.com
Usage
Say to all media_player
device entities:
- service: tts.watson_tts_say
data:
message: "Hello from Watson"
or
- service: tts.watson_tts_say
data:
message: >
<speak>
Hello from Watson
</speak>
Say to the media_player.living_room
device entity:
- service: tts.watson_tts_say
target:
entity_id: media_player.living_room
data:
message: >
<speak>
Hello from Watson
</speak>
Say with break:
- service: tts.watson_tts_say
data:
message: >
<speak>
Hello from
<break time=".9s" />
Watson
</speak>
Optionally, specify a voice for the message:
- service: tts.watson_tts_say
data:
message: "Hello from Watson"
options:
voice: en-US_EmilyV3Voice