Given the file espeak.txt with the following content:
1 2 3<voice xml:lang="en">4 5 6</voice>7 8 9
And running the following command with eSpeak 1.45.44:
espeak -v en+klatt3 -m -f espeak.txt
ESpeak speaks "1 2 3" in klatt3, "4 5 6" in variant none and "7 8 9" in klatt3.
Yet if rather than klatt3 you use f2, it speaks all the numbers in f2.
So it seems as though its not able to remember that its using klatt variants when it enters voice tags.
The impact for NVDA is that klatt voices no longer work at all as we now wrap pretty much all text in voice tags for language handling.
NVDA ticket: http://www.nvda-project.org/ticket/1789
Fixed now in eSpeak 1.45.45 at
http://espeak.sf.net/test/latest.html
I just tested this in eSpeak 1.45.45 and it doesn't seem to be fixed for me. I get the same result with the same steps to reproduce.
OK, the previous fix didn't work on Windows. Fixed now in eSpeak 1.45.46 at
http://espeak.sf.net/test/latest.html