Cheap wifi speaker as tts player

I am looking for a chep wifi, not bt speaker to use for tts. Any suggestions? Sonos amd likes are too pricey

Google Home Mini

I really dont need Google assistant. Only a local speaker

Welll, you asked for a cheap WLAN speaker and the Google Home Mini is about 35€.

I know. But allergic to all named google. I ordered a Jam Symphony.

3 Likes

Does that speaker integrate easily with HA?

I dont know yet. We jave to see when it arrive

Im in the same boat, cannot get Google TTS to work with sonos, I have a google home mini, but my girlfriend does not like the idea of google home/alexa devices always listening. Can you disable the mic. on Google Home and just use it as a speaker?

How about a build your own… https://www.home-assistant.io/components/media_player.snapcast/

1 Like

That device is based on the latest version of LinkPlay (latest verion simply adds Amazon Alexa feature).

There are many brands of speakers using the LinkPlay protocol (iEast, AudioCast, August, JAM, etc). It has been reverse-engineered and the speaker can be controlled using HTTP commands. There are a few existing threads in this forum discussing LinkPlay (and I believe at least one person has created a custom component):
https://community.home-assistant.io/search?q=linkplay

Be aware that these speakers can do things on your network without your knowledge. For example, I have an August speaker (also uses LinkPlay) and, after I installed pi-hole on my network, discovered the speaker was pinging a (Chinese) web-site every 2 seconds. No idea why it needed to do that so I redirected it to ping itself (and it has not affected its ability to play music).

One other thing, it needs your WiFi password to connect to your WiFi network … and stores it unencrypted. If I recall correctly, at least one of the HTTP commands returns general information about the speaker, including the WiFi password. Not the best approach for securing passwords …

3 Likes

Hi Yuran,
very interested in the Jam Symphony as well.
Let us know if it works ok with HA

thank you

Thanks for the info. Will keep it in mind

Did you use Pi-Hole to redirect the ping back to itself? I’m trying to do the same redirect, I’m running HassOS and pi-hole as an add-on if that makes a difference.

Welcome to the Home Assistant community!

The approach I used may not be for everyone because it causes some loss of functionality. The speaker loses the ability to locate Internet radio stations by host name (only works by IP address) therefore its app can no longer be used to play Internet radio. This was not a drawback for me but, understandably, might be a significant one for others.

First thing I did was blacklist baidu.com and sina.ca.com. That simply prevented the speaker from successfully connecting to their servers but, of course, did not stop it from trying to connect to them (i.e. failed attempts continued to flood my local network).

The solution was inspired by these two references:

I add file /etc/dnsmasq.d/99-bypass.conf containing:

# Self DNS, silences DNS requests
dhcp-option=tag:selfDNS,6,127.0.0.1


# Silence DNS requests from August WiFi Speaker
dhcp-host=XX:XX:XX:XX:XX:XX,set:selfDNS

Replace XX:XX:XX:XX:XX:XX with the MAC address of your August WiFi speaker.

All DNS requests from the speaker are now directed to itself (127.0.0.1) and are no longer fielded by pihole. As mentioned, the drawback is the speaker can no longer resolve radio station URLs by hostname (because it no longer has the ability to use DNS to perform the lookup) and the app can no longer be used to select radio stations to play on the speaker.

1 Like

I am looking for the same thing.

I want an audio alert for my home assistant as a way to notify people inside the house for various status changes / alerts.

My requirement is that it also have to be internet-independent. i.e. all the alert should work even if I am disconnected from my ISP (Internet Service Provider). Because of this, whatever solution that involves Google / Amazon is not going to fly.

Any one found solution for it?

Did you have some effort on your search?!? I’m really interested in the same solution… i’m already thinking about a raspberry and dedicated active speaker connected to them

I kind of solved the problem for me and myself only.

There are two components to this: 1. the actual hardware wifi-speaker, and 2. software to support it.

I happened to have an old sonos speaker lying around in the house which no one uses. I end up used that as a wifi speaker

