There is more than one way to do it but call service node is very flexible with those things. you can use something like this:
![image](//community-assets.home-assistant.io/original/3X/6/1/6162a641babdcc6aee6b4280fb8a35e13c450bfd.png)
[{"id":"de95e4dd.f5e818","type":"inject","z":"294e4f5f.46b07","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":180,"y":1140,"wires":[["9cb50326.797c6"]]},{"id":"9cb50326.797c6","type":"api-current-state","z":"294e4f5f.46b07","name":"temperature","server":"e447d17a.16a64","version":1,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"sensor.dark_sky_temperature","state_type":"str","state_location":"temperature","override_payload":"msg","entity_location":"","override_data":"none","blockInputOverrides":false,"x":330,"y":1140,"wires":[["7d0304c3.092bec"]]},{"id":"7d0304c3.092bec","type":"api-call-service","z":"294e4f5f.46b07","name":"speak","server":"e447d17a.16a64","version":1,"debugenabled":true,"service_domain":"tts","service":"google_translate_say","entityId":"media_player.googlehome5129","data":"{\"message\":\"Actually its {{temperature}} degrees outside\"}","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":510,"y":1140,"wires":[[]]},{"id":"e447d17a.16a64","type":"server","z":"","name":"Home Assistant","legacy":false,"hassio":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":false}]
I don’t use alexa so you need to check how is the data structure and adapt accordingly.