Jump to content
C4 Forums | Control4

annex⁴ - Voice Genie (TTS)


annex⁴

Recommended Posts

We are pleased to announce the full release of our text-to-speech driver.  This driver offers an astonishing number of voices and languages.

You can inject variables in to the announcements and even have an event to trigger upon announcement end.

As with all of our drivers there is a 21 day trial.

For full details follow the link.

https://annex4.link/drivers/voice-genie

 

Link to comment
Share on other sites


Think of the announcement part as the rooms and volume for where you want the voice to play.

Then if you were triggering the voice to happen when the front door opens to say welcome home, you would have that text as the programing part, when the event triggers the synthesize command, it will then play the announcement(the rooms selected). If you also have a trigger to say the HVAC is heating when heat is engaged it will use the same announcement.

You would only need multiple drivers installed if you want to have different voices or the announcement in different rooms.

Link to comment
Share on other sites

12 minutes ago, Gary Leeds UK said:

So for more that one annocement you need to have extra drivers called polly 1/2/3 etc ?

The files are always generated realtime, once the file comes back from the internet it plays.  It is always replacing the polly wav file when triggered.

Link to comment
Share on other sites

Keep in mind that you'll be using the same announcement in Control4, and by that I mean the rooms in which the announcement will be played. The actual audio announcement will change depending on the variable, but it'll always play in the rooms you choose in the Announcement's settings. If you want certain announcements to play in specific rooms, you'll need an instance of the driver for every announcement.

I've created a "house status report" announcement. And man, it works like a charm! You can program the driver to give you the status of only devices that require attention. For example, when I trigger the "Good Night Scene" the announcement will tell me which windows are open, but it won't mention the ones that are closed ("One of the kitchen windows is open"). If there's nothing to report, it'll give me a confirmation announcement, a simple "Good Night" confirms everything is closed and locked. Pretty cool! The one thing that sets this driver apart from others is that it uses Amazon Polly which is the most natural sounding TTS engine I've experienced.

Link to comment
Share on other sites

It certainly works well and the Amazon Polly TTS engine is great!

@Gary Leeds UK: a couple of hints on programming:

1. Create a separate announcement (polly1, polly2 etc.) for every different set of rooms you want audio to play in. E.g. I am looking at PollyWholeHouse, PollyOutside, PollyBedrooms, PollyUpstairs, PollyDownstairs and PollyMainBedroom

2. I find it useful to put the Polly execution in a macro and use a string variable for what Polly says. E.g. a simple set of commands for me would be:

-> PollyString = ‘Good night sir” (after all,  no one else calls me sir)

-> execute PollyMainBedroom macro

where PollyString is a string variable I created and my PollyMainBedroom macro includes the following two commands:

-> PollyAnnouncement (PollyString,,,,,) using the PollyMainBedroom driver

-> Execute PollyMainBedroom announcement

Excuse the syntax which is all wrong as I am not in front of my PC but you get the idea.

 

What I have described above is way more complex than necessary but makes it very versatile for future programming.

 

Injecting variables into the string is easy and you can do something funky things as Eddy has pointed out.

 

I’ve even tried emailing my personal Gmail account with a message titled “C4 Polly” and have it speak the body of the email... Using Alan’s IFTTT driver to get the email into a string via Pushover. This freaked my wife out... probably because I sat at the office and emailed “I’m watching you” which then was played through our bedroom speakers :D. That almost spelled the end of my relationship with C4!

 

Link to comment
Share on other sites

Very nice driver!!!  I am somewhat new to using variables.  I looked through available choices for a few things.

1)  Be able to announce time of day.

2)  Be able to pull current temp off of multiple C4 Tstat.

I would appreciate a little help finding these standard items to fully test the driver and show it off to customers.

Thanks, 

Daniel Louque

Link to comment
Share on other sites

1. You inject %TIME or %DATE into the string to get the current time and or date.

2. The current temperature is variable id 1018 on a thermostat if I recall correctly. So it would be %{deviceId,1018} to get temperature. Where device ID is the id of the thermostat.

Full example: The time is %TIME and the current temperature is %{2380,1018}
 

Link to comment
Share on other sites

Thanks for help Wizard.  I will give this a try in the morning.  On the temperature, where is the device id located in composer?  Also, is there a list of variables that can be injected on knowledge base?  It would be a great reference.

Thanks,

Daniel

 

 

Link to comment
Share on other sites

Got it - Thank you so much Wizard. 

I go to the sensor or whatever in my project - Right click to get the Id number. 

Go into the Voice Genie and in action tab select Display Variables - Type in the Id number and all the codes

come up in the Lum tab - I amend the line below using my numbers for the Lum tab - 

20 hours ago, TheWizard said:

Full example: The time is %TIME and the current temperature is %{2380,1018}

The time is %TIME and the current temperature is %{1655,1002} degrees celsius

Works Like a Dream - Thank You 

Why did that take me so long to sort out !!!!!

Link to comment
Share on other sites

Wizard, the %TIME & DATE work perfect.  I can't seem to make the temp work, it is just reading the numbers I am typing.  Also Gary, can great tip about right mouse click for ID, i found them. But I don't quite understand about seeing variables after typing in the ID number.  I really just want the reading of current temp and cool/Heat set points, but I don't see how to select those.  Thanks for help guys with this, i think a lot of folks will benefit from this info.

Daniel

Link to comment
Share on other sites

The TTS is calculated realtime from Amazon Polly so you need an active internet connection. The announcement is downloaded to the controller and saved as a wav file during the synthesize process.

I could add a setting to play the latest downloaded file, but this may end up being confusing and not aligned if you're using variables. As above if you were using temperature and having it read it out on some event, you'd potentially get an incorrect reading as it would be whatever was the last downloaded.

If you just want to use the TTS to synthesize static speech you can copy the announcement file created and play it as a normal announcement.

Link to comment
Share on other sites

The driver generally creates the polly announcement from Amazon Polly once the driver is added to the project. The only reason I could think of that it wouldn't would be if you didn't have a  connection to the internet at the time the driver was added.

If you did feel free to PM me some more info and I can take a further look.

Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.