text to speech - android- TextToSpeech in hebrew -
i try use
int result2 = tts_hebrew.setlanguage(locale.iw);
but iw not recognized locale.iw.
in http://developer.android.com/reference/java/util/locale.html :
"note java uses several deprecated two-letter codes. hebrew ("he") language code rewritten "iw", indonesian ("id") "in", , yiddish ("yi") "ji". rewriting happens if construct own locale object, not instances returned various lookup methods."
how can use texttospecch in hebrew?
edid2: use new locale("iw") now. compile no voice..(no english , not hebrew) . english work fine
package com.example.freeenglish; import java.util.locale; import java.util.timer; import android.os.bundle; import android.os.handler; import android.app.activity; import android.speech.tts.texttospeech; import android.util.log; import android.view.menu; import android.widget.button; import android.widget.edittext; import com.example.freeenglish.const; public class wordlearn extends activity implements texttospeech.oninitlistener { //iw -hebrow //for speaking private texttospeech tts_english; private texttospeech tts_hebrew; private button btnspeak; private edittext txttext; int random_word_index; int index = 0; button up_english; button down_hebrew; handler hand = new handler(); handler hand1 = new handler(); @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_word_learn); up_english = (button) findviewbyid(r.id.up); down_hebrew = (button) findviewbyid(r.id.down); hand1.postdelayed(run1, 2000); /////////////////////////////////for speking: tts_english = new texttospeech(this, this); tts_english.setpitch((float) 0.6);//speed. defulat=1, lower<1 tts_english.setspeechrate((float) 0.5); //speed. defulat=1, lower<1 tts_hebrew = new texttospeech(this, this); tts_hebrew.setpitch((float) 0.6);//speed. defulat=1, lower<1 tts_hebrew.setspeechrate((float) 0.5); //speed. defulat=1, lower<1 /////////////////////////////////// } runnable run1 = new runnable() { @override public void run() { random_word_index=(int) (math.random()*const.number_of_words); up_english.settext(const.words_list_english[random_word_index]); down_hebrew.settext(const.words_list_hebrew[random_word_index]); speakout_english(); speakout_hebrew(); hand1.postdelayed(run1, 4000); } }; @override public void ondestroy() { // don't forget shutdown tts! if (tts_english != null) { tts_english.stop(); tts_english.shutdown(); } if (tts_hebrew != null) { tts_hebrew.stop(); tts_hebrew.shutdown(); } super.ondestroy(); } @override public void oninit(int status) { if (status == texttospeech.success) { int result1 = tts_english.setlanguage(locale.us); int result2 = tts_hebrew.setlanguage(new locale("iw")); if ((result1 == texttospeech.lang_missing_data || result1 == texttospeech.lang_not_supported) && (result2 == texttospeech.lang_missing_data || result2 == texttospeech.lang_not_supported) ) { log.e("tts", "this language not supported"); } else { up_english.setenabled(true); down_hebrew.setenabled(true); speakout_english(); speakout_hebrew(); } } else { log.e("tts", "initilization failed!"); } } private void speakout_english() { string text = up_english.gettext().tostring(); tts_english.speak(text, texttospeech.queue_flush, null); } private void speakout_hebrew() { string text = down_hebrew.gettext().tostring(); tts_hebrew.speak(text, texttospeech.queue_flush, null); } }
have tried new locale("iw")
?
Comments
Post a Comment