home-assistant.io/source/voice_control/voice_remote_local_assistant.markdown
c0ffeeca7 9078b2ccd7
local assistant: tweaks (#33136)
* local assistant: tweaks

* Update source/voice_control/voice_remote_local_assistant.markdown

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* specify meaning of local. input by coderabbitai

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2024-06-07 14:13:09 +02:00

5.1 KiB

title, related
title related
Installing a local Assist pipeline
docs title
/voice_control/voice_remote_expose_devices/#exposing-your-devices Expose your devices to Assist
docs title
/voice_control/create_wake_word/ Create your own wake words
url title
https://github.com/openai/whisper Whisper for speech-to-text
url title
https://github.com/rhasspy/piper Piper for text-to-speech

In Home Assistant, the Assist pipelines are made up of various components that together form a voice assistant.

For each component, you can choose from different options. There is a speech-to-text and text-to-speech option that runs entirely local. No data is sent to external servers for processing.

The speech-to-text option is Whisper. It's an open source AI model that supports various languages. We use a forked version called faster-whisper. On a Raspberry Pi 4, it takes around 8 seconds to process incoming voice commands. On an Intel NUC, it is done in under a second.

For text-to-speech, we have developed Piper. Piper is a fast, local neural text-to-speech system that sounds great and is optimized for the Raspberry Pi 4. It supports many languages. On a Raspberry Pi, using medium quality models, it can generate 1.6s of voice in a second.

Prerequisites

  • Home Assistant Operating System

Installing a local Assist pipeline

For the quickest way to get your local Assist pipeline started, follow these steps:

  1. Install the add-ons to convert text into speech and vice versa.

    • Install the {% my supervisor_addon addon="core_whisper" title="Whisper" %} and the {% my supervisor_addon addon="core_piper" title="Piper" %} add-ons. Install the Whisper and Piper add-ons
    • If you want to use a wake word, also install the {% my supervisor_addon addon="core_openwakeword" title="openWakeWord" %} add-on.
    • Start the add-ons.
    • Once the add-ons are started, head over to the integrations under {% my integrations title="Settings > Devices & Services" %}.
    • For each integration, select Configure.
      • Once the setup is complete, you should see both Piper and Whisper (and, optionally, also openWakeword) in one integration.

        Whisper and Piper integration

        • Whisper converts speech into text.
        • Piper converts text into speech.
        • Wyoming is the protocol they are both using to communicate.
  2. Setup your assistant.

    • Go to {% my voice_assistants title="Settings > Voice assistants" %} and select Add assistant. Enter a name for your voice assistant

      • Troubleshooting: If you do not see any assistants here, you are not using the default configuration. In this case, you need to add the following to your {% term "configuration.yaml" %} file:

        # Example configuration.yaml entry
        assist_pipeline:
        
    • Enter a name. You can pick any name that is meaningful to you.

    • Select the language that you want to speak.

    • Under Conversation agent, select Home Assistant.

    • Under Speech-to-text, select faster-whisper. Select the language.

    • Under Text-to-speech, select piper. Select the language.

      • Depending on your language, you may be able to select different language variants.
    • If you like, pick one of the predefined wake words. Select wake word

      • You can even define your own wake word. This is not difficult to do, but you will need to set aside a bit of time for this.
      • Once you defined your own wake word, it will show in this pick list.
  3. That's it. You ensured your voice commands can be processed locally on your device.

  4. If you haven't done so yet, expose your devices to Assist.

    • Otherwise you won't be able to control them by voice.

Fine-tuning Whisper and Piper for your setup

You would like to tweak the configuration for better performance or accuracy? View some of the options in the video below. Explained by Mike Hansen, creator of Rhasspy, Piper, and Wyoming.

The options are also documented in the add-on itself. Go to the {% my supervisor_addon addon="core_whisper" title="Whisper" %} or the {% my supervisor_addon addon="core_piper" title="Piper" %} add-on and open the Documentation page.