JFI Inside of Node-RED, I use a node, that lets my Pi speak to my Alexa, that uses a free Google TTS service but I haven't been able to drill down enough thru that code to find out how it actually forms the request.
There's lots of stuff out on the internet about using Google TTS but lots of its seems old, out-of-date info
One thing to note - the node caches requests - i.e. it saves the returned wav/mp3 file and so if a call is made using the same text - it doesn't call out to Google - it just returns the already cached file.
This seems a good idea so as not to run into rate limits
So maybe an idea to try and use browser storage for that (once you've got the actual code working of course)