我可以让语音识别器无限期地听吗?

enz*_*m83 20 android

当我调用对象的startListening方法时SpeechRecognizer,语音识别器开始收听语音.我想创建一个等待特定关键字语音的服务:当用户说出该关键字并且语音识别器检测到该关键字时,该服务就准备好接收用户语音命令.

为此,在SpeechRecognizer实例化之后,我应该调用它的startListening方法:我可以让语音识别器无限期地监听吗?

roc*_*eye 13

Android Speech recognizer可以通过意向额外的数据进行定制.查看android文档.

public static final String EXTRA_SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS

在我们停止听到语音以考虑输入完成后应该花费的时间量.[...]

public static final String EXTRA_SPEECH_INPUT_MINIMUM_LENGTH_MILLIS 自:API等级8

话语的最小长度.我们不会在这段时间之前停止录制.[...]

public static final String EXTRA_SPEECH_INPUT_POSSIBLY_COMPLETE_SILENCE_LENGTH_MILLIS

在我们停止听到语音以考虑输入可能完成之后应该花费的时间量.[...]

EXTRA_LANGUAGE_MODEL设置 为websearch以仅捕获相关单词.

  • 我注意到`EXTRA_SPEECH_INPUT_MINIMUM_LENGTH_MILLIS`的默认值大约是10秒,因为如果我不说话,语音识别器会在大约10秒钟后自动停止收听.所以我将'EXTRA_SPEECH_INPUT_MINIMUM_LENGTH_MILLIS`设置为100000毫秒:这样语音识别器不应该在这段时间(100秒)之前停止录制,但它总是在大约10秒后停止. (5认同)
  • _根据识别器实现,这些值可能没有效果_,因此我们可以假设这些值不能更改.在这种情况下,当语音识别器由于没有检测到用户的任何语音而自动停止时,我应该通过调用`startListening`方法再次重新启动它:但是,这将创建一个语音识别器没有收听的时间间隔,因为重新开始听取可能不是即时的.如何克服这个障碍? (2认同)