I am having this exact problem, and I can describe it more precisely.
When you use Google Voice Input, it spends some time crunching through the different possibilities of what you said. It picks the most likely one, but for strings it isn't sure about, you can short-press on them and get a drop-down menu with all of the possibilities.
This bug breaks it so that all of those possibilities are inserted directly into the final output string. For instance: I am about to use Voice Input to write a single comma (,):
Comma, Kama come comet
All I did was press the microphone button, say "Comma", and then press the 'x' to go back to my ordinary keyboard. Ordinarily, it would write and underline "Comma" and if I short-pressed it I would get a dropdown with "," and "Kama" and "come" and "Comet" to select from. Instead, it simply writes all of them. I want to reiterate: I only said "Comma" once.
Here is another example. The input is: "This is a purposefully convoluted sentence [comma] which would ordinarily have several different underlined portions with suggested alternatives [comma] but in this case [comma] all of those alternatives are placed in the textstream [period]". I will say it in four chunks, and each chunk will be repeated individually, once for each alternate suggestion that google's software can think of.
Output:
This is a purposefully convoluted sentence, this is a purposefully convoluted sentence comma which would ordinarily have several different underlined portions which would ordinarily have several different under light portions which would ordinarily have several different underline portions which would ordinarily have several different under life portions which would ordinarily have several different underlying portions with suggested Alternatives, but in this case with suggested Alternatives comma but in this case which suggested Alternatives, but in this case which suggested Alternatives comma but in this case all of those alternatives are placed in the text stream.all of those alternatives are placed in the text string. All of those alternatives are placed in the text screen. All of those alternatives are placed in the texts stream. All of those alternatives are placed in the text stream period
This problem persists even after rolling back the Google App, and indeed after doing all the other fixes I could find out there (clearing cache, factory reset, connecting to wifi, turning on airplane mode, etc). I have found others posting about this problem as early as 2014, and nobody has any solutions.
Edit: Strike the above. I have found that, for whatever reason, this no longer happens if I am connected to the internet via 4g and wifi is turned off. However, I seem to remember testing this specifically before and observing no change, so I can't say for sure what is actually happening. Perhaps some of the code is running on Google's servers, and for whatever reason my router is blocking some of the instructions? It is terribly confusing, and this behavior makes mme think debugging this is going to be very tedious and difficult.
I am using a Galaxy S7, accessing Google Voice Input via Hacker's Keyboard and Samsung Swype (no difference between them)