首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对话流startListening()

对话流startListening()
EN

Stack Overflow用户
提问于 2018-05-21 21:50:51
回答 1查看 97关注 0票数 0

我正在用Dialogflow开发一个应用程序。

这个应用程序运行得很好,除了监听器。我想让用户从屏幕上显示的单词列表中大声朗读。

目前,当用户单击要录制的按钮时,当监听器未准备好时,将显示单词列表(准备好读取)。每个单词显示2秒后,下一个单词才会出现。

有没有办法让这个单词在下一个单词出现之前一直显示到录制完成?

EN

回答 1

Stack Overflow用户

发布于 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();

  1. You可以使用RecognizerIntent

使用它来控制识别器在停止之前需要听到的静音量。有两个参数可以在这样的情况下工作

EXTRA_INPUT_COMPLETE_SILENCE_LENGTH_MILLISEXTRA_SPEECH_INPUT_POSSIBLY_COMPLETE_SILENCE_LENGTH_MILLIS

两者的作用几乎相同,如果存在100ms或200ms的complete_silence,则识别器将停止侦听,并随后处理刚刚听到的单词。例如:

代码语言:javascript
复制
        Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);          
        intent.putExtra(RecognizerIntent.EXTRA_SPEECH_INPUT_POSSIBLY_COMPLETE_SILENCE_LENGTH_MILLIS, 2000000);   

代码语言:javascript
复制
        Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);          
        intent.putExtra(RecognizerIntent.EXTRA_SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS, 2000000);   
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50450400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档