androidtext-to-speechgoogle-text-to-speech

Text to speech for Bangla not working


TTS for bangla content works fine in my Nexus 5x, but not others phone. In other i.e. Samsung phone can speak only english words but skip(not speak) bangla words.

Can anybody fetch this type of problem, please help me.

Thanks.

Code:

@Override
    public void onInit(int i) {
        if (i == TextToSpeech.SUCCESS) {

        int result = mTextToSpeech.setLanguage(new Locale("bn_IN"));//https://stackoverflow.com/questions/7973023/what-is-the-list-of-supported-languages-locales-on-android

        floatRead.setImageResource(R.drawable.ic_volume_off);

        if (result == TextToSpeech.LANG_MISSING_DATA
                || result == TextToSpeech.LANG_NOT_SUPPORTED) {
            Log.i("TTS", "This Language is not supported");
            AppApplication.getInstance().showToast("This Language is not supported");
        }
        read(mNewsDetails.title, true);
        read(mNewsDetails.plain_text, false);

    } else {
        floatRead.setImageResource(R.drawable.ic_read);
    }
    }

`

void read(String text, boolean flush) {
        if (flush == true) {
            if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP)
                mTextToSpeech.speak(text, TextToSpeech.QUEUE_FLUSH, null, null);
            else
                mTextToSpeech.speak(text, TextToSpeech.QUEUE_FLUSH, null);
        } else {
            if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP)
                mTextToSpeech.speak(text, TextToSpeech.QUEUE_ADD, null, null);
            else
                mTextToSpeech.speak(text, TextToSpeech.QUEUE_ADD, null);
        }
    }

`


Solution

  • Its working.

    Try to set language & work fine for me.

    @Override public void onInit(int i) { ..........

    int result = mTextToSpeech.setLanguage(new Locale("bn_IN"));
    

    ref: for language [What is the list of supported languages/locales on Android?

    thanks u all.