Hindi is supported by Android -- it is just that there isn't a Locale
constant for it.
If you look at http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes, then hi
is the ISO 639-1 code for Hindi. Also note that Android/Java may also use the ISO 39-3 code which for Hindi is hin
.
Therefore, you need to use either:
tts.setLanguage(new Locale("hi"));
or:
tts.setLanguage(new Locale("hin"));
You will also need to use a text-to-speech synthesiser that supports Hindi, otherwise you will get a "language not supported" error. The eSpeak text to speech synthesiser supports Hindi.
I have a port of eSpeak for Android 4.0 and later [1]/[2] for £0.99. This has many improvements and bug fixes over the eyes free port and is kept up-to-date with the latest eSpeak releases.
- http://reecedunn.co.uk/espeak-for-android
- https://play.google.com/store/apps/details?id=com.reecedunn.espeak