A system and method of generating a natural language generation (NLG) output, wherein the method includes: receiving speech signals from a user at a microphone of a client device; determining a requested communication goal and at least one inputted communication value based on the received speech signals; determining to use a static natural language generation (NLG) template or a dynamic NLG template to generate an NLG output, wherein the determination of whether to use a static NLG template or a dynamic NLG template is made using a neural network NLG template selection process; selecting an NLG template after the determination of whether to use a static NLG template or a dynamic NLG template; and generating an NLG output based on the selected NLG template.