I call the Voice.getName()
method as follows:
Set<Voice> voices = tts.getVoices(); String name = voice.getName();
This returns code names, not friendly display names. What I want is a display name, but there seems to be no way to get this.
Is it possible to translate codes into something meaningful to create user-friendly names? And eliminate duplicates? A lot of similar sound - but a little different.
Here are some codes returned for English UK:
en-GB-language en-gb-x-rjs-local en-gb-x-rjs-network en-gb-x-fis-local en-gb-x-fis-network en-gb-x-fis#female_1-local en-gb-x-rjs#female_1-local en-gb-x-rjs#female_2-local en-gb-x-fis#female_2-local en-gb-x-rjs#male_1-local
My thoughts so far are:
- Local networks and networks mean what you think. However, it is unclear whether they are two versions of the same voice, as they sound a little different (not completely different).
rjs
and fis
repeated a lot, and apply to both men and women, but only for English English. It seems that in each language there is one or two different sets of 3 letter initials - perhaps this is a region code.- You might think that women1 and women2 would be different from the talent of the voice, but they seem very slightly different expressiveness.
- I think
en-gb-x-rjs#male_1-local
and en-gb-x-rjs-local
identical - All return the same quality 400.
Does anyone better understand them?
source share