VoiceAttack v1.10.4 or newer can utilize the "Wait For Spoken Response" action to retrieve arbitrary spoken text, without needing to use the dictation mode, or an explicit loop:
Wait for any spoken response
Write [Blue] '{TXT:~textResult}' to log
The "Responses" field is to be left blank.
If the "Timeout" value is not set to 0 or less, or left blank, after the entered value (the default being 15 seconds) has elapsed, "Not set" would be written to the log.
As the dictation buffer is specific to the dictation mode, it is not utilized here. Instead, a normal text variable will be set, and its value can be retrieved using the "{TXT:}" token, as shown.
In versions older than beta v1.10.6.14, the "Text Variable" field needs to be manually populated with the value "~textResult" (or another variable name; it just needs to match what you're using elsewhere, E.G. in the "Write a Value to the Event Log" action).