What do Android Voice names / codes mean?

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?

+6
source share

Source: https://habr.com/ru/post/1013239/


All Articles