代码之家  ›  专栏  ›  技术社区  ›  Nariman Ermekov

Android语音识别器。如何播放“就绪”声音事件?

  •  0
  • Nariman Ermekov  · 技术社区  · 7 年前

    speechRecognizer.startListening(speechIntent) 
    

    有时需要很长时间才能播放“就绪”声音(大部分是在应用程序重新运行后)。我找不到类似OnPeechRecognitionReady listener的内容。我怎样才能抓住这个事件来制作progressBar?

    我用这种方法初始化识别器

    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
                }
            })
        }
    
    2 回复  |  直到 7 年前
        1
  •  1
  •   Alex    7 年前

    我认为你应该使用 RecognitionListener 它有一个 onReadyForSpeech

        2
  •  0
  •   Nariman Ermekov    7 年前

    override fun onCreate(savedInstanceState: Bundle?) {
        initSpeechRecognizer()            
        speechRecognizer.startListening(speechIntent)
        speechRecognizer.stopListening()
    }