Преобразование текста в речь

Я использую следующий код. Он работает нормально, за исключением проблемы, заключающейся в том, что у меня есть список текста для преобразования в речь. Но это единственная конвертация последней строки в речь. Вот мой код, в котором я помещаю данные в список и пытаюсь преобразовать их в речь:

  public class TextSpeech extends ListActivity implements
  TextToSpeech.OnInitListener {
  /** Called when the activity is first created. */

 private TextToSpeech tts;

 private TextView txtText;
 private List<Message> mess;
 List<String> titless;

@SuppressLint("NewApi")
@Override
public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.speach);

 tts = new TextToSpeech(this, this);


 BaseFeedParser parser = new BaseFeedParser();
 mess = parser.parse();
 titless = new ArrayList<String>(mess.size());
    speakOut();
}

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


@SuppressLint("NewApi")
@Override
public void onInit(int status) {

if (status == TextToSpeech.SUCCESS) {

int result = tts.setLanguage(Locale.US);

if (result == TextToSpeech.LANG_MISSING_DATA
        || result == TextToSpeech.LANG_NOT_SUPPORTED) {
    Log.e("TTS", "This Language is not supported");
} else {

    speakOut();
}

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

   }

   public void speakOut() {
     for (Message msg : mess){
 titless.add(msg.getTitle());
 tts.speak(msg.getTitle(), TextToSpeech.QUEUE_FLUSH, null);
         }
     ArrayAdapter<String> adapter = 
     new ArrayAdapter<String>(this, R.layout.row,titless);
     this.setListAdapter(adapter);
      }
     }

person user3158671    schedule 04.01.2014    source источник
comment
Ваш вопрос не ясен. Почему бы вам не преобразовать весь список в строку, а затем передать эту функцию, чтобы говорить. Я не знаю, понимаю ли я ваше требование.   -  person    schedule 04.01.2014
comment
Кроме того, вы можете использовать TextToSpeech.QUEUE_ADD для добавления одного за другим   -  person Meenal    schedule 04.01.2014
comment
@MeenalSharma, спасибо, приятель. Это было полезно.   -  person user3158671    schedule 04.01.2014
comment
@MeenalSharma, почему бы вам не указать это как ответ, чтобы ОП мог принять ответ. ;-)   -  person    schedule 04.01.2014
comment
@MeenalSharma Можете ли вы сказать мне, как сделать язык хинди речью?   -  person user3158671    schedule 04.01.2014
comment
ты имеешь в виду, что хочешь, чтобы TTS читал хинди   -  person Meenal    schedule 04.01.2014
comment
да ..хочу хинди вместо местного.США   -  person user3158671    schedule 04.01.2014
comment
попробуйте использовать tts.setLanguage(новый язык(привет)); или tts.setLanguage(новый язык(хин));   -  person Meenal    schedule 04.01.2014
comment
но преобразует ли он текст в речь на хинди??   -  person user3158671    schedule 04.01.2014
comment
это невозможно сделать stackoverflow.com/questions/10005867/ см. эту ссылку   -  person Meenal    schedule 04.01.2014
comment
посоветуйте что-нибудь еще..   -  person user3158671    schedule 04.01.2014


Ответы (1)


Вы использовали TextToSpeech.QUEUE_FLUSH, просто изменили его на TextToSpeech.QUEUE_ADD. В соответствии с вашим требованием вы хотите, чтобы TTS читал один за другим.

person Meenal    schedule 04.01.2014