TTS to Android Device

Hi all,

I’m doing some testings with the TTS component.

I’d like to find an app for Android to be installed on tablets I have in every room so I can send a voice TTS message to an specific room by targeting to that device.

Please let me know if more details are needed, not enough caffeine in blood still.

Thanks!

Look into Tasker. There is a “say” part of that that is TTS.

It’s kind of like Home Assistant for your phone in a way except it’s phone automation.

Combined with the plugins for Autoremote or perhaps Join it might be relatively simple. Well once you get your head around tasker anyway. Autovoice can be used at the other end if you want the tablet to be used as a voice control point.

There is a Join component for HASS that works with the notify platform.

I am not sure how much the individual apps / plugins are as I subscribe to them all via https://joaoapps.com/autoapps/

You may find you only need one or two of the plugins, perhaps ask or do a bit of searching on the tasker subreddit.

Probably not the solution you’re looking for, but I use Pushbullet on my Android devices and a TTS app called Enhanced SMS & Caller ID (eCID) that allows two way TTS. While it’s primary use is for hearing and replying to SMS while I’m driving, you can also have it read notifications from any other app. I just added Pushbullet to that list and whenever I send a Pushbullet notification from my HA, eCID reads it out loud on the device.

Before the TTS component was implemented, this was my method of getting voice notifications from HA. It’s one of the first apps I ever bought and is the first thing I install on new devices. Works extremely well and is regularly updated by the dev.

https://play.google.com/store/apps/details?id=ekawas.blogspot.com&hl=en

Apologies for the bump, but tonight I stumbled on this thread while looking for this very solution. I thought I might leave my solution here in case it helps others:

I used the MQTT Publish from within HASS, to an android… like this (within an automation):

- service: mqtt.publish
  data:
    topic: say/a5
    payload: "Garage door triggered"
    qos: 0

On the android, I am running tasker with the “MQTT Client” plugin. It subscribes to say/a5 (it is a Samsung A5) and simply speaks whatever the MQTT message payload is. So, the only thing changing between different notifications, is the payload - and a single profile&task combo within Tasker handles the lot. Very easy and effective.

The android in question is also a webcam so it is stationary - very convenient!

Cheers
Matt

4 Likes

@MattP, bumping this up, could you please assist in setting this up with tasker and the mqtt plugin (two unknown tools for me) ?

Note you will need to create your own HASS automations to send the topics and messages. I left an example in the original message above.

Ok you need to add the tasker mqtt plugin from the Google play store first - onto your phone. Don’t confuse that with your MQTT server (although it was installed as a plugin within HASS).

Once you have installed the tasker MQTT plugin into your phone, launch it, and you can configure it to connect to your HASS mqtt, and to listen to the mqtt topic you chose earlier to send your TTS messages (within the HASS automations I referred to).

Then the tasker profile should be easy to create: New Profile, Plugin, MQTT, Message Arrived.

Where it says “varmessage” and “varmqtttopic” you should choose an arbitrary variable to use in the TTS action (which the profile will trigger).

If you get to this point, let me know. Like I said though - Tasker is a steep learning curve, you will need to self-teach yourself the basics of how it works first. You should also self teach yourself the basics of MQTT - or you will just be flying blind, unable to troubleshoot or fix anything.

1 Like

Hi @MattP , MQTT Plugin works great (and I do perfectly understand mqtt). It is Tasker that is my challenge.

I added the “varmessage” and “varmqtttopic” and added the task “say”. I can now trigger Tasker to speak via Google TTS by sending a MQTT message from HA.

Though, I have to pre-define the text to be read in the task? Doesn’t it support a text being sent via MQTT?

Excellent, well done.

RE the text - there is no restriction on the text, except for how you’ve set up the messages right, where you are sending from.

you can set up a HASS automation for each message, and you can use HASS variables within each automation to customise each message according to the variables.

I’ll send some examples soon

@MattP

I hope I made my self clear in the question - within Tasker, can I use a variable etc to pick the text to speak from the MQTT Payload (sent from HA)? So far I’ve only been able to define the text to be spoken inside Tasker and trigger the message by MQTT from HA.

Hi - I see what you mean. That’s what the varmessage and varmqttopic variables are for - they can be used in the tasker TTS task.

So under “Say” you should be able to refer to the MQTT message as %varmessage.