[APP][Pro] Google Services - App for Translate and new Text-to-Speech for any device with url input

My question exactly. I do not have a creditcard. Do not want one either. Can it be done without billing profile…

Hey Martin,

It is not possible to use Text-To-Speech without filling in the Credit information.
Currently the amount of 4million normal voices and 1 milion characters Wavenet voices are not something you have to worry about, i use it quite a lott (also for testing and my smartwatch who just keeps talking :wink: )
But if they lower it or make it must pay, there is not much i can do about it.

I have been using (the source) to this app myself for awill, and it is great to have Homey really speak everything whereever i am in the house.
So i wanted to share this with other Homey users, giving people the ability to use it with as minimal work (just getting a token). But considering the amount to pay Google if i did it directly on my own account, and not being able to moneytisch the App or retrieve real funds, building the App with a build in Google Service Account was out of the question :wink:

And about the amount of characters:
To see how many characters you have used up, goto the Google Cloud Console homepage, and to the right click on View detailed charges (the filter Group By SKU should be on)

Thank for the info Arie, good to know.
Thanks for making the app :+1::muscle:

Furthermore, even a with a Full account (non-trial) i have no billing at all, because of the low consumption.
But that ofcourse is no garanty on how Google will handle billing in the long run :wink:

In some flows before I start TTS, I start to play a MP# sound. This file is stored on Homey via the Soundboard app.

With the Google Services TTS I like also to start first the MP3 ander than the TTS part. To do so I have installed a Webserver on Homey but this is not the preferred solution.
Will it be possible in future updates to store via the Google Services app, MP3’s on Homey and access them via casting?

Yeah, have a look: i created a App for this:

It sends sounds/mp3 from a UPnP Server (Synology or any (Asus) Router with Media/UPnP Server on it) to any device through a URL, same as with the Google Service App.

I made that App espesialy for this purpose, playing announcement sounds before voices.

I explain all my apps in a topic about this (i think this is pressisly what you are looking for):
How to make a Great Public Announcement ¶ System with any device! - Apps - Homey Community Forum (athom.com)

And a more direct reply; No, i wil not make the Google Service App a streaming service, because i want to save Homey’s memory/hdd/bandwidth.
But i also used the Soundboard App, so i created the Universal Media Player to send sounds (and wait to finish if you use the conditions) to my speakers before TTS (which you can trigger after a condition for UPnP sound, so its nicely after one another).
But a lott of (cheap) switches/wifi/accesspoints/routers you can stick a USB in and activate a UPnP service on it (and a lott of people allready have a UPnP server at home for Sonos).

Ok, clear but I do not have Sonos. In all my rooms I have HomePods installed.
I was hoping that it would be possible to make use of the Soundboard app to cast the mp3 sounds to the Google Nest Mini.
At the end I do mot want to use a Google Nest mini anymore and want to use TTS via my HomePods. But I know for now there will be no solution to cast to the HomePods.

What kind of Router or Wifi device do you have? What model?
Because many have a NAS/UPnP function now a days…

Just as a example:
ASUS RT-AC66U Zwart - Prijzen - Tweakers
or
https://tweakers.net/pricewatch/1495788/asus-rt-ac57u-v2.html
You can get it for about 50€.

These routers you can plug an USB in and activate the UPnP/Media Servers, and then you are ready to go :wink:
I tested the Asus routers, also the cheaper ones, for some friends who have them (and i also have some asus)

I have an ExperiaBox V10A as moden/router.

Do you have a UPnP under extra’s?
It should have a UPnP server on it. So stick a USB in it, active the UPnP service.

If you can’t find it, send me a printscreen (PM) of your routerpage

In the timeline I see several messages but I have no idea what they mean. It is not only today but also received yesterday a few times.

Does anybody know what this means?
When this happens at the moment I cast a TTS to Google Nest Mini, I hear the previous TTS cast and not the latest. When I repeat the cast, then I hear the latest.
To avoid this issue a bit I have built a delay of 2 seconds between Google Cloud TTS and the Google Nest Mini Cast.

Hai Rob,

Yeah, i build this notification especially so you know this happends: This means you have reached your quota. You can set the quota’s in the Google Cloud Console. You have to look for it. There are 2 global quota’s: 300 requests per minute, and 150.000 chars per minute.
BUT
There is also a 300 limit chars per minute during your trial account.
You can freelly upgrade to a full account, which will remove the 300 characters a minute and enforce the global 300req/p/m en 150k.char p/min.

During testing i also got this error, and it is always a quota. But because this happends during flows, i created the notification (which you can shut of ofc)

Ok thanks for the info. Now it is clear to me why some TTS flows did work well.

There is still one other thing which I have to figure out.
The casting URL is not always updated with the new TTS info. I built I delay between Google Cloud TTS and Google Nest Mini of 2 seconds. Do you thing that this has also to do with the quota’s?

No I dont actually, but I never had that bug.

Do you use the action card or the condition card?
Do you use the local Url token or the device url (you should use local token)?
When you send the url to your device AND phone, without the delay, is the url changed?

Because for every unique speech text/language/pitch/etc, you get a new URL. If you get a new url every time you change something on your phone, my app works correct and the issue might be the chrome cast app.
If the url on the phone is (also) wrong sometimes (as in not updated while it should) its a bug in my app.

The flow below is an example flow I just made. Here you can see which cards I am using.

I select the URL in Cast card by click on the label en type: URL.

Ah,

Remove the cast url from this flow.
Create a extra flow with the trigger from the tts device - Url triggered.
Then add the cast url action card to that flow with the local url token (first token in list).
Now it wil be triggered with the newest url.
Yours wil indeed sometimes be old because of asynchronised behavior (which would be correct, but not wat you want for this)

Ok I did and made the split.
I made an example of 2 different flows (Flow 1 & flow 2) and one output flow (Flow 3)
Can I use one flow to cast all the different flows I made in Homey?

Flow 1:

Flow 2:

Flow 3:

Hey Rob,

Not sure i am understanding you correctly, so let me first ask:

  1. Did you get it working?
  2. If you start Flow 1, does flow 3 gets executed?

Because thats how its supose to work, you setup a trigger (one time) that send the recieved URL from that trigger to a device: Your Flow 3.

Then al you need is a flow like flow 1 or flow 2 and start it.

So to me it looks like your ready to go and you should allready hear the voice when you start Flow 2 or 3?