Avatar

root-nodeB

root-node@alien.top
Joined
0 posts • 14 comments
Direct message

I do something like this, but it’s not easy.

I have all my music on a NAS and two BlueSound speakers that are indexing the NAS.

For the voice command part I have a raspberry Pi with a microphone hat and running Rhasspy Voice Assistant (bonus: it’s purely offline).

That interacts over MQTT and is processed by a rather complicated Node-RED flow that handles all the play/pause actions. Voice commands include “Volume Up|Down, Play next track, Skip Album, Skip Artist.”

All this assumes that you have a playlist loaded and ready to go. It doesn’t look up a track and play it. You can’t say “Play Never Gonna Give You Up By Rick Ashley”, it will just ignore you.

You could do it with a massive amount of work. You would need to index your music library (track names, artists, albums) and import it into Rhasspy as data for it to learn. It would take a huge amount of processing for that, and it would need to be done every time new tracks are added or removed - which is why I never bothered.

If there is a way to replicate the google/alexa experience by using locally stored music, I would love to know.

permalink
report
reply

The one I currently use, I wrote it myself - took weeks of work. Looking at it now, it also relies on Home Assistant to monitor the speakers.

I am happy to share it, but there are a lot of moving parts and it’s written specifically for BlueSound speakers.

permalink
report
parent
reply

I have three speakers, two are set up in a group. [Study] and [Lounge|Kitchen]

You will need:

  • Node-RED setup and running. When you import the below flows into Node-RED you may get a warning about duplicate nodes, it’s just the way it exports sub-flows. You will need the Home Assistant and Node-RED Dashboard nodes added.

  • Home Assistant setup and running. (change “homeassistant.ip.address” in the Node-RED code to its IP or hostname).

  • The bluesound speakers setup in Home Assistant so that it can see them.

  • Edit the JSON before importing, and change 1.1.1.1 to the IP or hostname of your Home Assistant server/device. Change 2.2.2.2 to the IP/hostname of your MQTT server.

Flows:

1st: Music configuration (does all the work) https://pastebin.com/ZZ1cLuHz

2nd: Music UI (allows a wed front end for controlling the players) https://pastebin.com/N2wpQDKY

3rd: MQTT input from Rhasspy Voice Assistant - You’ll need to change this if you don’t use Rhasspy https://pastebin.com/8z7mxZgV

permalink
report
parent
reply