Alexa Speak does not queue multiple calls

Hello,
i use the node “node-red-contrib-alexa-remote2-applestrudel”. When I call the node “alxa speak” in parallel, only the first call is successfully executed as voice output on an Alexa Eco speaker. All other simultaneous calls do not lead to a voice output. How is it possible to specify any calls at a time so that all calls lead to a voice output?

I rate limit calls to make alexa speak using a 3 second delay

I've not found any method of making Alexa speak on different echos simultaeously

1 Like

Unfortunately, the 3-second time limit does not work because the texts are variable in length. Then I just have to use “node-red-contrib-tts-ultimate”. This node queues the output. But then I can only use SONOS speakers for the voice output

Then calculate the delay using the number of words and then rate limit and flush new messages
e.g.

[{"id":"2d4d1a5ebe6fa138","type":"inject","z":"d1395164b4eec73e","name":"","props":[{"p":"speak","v":"this is a test","vt":"str"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","x":190,"y":7500,"wires":[["e7a35c671efb26f4"]]},{"id":"e7a35c671efb26f4","type":"delay","z":"d1395164b4eec73e","name":"","pauseType":"rate","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"60","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":300,"y":7620,"wires":[["dda450d57a5c0d76"]]},{"id":"fb2badba4ae0f979","type":"function","z":"d1395164b4eec73e","name":"function 157","func":"\nreturn {flush:1}","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":530,"y":7560,"wires":[["e7a35c671efb26f4"]]},{"id":"dda450d57a5c0d76","type":"alexa-remote-routine","z":"d1395164b4eec73e","name":"","account":"c8738129.d902c","routineNode":{"type":"speakAtVolume","payload":{"type":"regular","text":{"type":"msg","value":"speak"},"volume":{"type":"num","value":"50"},"mode":"set","devices":["G090LF1182850C6D"]}},"x":510,"y":7620,"wires":[["2d9c41f1b9b24157"]]},{"id":"a893122ae5977c48","type":"delay","z":"d1395164b4eec73e","name":"","pauseType":"delay","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":900,"y":7620,"wires":[["b2439e62bc81b2a5","fb2badba4ae0f979"]]},{"id":"2d9c41f1b9b24157","type":"change","z":"d1395164b4eec73e","name":"","rules":[{"t":"set","p":"delay","pt":"msg","to":"$ceil($count($split($$.speak, \" \" ))/3)*1000","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":740,"y":7620,"wires":[["a893122ae5977c48"]]},{"id":"b2439e62bc81b2a5","type":"debug","z":"d1395164b4eec73e","name":"debug 2575","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":970,"y":7560,"wires":[]},{"id":"c8738129.d902c","type":"alexa-remote-account","name":"alexa remote 2","authMethod":"proxy","proxyOwnIp":"localhost","proxyPort":"3456","cookieFile":"/data/data/com.termux/files/home/.node-red/.alexa.cookie","refreshInterval":"14","alexaServiceHost":"layla.amazon.co.uk","pushDispatchHost":"","amazonPage":"amazon.co.uk","acceptLanguage":"en-GB","onKeywordInLanguage":"","userAgent":"","usePushConnection":"on","autoInit":"off","autoQueryActivityOnTrigger":"off"}]
1 Like

Thanks for the tip. Unfortunately, the Alexa speakers are called from different places/flows. How should your solution work then?

Use link out and in nodes, with out full details i can not add much more details.

Thank you very much. I have only used one Alexa Speak node with your delay node information and it works great

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.