Looking for a Local TTS speaker

Chromcast is local...

How is the encoding done?

Only 1st time.
Then created MP3 files become local unless announcement is using variable.

2 Likes

Correct. But most of my TTS announcements have a variable.

Eg. “Mail was delivered at %time%”

1 Like

Yeah. Most of mine announce the time as well. So it sounds like even if I switch I will still be dependent on the internet.

1 Like

@gopher.ny does the chromcast integration once set up use internet for announcements or only for the initial announcement?

Yes, it needs AWS to convert text to speech.

1 Like

My bad, thought it was all local

MyCroft/PiCroft has a built-in TTS engine. If I can get a Pi, I'm going to mess around with it. There's a Hubitat integration now. It's fully local for everything - voice control and TTS.

2 Likes

One specific point.
There is a real difference between voice notification and voice control. In order to do local voice notification, you don't need the picroft approach, and there are drivers written to get TTS out of a local attached speaker.
However, to get local voice control work, there appear to be only 2 alternatives: picroft and rhasspy.
I personally will be working on a picroft approach in around a month's time, and at present I have no personal experience.

Which ones? Hubitat relies on the Amazon Polly engine to generate TTS that can be played locally on Sonos and Chromecast speakers.

While PiCroft has a built in engine.

There is the one written for the multi room Samsung speakers:

There is also VLC thing:

There is also Media renderer and dlna player

2 Likes

I don't really care for Local voice control

Right but it will allow for local tts

Sorry. That was I was trying to imply :slight_smile:

I m currently using an Aeotec Gen 5 doorbell/siren, for custom voice messages. It is an Z-wave device that works locally. However, it does not use TTS. You have to produce the message files either by recording the message in your own voice, or using a program like Zabaware Reader to convert Text to speech and then save the file.

Since the Aeotec Gen 5 is no longer available commercially and the Gen 6 device no longer supports customer message files, it is not a viable an option as it once was. There is another member on the forum who has a Gen 5 for sale.

I just ordered an Ecolink ISZW7-ECO chime + siren that allows you to store custom audio file on an SD card, Like the Aeotec Gen 5, you have to create the custom files yourself, although some default sounds are included. That would allow you to keep your alerts local.

I like this solution, but I was hoping to push things via code to the speaker. I will definitely remember this as a backup!

Both the sirens described by @rwclements228 do not have TTS engines. They are essentially players of WAV/MP3 files. So, they will only work for pre-recorded static messages.

1 Like

Unfortunately, to use TTS there is no good way to do it locally.

I have Alexa devices in multiple rooms in the house. On critical alerts (intruder, water leak, etc.) I use both the local Aeotec device as well as Alexa TTS. If the Internet is operational, I would get multiple alerts. However, if an intruder were to cut my Internet cable coming into the house, I would still have the local alert. One thing I have learned is that the local alert occurs a few seconds faster than the Alexa TTS alert. It takes time for Amazon to receive the text, convert it to audio, and send it back to the Alexa devices. Thus, in critical situations, local alerts are better.

As I remember, mycroft (aka picroft) has a fall back voice for when the desired voice/system is not available. This fallback is slightly less crappy than the Linux text to voice, espeak: $ espeak 'hello there' As I remember, OSX has the same command or something similar.