I've used the WebSpeech API [W3C spec for TTS & recogntion] with JS on the desktop - you can poll all available speech engines [ speechSynthesis.getVoices() ] the localFlag shows if they're available for offline use - ie voices installed or provided by the OS. But desktop Chrome also (or perhaps only?) uses Google's cloud rendered speech by default on some OSs I think.
WebSpeech API on Android is supported since Chrome for Android v38, but I haven't tried it. I do use this ANE though and it works well on Android & iOS, is very reasonably priced and still supported:
....in either case I think the short answer is native TTS API and Web Speech use the default voice specified for each language/locale by the user in the OS/Settings - unless you poll and set one.