2016-03-25 14 views
2

google tts kütüphanelerini kullanarak bir tts uygulaması yapıyorum. hindi'ye locale dilini ayarladığımda ve uygulamaya geri döndüğümde yazıyı doğru söylemiyor. Ben doğru hindi konuşmak için uygulama restart var.android tts hindi yerel ayar

t1 = new TextToSpeech(getApplicationContext(), new TextToSpeech.OnInitListener() { 
     @Override 
     public void onInit(int status) { 
      if (status != TextToSpeech.ERROR) { 
       setVolumeControlStream(AudioManager.STREAM_MUSIC); 

      } 
     } 
    }); 

    b1.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      String toSpeak = ed1.getText().toString().trim(); 
      t1.speak(toSpeak, TextToSpeech.QUEUE_FLUSH, null); 

     } 
    }); 
+0

sorunlara yol açabilir bir ilerleme veya söyleyiş dinleyici ayarı parametreleri olarak boş Geçme ve benim cevap –

+0

aşağıya bakın. Ayrıca, konuşmadan önce tt'nin geçerli dilini çıkarmak için bazı günlükleri kullanın. – brandall

cevap

0

Hindi tts kullanımı için aşağıdaki kodu kullanın. Bu kod benim için çalışıyor.

public class AndroidTextToSpeechActivity extends Activity implements 
    TextToSpeech.OnInitListener { 
private TextToSpeech tts; 
private Button btnSpeak; 
private EditText txtText; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    tts = new TextToSpeech(this, this); 
    btnSpeak = (Button) findViewById(R.id.btnSpeak); 

    txtText = (EditText) findViewById(R.id.txtText); 

    // button on click event 
    btnSpeak.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View arg0) { 
      speakOut(); 
     } 

    }); 
} 

@Override 
public void onDestroy() { 
    // Don't forget to shutdown! 
    if (tts != null) { 
     tts.stop(); 
     tts.shutdown(); 
    } 
    super.onDestroy(); 
} 

@Override 
public void onInit(int status) { 
    // TODO Auto-generated method stub 

    if (status == TextToSpeech.SUCCESS) { 

     int result = tts.setLanguage(new Locale("hi")); 
     if (result == TextToSpeech.LANG_MISSING_DATA 
       || result == TextToSpeech.LANG_NOT_SUPPORTED) { 
      Log.e("TTS", "Language is not supported"); 
     } else { 
      btnSpeak.setEnabled(true); 
      speakOut(); 
     } 

    } else { 
     Log.e("TTS", "Initilization Failed"); 
    } 

} 

private void speakOut() { 
    String text = txtText.getText().toString(); 
    tts.speak(text, TextToSpeech.QUEUE_FLUSH, null); 

} 
}