如何知道什么时候TTS完成? [英] How to know when TTS is finished?

查看:142
本文介绍了如何知道什么时候TTS完成?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我实现在Android上的交互式语音应答应用。我想知道如何确定何时 tts.speak()功能做了交谈,所以我可以叫我的语音识别功能。

解决方案

 公共类TTSActivity扩展活动实现OnInitListener,OnUtteranceCompletedListener,... {
私人TextToSpeech MTTS;
...........
私人无效讲(文本字符串){
   如果(文字!= NULL){
      HashMap的<字符串,字符串> myHashAlarm =新的HashMap<字符串,字符串>();
      myHashAlarm.put(TextToSpeech.Engine.KEY_PARAM_STREAM,将String.valueOf(AudioManager.STREAM_ALARM));
      myHashAlarm.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID,有些消息);
      mTts.speak(文字,TextToSpeech.QUEUE_FLUSH,myHashAlarm);
   }
}
// TTS初始化后激发
公共无效的OnInit(INT状态){
    如果(状态== TextToSpeech.SUCCESS){
        mTts.setOnUtteranceCompletedListener(本);
    }
}
//这是回调
公共无效onUtteranceCompleted(字符串utteranceId){
   Log.i(TAG,utteranceId); // utteranceId ==某个消息
   }
...........
}
 

一个很好的教程

I'm implementing an Interactive Voice Response application on Android. I would like to know how to determine when the tts.speak() function has done talking so I can call my speech recognizer function.

解决方案

public class TTSActivity extends Activity implements OnInitListener, OnUtteranceCompletedListener, ... {
private TextToSpeech mTts;
...........
private void speak(String text) {
   if(text != null) {
      HashMap<String, String> myHashAlarm = new HashMap<String, String>();
      myHashAlarm.put(TextToSpeech.Engine.KEY_PARAM_STREAM, String.valueOf(AudioManager.STREAM_ALARM));
      myHashAlarm.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, "SOME MESSAGE");
      mTts.speak(text, TextToSpeech.QUEUE_FLUSH, myHashAlarm);
   }
}
// Fired after TTS initialization
public void onInit(int status) {
    if(status == TextToSpeech.SUCCESS) {
        mTts.setOnUtteranceCompletedListener(this);
    }
}
// It's callback
public void onUtteranceCompleted(String utteranceId) {
   Log.i(TAG, utteranceId); //utteranceId == "SOME MESSAGE"
   }
...........
}

Read A good tutorial

这篇关于如何知道什么时候TTS完成?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