How to pick a port for wyoming protocol?

Very confused. In installed piper and whisper through add-ons and restarted. Then I tried to add wyoming as an integration and it’s asking me for host. i tried localohost and port 10300 and 10200 but neither worked. Also tried my ip directly and still didn’t work. I don’t see any documentation explaining this. Could someone please help me out?

Usually, these add-ons inform home assistant about their existence and home assistant picks up all required information (discovered integration), you just need to click submit on integration page.

[08:45:24] INFO: Successfully send discovery information to Home Assistant.

When trying to add wyoming integration, both Host and Port are mandatory.
What is expected to go in here?
note: running docker homeassistant/home-assistant on synology nas.

1 Like

Same issue here - did you ever figure it out?

Same issue here. Any solution yet?

I had the same issue. I am running HA using docker - perhaps it is different for other versions.

I solved it (with help from comments in this GitHub issue and this community thread) by creating docker containers for Whisper and Piper before adding the add-ons in HA. Here’s the relevant bit of my Docker compose file (see linked community thread for more details):

  wyoming-whisper:
    image: rhasspy/wyoming-whisper
    container_name: wyoming-whisper
    ports:
      - 10300:10300
    volumes:
      - /srv/docker/wyoming-whisper/data:/data
    command: "--model tiny-int8"
    restart: unless-stopped

  wyoming-piper:
    image: rhasspy/wyoming-piper
    container_name: wyoming-piper
    ports:
      - 10200:10200
    volumes:
      - /srv/docker/wyoming-piper/data:/data
    command: "--voice en_US-lessac-medium"
    restart: unless-stopped

Once I had these containers running, I added the Whisper and Piper add-ons in the Home Assistant interface using my Docker bridge network’s IP address and ports 10300 and 10200. They then appeared as entities in the Wyoming Protocol integration.

The rest of the assist pipeline instructions worked fine for me.

4 Likes

You have to simply enter the ip address or the hostname and port of a wyoming application such as piper, whisper or openwakeword. If you use docker compose to start your ha stack, you can use the container name instead of his ip address.
When you press “Submit” HA will detect the application and after that you can select it in Assist configuration.

1 Like

Is there any other info on how to set this up?

I have just installed HA in a VM on Virtualbox on Windows. Working fine but when I come to install either Whisper or Piper it prompts me about Wyoming and then takes me to the host/port dialog. Since I haven’t installed either of them yet I have no idea what I am supposed to put for these values. Is it the IP/port of the HA host?

The instructions for Wyoming are pretty vague - basically “follow the instructions on screen” which is not particularly helpful.

1 Like

After a lot of frustration I found this problem is due to trying to install as an integration.
You need to install as an add on

4 Likes

So I think the solution is as follows:

Add “Piper” as an Add-on. After doing so, you must click on it in while still in Ad-Ons and hit START. As soon as it started HA discovered the Wyoming Protocol integration and added successfully.

2 Likes

Thanks for this - it works for me.

This should be in the home-assistant.io documentation, IMHO

Ideally, there would be a good place to collect all the integrations needed when using Docker Compose instead of HA OS. I can’t find such documentation anywhere.

2 Likes

Hi all. I wanted to share that I managed to get piper and whisper working locally using nvidia GPU and docker. You need nvidia toolkit installed and CUDA, and then the docker-compose.yml I use is:


  faster-whisper:
    image: lscr.io/linuxserver/faster-whisper:gpu
    container_name: faster-whisper
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Prague
      - WHISPER_MODEL=tiny-int8
    volumes:
      - ./faster-whisper/data:/config
#    ports:
#      - 127.0.0.1:10300:10300
    restart: unless-stopped
    network_mode: host
    runtime: nvidia
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities:
                - gpu
                - utility
                - compute

  wyoming-piper-gpu:
    image: slackr31337/wyoming-piper-gpu:latest
    container_name: wyoming-piper-gpu
    environment:
      - PIPER_VOICE=en_US-lessac-high
#    ports:
#      - 127.0.0.1:10200:10200
    volumes:
      - ./wyoming-piper-gpu:/data
    restart: unless-stopped
    network_mode: host
    runtime: nvidia
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities:
                - gpu
                - utility
                - compute

Hope this helps somebody! Verified with nvidia-smi its using my GPU. and on a fairly old Quadro P2000 I get like 10 times faster processing than with CPU.

1 Like

Thank you!

I hope you solved the issue, but if anyone in the future have the same problem, i just entered the hostname (core-piper, core-whisper) in the hostname and 10200 in the port for piper and 10300 for whisper and it worked, i run HA on RP4

1 Like

To add on to the previous responses:

settings >> add-ons >> Search for and add Piper then Start the addon >> devices >> Choose to add new integration Wyoming Protocol (once added, will now have your new piper entity) >> add-ons >> search for and add Whisper then start the addon >> devices >> choose to add new Whisper integration. A Whisper entity will be added to the Wyoming Protocol.

This process is not fully outlined in the Getting Started documentation: Getting started - Local - Home Assistant

