[OBSOLETE 1.1.6 5/25/16] Big Talker - Talk when events occur

Sorry my mistake Dawn! It was to announce the house indoor room, temperature that my motion sensors or nest thermostat currently register!

Thanks

This doesn’t seem to be able to send voice to DLNA speakers that were setup through Mediaconnect app. Works with Sonos though. Any ideas?

thanks

I am using a raspberry pi with gmrender-resurrect connected to SmartThings via the Generic Media Renderer App (MediaConnect) with BigTalker in musicPlayer mode and it is working. When you look at your DLNA device in the SmartThings app under devices make sure that the icon to the left of the Stop button does not say “Not Present” as that seems to mean that MediaConnect cannot communicate with your device.

As promised, I give to you Big Talker 1.1.4-Beta8.
Download the code at https://github.com/rayzurbock/SmartThings-BigTalker/tree/1.1.4-Beta
It’s probably best to uninstall your current version, update your SmartApp code for BigTalker with this version and then reinstall/configure.

If using Ubi or Lannouncer, please be sure to select “speechSynthesis” mode!

Keep in mind, this is another Beta release.
Apparently the 1.1.4 branch has given people using “speechSynthesis” mode trouble with speaking at all. I believe I have that issue resolved in this beta version. Please test and PM feedback to me.

There are more features to add but I wanted to get this version out asap and I hope you will enjoy it.

Adjustments from 1.1.4-Beta7:

  • Feature Modification: Add Lannouncer into the supported device descriptions for speechSynthesis.
  • Feature Modification: Remove unsupported Volume setting / function when operating in speechSynthesis mode.
  • New Feature: Add adjustWeatherPhrase() function to convert “xxF” to “xx degrees Fahrenheit”, mph to “Miles Per Hour”, NNE to “North Northeast”, etc

  • BugFix: Replace special characters found in phrase (ie: URL tokens) such as those that end up in weather reports which cause Lannouncer to not speak when expected.
  • BugFix: Fix Talk() routine for speechSynthesis only devices which typically do TTS on the phrase passed to them on their own or within their deviceType.

Adjustments from 1.1.3 release:

  • Metadata Update: Update copyright from 2014 to 2014-2016.
  • New Feature: poll() or refresh() on Talk() to try to update current status of player. Protect crash using try/catch routines. (mediaPlayer mode only)
  • New Feature: Added detection of failure to convert text to speech (SmartThings intermittent issue with textToSpeech function), send notification instead so message is not missed.
  • New Feature: Added new Talk variables %weathercurrent%, %weathertoday%, %weathertonight%, %weathertomorrow%. Can be added to any event.
  • New Feature: Upon Install or settings update, a poll process will execute every minute to check all configured speech devices for their latest status. This is in an effort to better detect if a device is playing before interrupting to speak. (Note: VLCThing doesn’t report ‘playing’ until after the second poll or 2 minutes into a playlist; others may as well). (mediaPlayer mode only)
  • New Feature: Added Status page item to show the ZipCode that SmartThings has derived from the hub via Latitude/Longitude.
  • New Feature: Added Phrase Variables
  • %weathercurrent(00000)% = Current weather based on custom zipcode (replace 00000)
  • %weathertoday(00000)% = Today’s weather based on custom zipcode (replace 00000)
  • %weathertonight(00000)% = Tonight’s weather based on custom zipcode (replace 00000)
  • %weathertomorrow(00000)% = Tomorrow’s weather based on custom zipcode (replace 00000)
  • 00000 can also be replaced by any supported location of the WeatherUnderground API such as (France/Paris), (latitude,longitude), (AirportCode), (State/City)
  • New Feature: Added “Help” section to each event configuration page with a “Phrase Tokens” option to give the user an In-App reference of the known phrase tokens that can be used.
  • New Feature: Add adjustWeatherPhrase() function to convert “xxF” to “xx degrees Fahrenheit”, mph to “Miles Per Hour”, NNE to “North Northeast”, etc

  • Feature Modification: Re-write of Talk() to better detect latest playing track and play status (latestValue() instead of currentValue()). (mediaPlayer mode only)
  • Feature Modification: Delay polling for 2 minutes after any speech event. This also has the effect of restarting the poll schedule if for any reason it has stopped. (mediaPlayer mode only)
  • Feature Modification: Modified Start page, About section
  • Feature Modification: Add Lannouncer into the supported device descriptions for speechSynthesis.
  • Feature Modification: Remove unsupported Volume setting / function when operating in speechSynthesis mode.
  • BugFix: Corrected default phrases for Water sensor (Thanks ST Community: Greg) (was using acceleration phrases)
  • BugFix: Corrected home mode change issue if exclusion was not set (Thanks for the report ST Community: Greg)
  • BugFix: Resolve an error that is present if both currentTrack and currentStatus return null. “java.lang.NullPointerException: Cannot get property ‘status’ on null object”
  • BugFix: Talk() function has been further optimized and more bugs have been resolved.
  • BugFix: Setting changes were not activated when editing within the “Configure Defaults” menu and pressing Done. Settings only activated after editing within the “Configure Events” menu and pressing Done. Resolved.
  • BugFix: Replace special characters found in phrase (ie: URL tokens) such as those that end up in weather reports which cause Lannouncer to not speak when expected.
  • BugFix: Fix Talk() routine for speechSynthesis only devices which typically do TTS on the phrase passed to them on their own or within their deviceType.
