Hey Valmoxium, by repeating once do you mean it's reading the alternate text two times in total? I notice this behavior happens occasionally if I hover over a quickmenu button and the Self-Voicing will tell me what that button is, then it will start reading the dialogue again from the top. You seem to be doing everything correctly as far as I can tell from your code.
I'm unfortunately largely out of commission atm due as I'm recovering from my wisdom tooth extraction, but I pulled up the documentation on Self-Voicing as well as an indepth guide about it below. I hope that it provides some solution, and if if not I can ask around to see if anyone more familiar with Self-Voicing knows what's happening.
Official Documentation: https://www.renpy.org/doc/html/self_voicing.html
Additional Resource: https://orangecarnation.neocities.org/guides/renpy_tts