I don't know much about the text to speech tools you named, but if you put the following code into any Twine story that uses the SugarCube story format, then it should read the text within each passage:
$(document).on(":passagerender", function (ev) {
var synth = window.speechSynthesis;
var utterThis = new SpeechSynthesisUtterance(Story.get(passage()).text);
utterThis.voice = speechSynthesis.getVoices()[0];
synth.speak(utterThis);
});
That code uses the speech synthesis system built into some browsers. However, you will probably need to use Firefox to open the HTML file, since, just this month, Chrome and Opera changed their browsers to require user interaction before the speech synthesis system can work.
There is probably a way to convert that code to work in Harlowe, but I don't use Harlowe myself, so I can't help with converting it.
You should be able to use the speech synthesis code I gave above to implement other systems as well, such as if you want it to only speak the passage if you hit a certain key.
For details on the speech synthesis system, you can read through the Mozilla Developer Network documentation on the SpeechSynthesis API here.
I hope that helps!