Kind of a silly little problem I’m having, but a problem none-the-less –
I’ve built an automation that includes an action to build a TTS response to read out a few details for my morning wake-up with a Piper voice, which includes the weather forecast. For now I’m just using the Android companion app, and everything is working as intended except for a minor detail that’s been slightly annoying: the voice will say “wind up to X kilometers per hour”, but as if it is speaking of winding a watch.
Is there a simple way to get it to say “wind” instead of “wīnd”, or do I need to do a regex replace on the word and spell it in some weird way that will sound correct? I’m sure I could come up with a messy work-around, but I’m hoping there’s some conventional method of doing it (special characters?).
Thanks for any tips.
This may be happening because the next word is “up”, making the phrase “wind up”. You could try putting a comma between the two.
There are several oddities in pronunciation of weather forecasts. There’s a short template for fixing some of them here:
You might be able to add “wind, up” to it, or just leave out the “up” - depends how you’re getting your weather forecast.
Thanks. It wouldn’t hurt to try. Hopefully it doesn’t sound too disjointed.
The summary is generated by Environment Canada, so there’s not a lot I can do about changing the phrasing aside from replacing specific words or abbreviations. Worst case scenario I’ll just replace “winding up” to something like “whinding up” if added punctuation doesn’t work out.
I’ll keep your weather thread in mind if I ever decide to do anything more elaborate.
I have the same issue with the Environment Canada summary. It’s a minor annoyance, and only happens when the text contains “wind up to xx” If it has another phrase, “wind gusty up to” then the pronounciation is correct.
I just found regex_replace for the template and tried it. I also replaced km/h as it reads that out as “k m slash h”
This is the new template item
{{states('sensor.weather_summary')|regex_replace(find='wind up', replace='wind speed up', ignorecase=true) | regex_replace(find='km/h', replace='kilometers per hour', ignorecase=true)}}