2016-06-13 7 views
0

私の携帯TTSエンジンが完全にテストとして、アンドロイドでのテキスト読み上げ言語としてヒンディー語を設定してプログラム

 if(t1.isLanguageAvailable(new Locale("hi_IN"))==TextToSpeech.LANG_AVAILABLE) 
      t1.setLanguage(new Locale ("hi_IN")); 
     else 
      Toast.makeText(getApplicationContext(), "Sorry! Text To Speech failed...", Toast.LENGTH_LONG).show(); 
+0

t1はtexttospeechオブジェクトです –

+0

[Text to Speech Locale Hindi Indian](http://stackoverflow.com/questions/21598587/text-to-speech-locale-hindi-indian) – brandall

+0

私はそのコードを試しましたまた、ヒンディー語を設定することはできませんが、それ以上のものを投稿したり、サンプルコードを与えることはできますか –

答えて

0

まずヒンディーtextospeechをサポートしていてもテキスト読み上げの音声言語としてヒンディー語を設定することができません、とスピーチエンジンへのテキストを設定しますヒント:Androidのテキストと音声の設定コードに変更を加えることなく、ヒンディー語で話すことができます。そうでない場合は、ログ出力を調べて問題があるかどうかを確認してください。

次に、ロケールを設定しようとしない場合、isLanguageAvailable()TextToSpeech.LANG_AVAILABLEを返します。他にも多くの可能な対応があります。以下の2つのcase switch文のログ出力を確認してください。

final Locale loc = new Locale("hin", "IND"); 

    // switch(tts.isLanguageAvailable(loc)){ 
    switch(tts.setLanguage(loc)){ 

     case TextToSpeech.LANG_AVAILABLE: 
      Log.i("TAG", "LANG_AVAILABLE"); 
      break; 
     case TextToSpeech.LANG_COUNTRY_AVAILABLE: 
      Log.i("TAG", "LANG_COUNTRY_AVAILABLE"); 
      break; 
     case TextToSpeech.LANG_COUNTRY_VAR_AVAILABLE: 
      Log.i("TAG", "LANG_COUNTRY_VAR_AVAILABLE"); 
      break; 
     case TextToSpeech.LANG_MISSING_DATA: 
      Log.i("TAG", "LANG_MISSING_DATA"); 
      break; 
     case TextToSpeech.LANG_NOT_SUPPORTED: 
      Log.i("TAG", "LANG_NOT_SUPPORTED"); 
      break; 
    } 

注意してください、isLanguageAvailable()への応答は、悪名高い信頼性が低いです。理由はmy edit on the answer hereを参照してください。

は最後に、あなたが戻ってきた onInit()後TTSオブジェクトの言語を設定していることを確認してください SUCCESS

0

試してみてください。私はそれが今までなかった場合、それは仕事を願っています

t1.setLanguage(new Locale("hin", "IND", "variant")); 

0

はこれを試して...代わりに

t1.setLanguage(new Locale ("hi_IN")); 

t1.setLanguage(new Locale ("hi","IN")); 

私はそれが動作することを願っています。

関連する問題