Hello everyone, I’ve been using HA for…probably at least 8 years at this point. I thought I’d dive into some of the more recent voice assistant, even any assistant stuff in general. I read a blog post about setting up wyoming a while ago so I understand about being able to set up satellite devices and things like that, I see a lot of promise. However as a rather technical user, I can definitely say that the documentation is completely lacking. Here’s my experience so far:

  1. I looked into setting up my own voice assistant. I first connected ollama to my new LLM server, that part worked fine. It then has options for STT/TTS, okay, not a lot of information, I think I searched at this point.

  2. Somehow I found the documentation here: Getting started - Local - Home Assistant . That seems pretty authoritative. Well I see that I need a voice pipeline, makes sense. I see that it says I need to install Speech-to-Phrase OR Whisper, AND I need to install Piper.

  • Important note here, we’ll come back to this later.
  1. I go back to HA, check integrations and search for Piper. I can’t seem to install it because it’s included as part of the Wyoming Protocol. This makes sense if things were merged as part of an update. Same thing for Whisper, understandable. Guess I need to install wyoming. But it wants a host/port. I have no clue what these are at this point. I’m stuck, need help.

  2. How convenient, there’s a help button, that will tell me exactly how to install wyoming right? Wrong. It’s the same link that I found in step 2. So I read through the documentation again. Voice pipeline, understood, install Piper/Whisper, understood. How do I install those? Obviously an Integration right? …right?

  3. So I’m stuck, I take to google (or DDG). That’s where I found this thread. I see comments about addons, and about running the piper/whisper services with docker images. Things are starting to make sense now. It’s not working yet, but I form an understanding after a good half hour of testing and research.

  • Coming back to the point above, I realize a key misunderstanding is that the documentation explicitly mentions that the quickest way to get the pipeline up is to install these addons. Addons are NOT integrations, despite having integrations by the same exact name. I had to search to find this out. Addons are, according to documentation:
    Add-ons are only available if you've used the Home Assistant Operating System or Home Assistant Supervised [installation](https://www.home-assistant.io/installation) method.
    So basically, addons are a way to install third party software that’s not actually part of HA, but are part of an opinionated way that HA might be installed. This does not include ALL ways it can be installed (docker, legacy installations, etc, remember I’ve used HA for 8+ years…).

I now realize that I can go to the Piper or Whisper pages and presumably find a way to run the software, likely in docker on some host. I assume that once I do that, I will be able to enter that address in the Wyoming integration configuration field. I don’t know what will happen if I run the services on different ports, or different hosts. That doesn’t seem to be supported, I don’t even know if there is a single docker container that combines both Whisper and Piper onto one port as a “wyoming” service. There a hints to this above that I’ll have to dig into, but I realize that I will be responsible for running additional software on a server somewhere. I have no problem with that, but the documentation mentions nothing about this whatsoever.

So all that said, what have we learned?

  1. The documentation failed me. It does not clarify the difference between an addon and an integration, it does not emphasize that there is a difference. On top of that the integrations have a seemingly circular dependency of “help”.
  2. The documentation inaccurately states that addons are the “quickest” way to set up a pipeline. Nowhere after describing the addon approach does it provide even the slightest hint that there is even another way to accomplish this, nor how one would do this.
  3. As stated above, I had to search and find this thread before understanding that I need to run a separate service, outside of HA.

I thought I read that 2024 was the year of voice, I have to admit, I’m sorely disappointed in the experience thus far. It sounds like a great amount of effort, but the basic documentation is…lacking, for kinder words.

Please don’t read this as overly negative or scathing, I just wanted to clearly document my first time experience as a rather technical, borderline veteran user of HA. Yes, I’m just a tinkerer like most of us, but this was a very poor experience. I (think I) know what I have to do now. But I took the time to register an account and probably another half an hour of my day to revisit and document exactly what my thought process and experiences were, in order to be constructive, not to complain. I hope this finds the attention of a lovely volunteer who is more qualified to review and update the documentation to be more accurate so future users can have better experiences than I have.

Thank you all maintainers and community members, Open Source is near to my heart, and while I may not be contributing here (other than a long rambling experience post), I hope this can help improve things, and I appreciate the time and energy of everyone involved!

Best regards

Update, just for reference:
I looked through this thread, at this specific comment:

  1. I started the docker containers on a server and noted their IP addresses/ports
  2. I enabled the wyoming integration. I used the ip/host of the server. For port I used one of the ports, I think it was for piper. This set it halfways up.
  3. Inside wyoming, there is a button to add another (server? connection?) at the bottom. This allowed me to enter the host again (or another host) and port. It auto detected this as the missing portion and left me with whisper/piper working.

It wasn’t painful, but it’s not exactly intuitive. If you’re installing two services, why do you have to link one to set the integration up, then have to repeat the process once inside? It’s…function, I’ll give it that.

TL;DR;

  1. Run Whisper/Piper
  2. Install Wyoming, specify a host/port for one of the services
  3. Inside the integration, add a connection to the other host/port