Hi Ed,
There are many different partly historical aspects when it comes to selection of voices for the Azure TTS API. When Microsoft initially introduced the API, the voice names were unbelievably long containing some characters which not all the IVRs would allow to use as a voice name. This is where the requirement of having mapping between the names used over MRCP and Azure REST API came from, which resulted in the configuration file umsazurevoices.xml. That was probably 5 or 6 years ago. Later, Microsoft also introduced short names for the same voices which makes sense and partly solves the problem but now it is harder to get rid of the additional file umsazurevoices.xml, as the voice names defined in that file have been used in production for many years by too many different organizations, and introducing any breaking change would not be appropriate.
In the meantime, I'm thinking of adding an option to implicitly populate the voices on initial loading of the server, as it is done for other TTS plugins, such as AWS Polly and Nuance SS. This would solve the problem with maintaining umsazurevoices.xml as you mentioned. BTW, if you list the missing voices which you currently use, I can add them to the default configuration which will be available with the next release. You can also continue to maintain your local copy, if needed, but I understand that is not convenient.
There is currently no way of specifying the voice transparently from the client application without using the internal mapping, but this is another option that can be considered for implementation.