2 Likes

With the latest beta (1.1.4-Beta8) you can get the current outside temperature by using the %weathercurrent% token as the phrase to speak within BigTalker.
I currently do not have a token that would read another device’s temperature. I’ll try to keep that in mind for future releases.

I intend to add a token in a future release that will allow you to make a call out to a short MP3 for sound effects. Something like %mp3=http://www.somesite.com/somepath/someaudiofile.mp3%

1 Like

Done! Added in 1.1.4-Beta8.

Brian. Thanks for the great work. Big Talker (coupled with LANnouncer) is one of the few reasons why I am still holding on to my ST hub.

I just installed 1.1.4-Besta8. I am having a weird problem with TTS with one sentence. The sentence is “It’s Time to Wake Up. The current temperature is %wheathercurrent%. The forecasts for today is %weathertoday%”.

Words like “it”, “is” and “time” are spelled out instead of being pronounced.

1 Like

Thanks for your very detailed response.
Please try now posted 1.1.4-Beta9 which should correct this sentence.
I recommend changing your sentence to: “It's time to wake up. %weathercurrent%. %weathertoday%”

Changes:

  • BugFix: Corrected an issue when ’ or " was used in a phrase. These break LANnouncer, so I meant to strip them; instead I added a hyphen in their place cause “It’s” to be pronounced “It” and “s”. Corrected by striping ’ out properly. This also corrected an issue where in a weather forecast “Low 10’s” was pronounced “Low 10 S” instead of “Low tens”.
  • BugFix: Corrected an issue where multiple chained variables were not being processed. Ie: “It’s Time to Wake Up. %weathercurrent%. %weathertoday%”

HI, Thanks for the quick reply. Still having the same problem with 1.1.4-Beta9. It’s pronouncing also “hyphen” a the end of "%weathertoday%.

BTW, I find annoying that the Smartthing android app wants to capitalize every word in a sentence. I feel like I am writing German.

When you overwrite the code for BigTalker with the new version, be sure to Save and then to activate it by clicking Publish and then For Me. If you do not “Publish > For Me” then the code is only saved but not activated. You can verify your running BigTalker version running, by going into BigTalker tapping Configure Defaults and then tapping Done (this updates the version variable). Once you are back to the BigTalker main page after pressing Done, scroll down to the bottom of the About section and you should see which version is running.

LANnouncer uses a url string to do it’s own TTS. Commas, periods and such break it’s function so I replaced those with a “-” which caused pauses and didn’t play “hyphen” or “dash” in the phrase as LANnouncer would speak. Unfortunately, it does appear that the SmartThings TTS engine (Which is used when you are in musicPlayer mode) picks this up and pronounces it as “dash”. I’ll implement a solution in the next beta release (probably today since I am off work).

