[Deprecated] Amazon Alexa Text to Speech (TTS) v0.6.2 - Direct Integration (USA, Canada, UK, Italy, Australia, & Brazil)

ok trying the docker .f.

got it running on my qnap nas after first instlalling git and nodejs from eu app store.

Anyway all seemed to work ok.. got the url and the refresh options..
no sure what to put in the app. i tried the url itself to see if it prompts me for a username pwd.. but all i got in return is

guid empty?

any ideas thanks

will see if it works.. got log that says refersh sent .. now waiting for result

i worked! so I can confirm this works on a qnap nas following the instructions to install ..

here is a pic of the git and nodejs that i instlalled first then the instrucxtions work as specied with a couple owarnings/errors about deprecated stuff and missing stuff that apparently dont affect anything..

You also need to port forward ports 81 and 82 in your router then once setup you can remove the port 82 forward.

thanks

i'm now getting the array out of bounds.. where is the packages.json file i am supposed to edit i dont see it

weird as others it seems to work when i redo the logins and data on the nodejs website and repaste the info..

Will see if it works the second time as people mentioned

Also I have implemented volume on a per device basis and tested and it seems to work.. here are the changed files. if you select change preferences and the level is different than previous it calls a new function setleve in the parent to update it..

2 Likes

Upthread:

Thanks but not running that version. I am using the bwilson version

Your quoted text asked how to get the file used by Gabrielle, so that’s exactly what I linked to. Can you see how your post might be confusing?

Hmm, having an issue today preventing TTS from working - I get a check cookie notification, hover the logs suggest a different issue:

app:262020-10-01 03:44:39.373 pm error'speakMessage()': error = java.lang.IndexOutOfBoundsException: index is out of range 0..-1 (index = 0)
app:262020-10-01 03:44:39.352 pm debugSending 'test' to 'Study'
app:262020-10-01 03:43:24.037 pm error'speakMessage()': error = java.lang.IndexOutOfBoundsException: index is out of range 0..-1 (index = 0)
app:262020-10-01 03:43:24.015 pm debugSending 'Garage door is now closed' to 'Kitchen'
app:262020-10-01 03:39:50.740 pm infoAlexa TTS: new cookie parsed succesfully
app:262020-10-01 03:39:50.737 pm infoAlexa TTS: cookie downloaded succesfully
app:262020-10-01 03:39:50.644 pm infoAlexa TTS: starting cookie download procedure
app:262020-10-01 03:34:50.575 pm infoAlexa TTS: Request for new cookie sent succesfully, guid: 12c92306-5a19-4e37-9e87-8a3478170f12
app:262020-10-01 03:34:49.888 pm infoAlexa TTS: starting cookie refresh procedure
app:262020-10-01 03:34:15.705 pm error'speakMessage()': error = java.lang.IndexOutOfBoundsException: index is out of range 0..-1 (index = 0)
app:262020-10-01 03:34:15.683 pm debugSending 'Garage door is now open' to 'Kitchen'
app:262020-10-01 03:05:46.157 pm error'speakMessage()': error = java.lang.IndexOutOfBoundsException: index is out of range 0..-1 (index = 0)
app:262020-10-01 03:05:46.135 pm debugSending 'Garage door is now closed' to 'Kitchen'
app:262020-10-01 03:01:39.985 pm error'speakMessage()': error = java.lang.IndexOutOfBoundsException: index is out of range 0..-1 (index = 0)
app:262020-10-01 03:01:39.962 pm debugSending 'Garage door is now open' to 'Kitchen'

and even manually acquiring a cookie via alexa.amazon.com.au fails to work.

Hmm, just started working again on its own, most have been an Amazon issue.

1 Like

This is sweet. Thank you so much for this.

Would it be possible to move it from the Preferences to the Commands? I would love to include this in a rule to set to max volume, make an announcement, then revert the volume back to a previous value

Will look into it. Probably leave it in both

your wish is my command here is the new version of the child with the setvolume command. It can be called from rule machine with "custom action" on the "speech device".

Caveot, you need a delay between setting volume in a rule and sending a voice message or else alexa errors out that you are "calling it to often". I use 10 secs and it seems to work fine.

1 Like

awesome, thank you so much! i can definitely make this work as i plan on having it announce when doors are left open. i can just adjust the volume 10 seconds before i plan on making the announcement

Thanks Kahn and Ogiewon, your update and driver work great, as do my cookie refresh (with my own cheap VPS). My question is, is there a way to make a tone, or a announcement beep, before it announces my text to just one echo? I understand if you do "All" Echos, it does, but just wanted to one echo. I read through the forum to see if there is a %tone% or the like , but unable to see anywhere in this thread how (or if) to do that before it makes the TTS speech.

Thanks!
Lyle

1 Like

I am not aware of any way to do this. Of course, you could simply add a prefix like “Beep!... then your announcement”. So, she’d always say “Beep!” Then pause “...” then start talking. :stuck_out_tongue_winking_eye:

2 Likes

:joy: OK then lolol

i'm not sure what you mean .. i dont hear any beep even with all echos..

Your right, there isnt. I thought I read it above. Just a tone, like a announcement.

1 Like

My apologies if this is the wrong thread. If so, please tell me and I will move/delete.

Question:
Had a problem selecting only certain Alexas for TTS announcements instead of All Alexas and did the following fix. Is there's a better way?

What I did:
I have 5-6 TTS rules in the Hubitat, Rule 4.0s. My daughter is doing school from home due to C19 festivities. She complained about "The garage door just opened..." type announcements during video lessons.

I went into the rules that were set to do TTS on "All Alexas" for each rule and instead picked the main 5-6 out of the 8 we have for TTS on minor rules, leaving the important TTS set to All Alexas.

That started causing Pushover notifications to "check your cookie". I look at the logs and the error is not the cookie but "too many calls". HOWEVER, if I moved the slider option to "refresh [the cookie] now", I'd get an error saying connection timeout to the Node.js page "[server]:81/refreshcookie". Reset the Node.js :81 and :82 cookie a few times, pasted it back in the Hubitat App, and still would get the timeout issue.

Finally just removed the TTS Manager, reinstalled it, use the same cookie refresh string that was failing (copy before removing the app), all worked fine and no issues on the refresh.

Then, to get around the "too many calls" problem, I just dropped out my daughter's Alexa from the devices handled by the TTS Manager and made all TTS go to "All Alexas"...

Is there a better / smarter way to fix the issue of the too many calls while selectively picking and choosing which Alexas get the TTS announcement? Multiple Alexa TTS Managers (one for all, one for "important", etc.), delays, etc.?

Many thanks / love the community.

Alexa TTS Manager: v0.5.9
Child Alexa TTS: Daniel Ogorchock, 7-29-20 update
Node.js app: Gabriele, last updated Oct 2, 2019

1 Like

The issue is on the Amazon side, where they have rate-limiting enabled to prevent abuse of their platform. It is possible to implement some sort of queueing to send the TTS requests to Amazon at a slower rate...however I have no plan at this time of doing so. I aim to keep this integration as lightweight and simple as possible.

If you want a much more full-featured Amazon Echo TTS solution, I would encourage you to look at "EchoSpeaks" which I believe does have queueing built in to avoid the issue you've run into.

1 Like