Software wise, I have send a feature request to the development team (I think) to incorporate picotts (a very basic text-to-speech engine) into home assistant. I am not sure what is the proper channel and I have send request both here at the community website and the github. I have not heard anything from the developer yet. You can take a look at my request here, and if it is something you like, please vote for it in attempt to grab developer’s attention:

While waiting for the developer to act, I made a custom-made home assistant docker image (for 64bit x86 machine). If you happened to run home-assistant in a docker and use a 64bit x86 machine as host, you can download the image here:

docker pull kngharv/home-assistant:picotts

If you use something else, you can try to custom build home assistant image yourself. It is really just add the picotts library to home assistant distribution at the OS level.

Right now, I am trying to figure out how to leverage this LAN-based audio alert as part of my automation scenario.

Good Luck

1 Like

For the software side, if you uses hassbian or any debian/ubuntu/alpine type of OS distribution, I can see if I can help you for you to install picotts library yourself.

For the wifi speaker. may be you can look at amazon FireTV or some of wifi-enabled receiver as an alternative, or worse, hook up an existing speaker with a raspberry pi type of single board computer.

1 Like

I investigated a bit deeper this aspect of LinkPlay-based devices (have 3 of them). Using recent firmware versions, higher than v4.2:

  • that almost every 2 second connection is NOT chinese IP addresses, but to media-router-fp1.prod1.media.vip.ir2.yahoo.com or media-router-fp2.prod1.media.vip.ir2.yahoo.com, these seem to be required by Spotify Connect functionality (when your speakers appear in the Spotify app and you can play music straight from the speakers and the app is just a remote, needs Premium account). When I blocked access to these, everything remained functional EXCEPT Spotify Connect (speakers disappeared from the Spotify app).
  • more rarely, but still repeatedly there are connections to *.bc.googleusercontent.com - these seem to be related to Spotify playback. When I blocked access to these, Spotify music playback stopped after some seconds (buffer got empty, unable to download next bit of music), and I was unable to start another track to play
  • more rarely, but still repeatedly there are connections to various IP addresses belonging to Amazon, some of them I was able to reverse lookup as being related to Amazon Alexa. Since I am not using Alexa at all, I was not able to confirm what functionality ceases after I blocked them.
  • after booting, the device connects to 121.41.90.151 which is indeed a chinese address, but after some investigation I found that the device is looking for firmware updates at that address. This happens more rarely, I only caught it once during my packet sniffs after a reboot.

I don’t think the Linkplay module does anything worse than Sonos does. There you can’t even use the speakers unless you forcefully accept to share data.

I also tested my linkplay devices completely offline from the Internet for a few weeks (put them in a separate network where there’s no Internet access at all, I only made exceptions in the router’s firewall for the couple of webradio http streams and nothing else). They continued to work perfectly. Played my local music, played those webstreams I allowed only, played TTS and local sound alerts from HA and all worked well. Multiroom also. Using this HA integration with Linkplay. Of course with no internet access I lost Spotify Connect functionality which requires a paid accoount anyway. The Android app controlling the speakers displays a message that the speaker has no internet access - so you can’t select online services from there but that’s exactly what I wanted during the test.

If there are privacy concerns, the best approach is to keep sensitive devices offline from the Internet. Linkplay-based devices can be kept offline and be still functional with Home Assistant in the same time IMHO. No need to forcefully accept various privacy policies you can’t even understand etc…

Since I’m using Logitech Media Server (LMS, also known as “slimserver” or “squeezeboxserver”) as a multiroom solution, I bought several USB-driven 3W speakers (audio+HID device) for around €4 each from a German surplus retailer and added Raspberry Pi Zero W’s with SqueezeLite player software (PiCorePlayer also works, it’s a ready-made Pi image containing SqueezeLite). Using 2A+ wall warts, these can easily drive the both the Pi Zero and the speaker, and I even get local volume control.

I have all my “alerting devices” in Sync Groups using LMS, so I only need to output TTS messages to one player from HA, and they all play in sync. Just great.

(Image shows an external Pi Zero, my next action will be to modify the speakers so the Pi goes inside.)

Someone is also working on an ESP32 version of SqueezeLite, this should make a “WiFi Speaker” even cheaper.

3 Likes