How would you setup an audio/announcement system with HA?

Hi,

I’m studying the capabilities that HomeAssistant has with audio and announcements.
Specifically i’m trying to understand if HA can be a solution to this scenario:
I have multiple rooms with a separated speaker system preinstalled for each room.
Each room has a wifi and a wired network.

I want to install a smart speaker or an audio output module near each speaker system, so with a simple smartphone connected to the same network i can access HA and send an audio file, or a text that will be converted to audio via TTS, to selected outputs (for example only to rooms 2, 3 and 5 out of 8 total rooms).

After some googling i have some doubts on the hardware side: i can use only smart speakers like echo and google, or there are some modules that can do the job without using cloud servicies?

Is Home Assistant useful in this scenario, or there are better solutions without HA involved?

Thanks you.

I do this using Chromecast Audio devices. I have several around the house and use TTS to make announcements to them. In some cases, I have predefined announcements “Time to eat”, “Time to go”, etc. I trigger by a zigbee button.

For custom announcements, I have a few input helpers - one to select a speaker / speaker group, and one to input the message - and then a button to push to TTS that message to those speakers.

I’m working on my local voice assistant now. Eventually I’d like to be able to say something like “announce in office it’s time to eat” and have it say the right words in the right room. But I don’t know if that’s technically possible.

Here’s the script I use for announcements. Note it uses Piper for local TTS, but you can use any TTS service you like.

alias: Make an announcement
sequence:
  - data: {}
    target:
      entity_id: media_player.{{speakers}}
    action: media_player.turn_on
  - delay:
      hours: 0
      minutes: 0
      seconds: 0
      milliseconds: 500
  - data:
      cache: true
      media_player_entity_id: media_player.{{speakers}}
      message: "{{announcement}}"
    target:
      entity_id: tts.piper
    action: tts.speak
mode: single
icon: mdi:bullhorn-variant-outline
fields:
  announcement:
    selector:
      text: null
    name: announcement
    description: The announcement to play on the speakers
    required: true
  speakers:
    selector:
      text: null
    name: speakers
    description: The speakers to play the announcement on. Defaults to "whole_house"
    default: whole_house
description: Say the announcement given on the specified speakers (default "whole house")

Basically, I think it depends whether there is a HA integration for your speakers. I do the same sort of thing as @solstyce9 with Sonos.