android - Android 语音识别器。如何缓存“就绪”声音事件?
问题描述
我对 android.speech.SpeechRecognizer 方法有一点问题
speechRecognizer.startListening(speechIntent)
有时需要很长时间才能播放“就绪”的声音(主要是在应用重新运行之后)。我找不到像 onSpeechRecognitionReady 监听器之类的东西。我怎样才能捕捉到这个事件来制作一个进度条?
我以这种方式初始化识别器
private fun initSpeechRecognizer() {
speechIntent = Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH)
speechIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "en-US")
speechIntent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, packageName)
speechRecognizer = SpeechRecognizer.createSpeechRecognizer(this)
speechRecognizer.setRecognitionListener(object : RecognitionListenerAdapter(){
override fun onResults(results: Bundle) {
val matches = results.getStringArrayList(SpeechRecognizer.RESULTS_RECOGNITION)
tv_speech.text = matches[0]
btn_speech.isChecked = false
}
})
}
解决方案
我认为您应该使用具有onReadyForSpeech方法的RecognitionListener以便您可以在 init 上显示进度条并将其隐藏在 onReadyForSpeech
推荐阅读
- r - R中的IFELSE返回不正确的值
- python - 初学者 PyTorch:RuntimeError:大小不匹配,m1:[16 x 2304000],m2:[600 x 120]
- python - 可变结果即使在更改后也会产生结果
- r - 如何在 r shiny 中编辑表格
- python - Pygame 移动问题
- sql - 如何在 SQL Bigquery 中删除重复的主键行并分组?
- javascript - 如何在不添加迭代器的情况下修复打字稿中的迭代器丢失错误 - 角度 8
- vega - 在 vega-lite 中格式化构面/多视图标签
- html - HTML 图像不会呈现在 Outlook 中长电子邮件的底部
- c# - AutoMapper 仅映射需要的字段