Text to Speech getAvailableVoicesAsync()

I am wondering, how can i identify if the values i get from Speech.getAvailableVoicesAsync() is for women or a man.
There is simple no information available except for data that the user simple wont be able to know what is mean.

I was thinking of simple making the user chose which voice to play. but its simple to hard to present anything that i get from Speech.getAvailableVoicesAsync().

Is there any way i could make it presentable. simple like Man(en-US) something like that.

I get something like this

{"identifier": "ur-PK-language", "language": "ur-PK", "name": "ur-PK-language", "quality": "Enhanced"}

Hey @alentoma, there is nothing baked-in to the module to handle the behavior you are seeking. Have you looked into other alternative libraries to see if they support this?


Unfortunately there no not. I looked but found no solution about this issue.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.

@alentoma :
AFAIK, the available voices are platform specific, and most platforms do not provide gender information for the voice, except for the name/identifier (which gives a rough idea on iOS, but not in android) - Add option to select voice by pyankoff · Pull Request #2833 · expo/expo · GitHub should help for iOS.

To implement this, I could think of 2 ways

Option 1: Provide a list of available voices, and play a default text message on selection.

Option 2: Provide a limited subset of voices known to you, presenting a mapped result of Speech.getAvailableVoicesAsync() with your own property for “gender”: “…”.

Hope this helps.