{{tts-voices:}} contains duplicate entries for some but not all languages/voices

{{tts-voices:}}

Preview:

TTS voices available:
{{tts de_DE voices=Microsoft_Hedda}}
{{tts de_DE voices=Microsoft_Hedda}}
{{tts de_DE voices=Microsoft_Katja}}
{{tts de_DE voices=Microsoft_Stefan}}
{{tts en_US voices=Microsoft_David}}
{{tts en_US voices=Microsoft_David}}
{{tts en_US voices=Microsoft_Mark}}
{{tts en_US voices=Microsoft_Zira}}
{{tts en_US voices=Microsoft_Zira}}
{{tts es_MX voices=Microsoft_Raul}}
{{tts es_MX voices=Microsoft_Sabina}}
{{tts es_MX voices=Microsoft_Sabina}}
{{tts fr_CA voices=Microsoft_Caroline}}
{{tts fr_CA voices=Microsoft_Claude}}
{{tts pt_BR voices=Microsoft_Daniel}}
{{tts pt_BR voices=Microsoft_Maria}}
{{tts pt_BR voices=Microsoft_Maria}}
{{tts ru_RU voices=Microsoft_Irina}}
{{tts ru_RU voices=Microsoft_Irina}}
{{tts ru_RU voices=Microsoft_Pavel}}
{{tts zh_CN voices=Microsoft_Huihui}}
{{tts zh_CN voices=Microsoft_Huihui}}
{{tts zh_CN voices=Microsoft_Kangkang}}
{{tts zh_CN voices=Microsoft_Yaoyao}}

Or perhaps there really are two variants of some of the voices, and some qualifier tag is being discarded inadvertently?

Also, Natural voices installed via Accessibility / Narrator (in Windows 11, as described in Using Microsoft Natural voices with built-in TTS - #4 by sprvlcn ) do not show up in the {{tts-voices:}} listing. I’m not sure if they should?

Windows has two different ways of making voices available - perhaps the duplicate voices are made available by both the old and new methods on your system?

I see {{tts-voices:}} is handled in the on_tts_voices function in qt/aqt/tts.py

In the debug console, av_player.players has:

  • aqt.sound.MpvManager (None)
  • aqt.sound.SimpleMpvPlayer (None)
  • aqt.tts.WindowsTTSPlayer (has only the duplicated voices listed above)
  • aqt.tts.WindowsRTTTSFilePlayer (has those voices and the others)

Incidentally, none of the natural voices from Accessibility / Narrator are listed though. I don’t know if they are meant to be available to apps.

After a little more digging, I found this:

I guess the Natural voices for all languages are Windows 11 only and unavailable to other apps.