我正在用Dialogflow开发一个应用程序。
这个应用程序运行得很好,除了监听器。我想让用户从屏幕上显示的单词列表中大声朗读。
目前,当用户单击要录制的按钮时,当监听器未准备好时,将显示单词列表(准备好读取)。每个单词显示2秒后,下一个单词才会出现。
有没有办法让这个单词在下一个单词出现之前一直显示到录制完成?
发布于 2018-05-21 23:27:33
有许多方法可以做到这一点。
计时器,你可以使用某种倒计时计时器,为用户倒计时。这篇文章更多地讨论了这个想法:SpeechRecognizer Time Limit。在这篇文章中,提出了以下建议:
最好的办法是线程某种计时器,比如CountDownTimer:
新的CountDownTimer(2000,1000) { yourSpeechListener.startListening(yourRecognizerIntent);void onTick(long millisUntilFinished) {//什么也不做,就让它勾选一下} public void onFinish() { yourSpeechListener.stopListening();} }.start();
的
使用它来控制识别器在停止之前需要听到的静音量。有两个参数可以在这样的情况下工作
EXTRA_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS或EXTRA_SPEECH_INPUT_POSSIBLY_COMPLETE_SILENCE_LENGTH_MILLIS
两者的作用几乎相同,如果存在100ms或200ms的complete_silence,则识别器将停止侦听,并随后处理刚刚听到的单词。例如:
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_SPEECH_INPUT_POSSIBLY_COMPLETE_SILENCE_LENGTH_MILLIS, 2000000); 或
Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS, 2000000); https://stackoverflow.com/questions/50450400
复制相似问题