7

In my application , I wish to know if there is any tts engine that can read hindi text . my code

tts.setLanguage(Locale.US);

unfortunately Hindi is not supported by Android. See the list of Locales supported below

http://developer.android.com/reference/java/util/Locale.html

How will i do the hindi locale any help ? Thanks in advance

peter
  • 1,028
  • 9
  • 21
  • check the below link [Localization in android for indian regional languages][1] [1]: http://stackoverflow.com/questions/10943811/how-to-set-custom-locale-for-indian-regional-languages-in-android-emulator – Pinki May 17 '13 at 09:06
  • 1
    @Praveena_Pinki he want how to add Hindi TTS(Test to speech in hindi locale) As there is no support from google He is expecting any other 3rd party libs. – Padma Kumar May 17 '13 at 09:09
  • yes padma kumar you are right – peter May 17 '13 at 09:12

2 Answers2

12

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.

  1. http://reecedunn.co.uk/espeak-for-android
  2. https://play.google.com/store/apps/details?id=com.reecedunn.espeak
reece
  • 7,945
  • 1
  • 26
  • 28
0

You can use this package to convert Krutidev font to Unicode: krutidevtounicode and then you can give the text to tts for speaking it will speak in hindi and if not then install hindi version of tts in mobile/emulator.

var text = KrutidevToUnicode.convertToUnicode("gsyks oYMZ");
FlutterTts flutterTts = FlutterTts();
await flutterTts.speak(text);
Ravi Taak
  • 38
  • 5