Yes, I went through the whole reinstall process and deleted the old version. The about page shows 1.1.4-Beta9. It pronounces “hyphen” at the end only, as “hyphen”, not as “dash”. Since I am using LANanouncer, I am using it in Speech Synthesis mode which use the Google TTS engine, not the SmartThings TTS engine.

Ok.
I am testing it in Speech Synthesis mode as well with LANnouncer (Version: Nouncer 8, Updated on Jan 2, 2016). I am updating LANnouncer to see if this is something introduced in a newer version because although in LiveLogging, I can see the “-” it is not being pronounced for me.

Odd. Even with the latest version of LANnouncer, I am still not getting “hyphen” or “dash” while in speech Synthesis mode.

I am using this phrase: “Good Morning. %weathercurrent%. %weathertoday%.”
LiveLogging returns the following for the weather:

“BIGTALKER(1.1.4-Beta9) || msg = Today’s forecast is Cloudy skies this morning will become partly cloudy this afternoon. High 41F. Winds ENE at 5 to 10 mph.”

The entire spoken phrase becomes:

“BIGTALKER(1.1.4-Beta9) || TALK(TalkNow) |sS| >> GOOD MORNING - THE CURRENT TEMPERATURE IS 26 DEGREES - - TODAYS FORECAST IS CLOUDY SKIES THIS MORNING WILL BECOME PARTLY CLOUDY THIS AFTERNOON - HIGH 41 degrees fahrenheit - WINDS East Northeast AT 5 TO 10 Miles Per Hour - -”

LANnouncer shows the following in LiveLogging:

Command request: &SPEAK=GOOD MORNING - THE CURRENT TEMPERATURE IS 27 DEGREES - - TODAYS FORECAST IS CLOUDY SKIES THIS MORNING WILL BECOME PARTLY CLOUDY THIS AFTERNOON - HIGH 41 degrees fahrenheit - WINDS East Northeast AT 5 TO 10 Miles Per Hour - - &@DONE@

I also tried with just “%weathertoday%”.
I am testing from within Talk Now.
None of the hyphens are being pronounced for me, they produce a pause but are not spoken.
I am not sure how I can reproduce what you are seeing. We should be seeing the exact same thing.

@NWTony Any ideas why one LANnouncer would pronounce the “hyphen” and another would not?

I am using LANnouncer Version 1.14, 30 Dec 2015. Let me try to update it, but I can’t test until tonight when I am home.

Looking at LANnouncer’s log, the string passed by Beta9 ends with this:
"Miles Per Hour - - @DONE@"
Beta8 ends like this:
“percent WEATHERTODAY percent @DONE@”

@qfwfq 1.1.4-Beta8 broke chained tokens in a phrase ( “%weathercurrent% %weathertoday%”). Only the first would be spoken and the second was converted to “percent weathertoday percent” which was not intended. Once I found this out, I quickly resolved and released 1.1.4-Beta9. We are at 1.1.4-Beta10 now. The hyphens in the phrase are all being ignored for me, including the one on the end. I certainly hope the latest version of LANnouncer resolves this for you.

LANnouncer doesn’t care about dashes, but the selected language on the device might. There are quite a few English (and other) speech engines Android can use. Some may not pronounce the hyphen/dash. I’d say try a different voice, in the speech settings of the Android device.

1 Like

Thanks. That was it! The device I was using for testing didn’t have Google TTS installed. It was using Pico TTS. After I installed Google TTS everything is fine!

1 Like

I have not received any further bug reports with 1.1.4-Beta10.
If no further bugs are reported then I will graduate Big Talker 1.1.4 out of Beta this upcoming weekend.

If anyone else would like to test it, the beta code is here: https://github.com/rayzurbock/SmartThings-BigTalker/tree/1.1.4-Beta

For UK users trying to get weather to announce, I’ve found that %weathertoday% and the others dont work. You need to use %weathertoday()% with the brackets blank.