ElevenLabs

The ElevenLabs integrationsIntegrations connect and integrate Home Assistant with your devices, services, and more. [Learn more] adds support for ElevenLabs as text-to-speech to read a text with natural sounding voices and speech-to-text to convert speech into text.

Prerequisites

  • You need an ElevenLabs account to use this integration. A free account suffices for basic usage.
  • For custom voices or more quota you need a subscription.
  • You need your API key from the ElevenLabs website.
  • Your API key requires the following permissions:
    • Text to Speech
    • Speech to Text
    • Voices (Read only)
    • Models (Read only)

Configuration

To add the ElevenLabs service to your Home Assistant instance, use this My button:

Manual configuration steps

If the above My button doesn’t work, you can also perform the following steps manually:

  • Browse to your Home Assistant instance.

  • Go to Settings > Devices & Services.

  • In the bottom right corner, select the Add Integration button.

  • From the list, select ElevenLabs.

  • Follow the instructions on screen to complete the setup.

Text-to-speech

For an overview of which languages can be used, check the complete list of supported languages.

For a description of which voices are available for use, check your VoiceLab voices.

To see the available models and their benefits, check the models documentation.

Speech-to-text

An overview of supported languages is available at complete list of supported languages.

List of models and their capabilities can be determined at models documentation.

Action speak

The tts.speak action is the modern way to use TTS. Add the speak action, select the entity for your ElevenLabs TTS (it’s named ElevenLabs by default), select the media player entity or group to send the TTS audio to, and enter the message to speak.

For more options about speak, see the Speak section on the main TTS building block page.

In YAML, your action will look like this:

action: tts.speak
target:
  entity_id: tts.elevenlabs
data:
  media_player_entity_id: media_player.giant_tv
  message: Hello, can you hear me now?
  options:
    voice: <voice-id>
    model: <model-id>

Configuration

Below settings can be configured in the options of the integration and in the options parameter of the tts.speak service.

Configuration Variables

voice string (Optional)

Voice ID for the ElevenLabs voice to use. Will override the default voice of the entity!

model string (Optional)

Model ID for the text-to-speech model to use. Will override the default model of the entity!

Speech-to-text model string (Optional)

Model ID for the speech-to-text model to use. Will override the default model of the entity!

Auto-detect language boolean (Optional, default: false)

Should speech-to-text auto-detect the language spoken, overrides the language selected in voice assistant!

For more information about using text-to-speech with Home Assistant and more details on all the options it provides, see the TTS documentation.

For more information about using speech-to-text with Home Assistant and more details on all the options it provides, see the STT documentation.

Removing the integration

This integration follows standard integration removal. No extra steps are required.

To remove an integration instance from Home Assistant

  1. Go to Settings > Devices & services and select the integration card.
  2. From the list of devices, select the integration instance you want to remove.
  3. Next to the entry, select the three dots menu. Then, select Delete.