I’m using screenreaders for well over a year now. I constantly switch between English and German in emails, text, chats, etc. Many many times a day the screenreader would read German or English in the wrong voice, because it is not properly tagged. I October I bought a Macbook Air M1. VoiceOver on the M1 processor detectsds the language with artificial intelligence. Its very accurate and I wanted the same for my work and my gaming PC.
So I developed a NVDA plugin called: NVDAOneCoreAutoLang
It adds a new speech synthesizer, which is a modified version of the “Windows OneCore voices” synthesizer. After installation of my plugin a new synthesizer called “Windows OneCore voices (AutoLang)” is available. Before any text is spoken the plugin uses the fasttext language indentification model to guess the language. If a voice for this language is installed in Windows, the plugin uses that voice to speak the text. It defaults to the selected voice.