Speech recognition android确定语音识别是否正在运行

Speech recognition android确定语音识别是否正在运行,speech-recognition,cmusphinx,Speech Recognition,Cmusphinx,我正在我的应用程序上运行Sphinx和Google语音识别(目前我正在使用SpeechRecognitzer with RecognitzerIntent)。Sphinx作为一个服务运行,它监听关键字spot。另一个将在活动中调用 然后需要Sphinx检测Google语音识别,这样Sphinx就可以暂时停止Google语音的运行。当谷歌演讲结束后,斯芬克斯将会恢复 我所需要的是如何确定谷歌演讲是否可用或是否已经完成 请帮忙 那么问题是什么呢?当检测到关键字时,您将启动google语音识别以识别语

我正在我的应用程序上运行Sphinx和Google语音识别(目前我正在使用SpeechRecognitzer with RecognitzerIntent)。Sphinx作为一个服务运行,它监听关键字spot。另一个将在活动中调用

然后需要Sphinx检测Google语音识别,这样Sphinx就可以暂时停止Google语音的运行。当谷歌演讲结束后,斯芬克斯将会恢复

我所需要的是如何确定谷歌演讲是否可用或是否已经完成


请帮忙

那么问题是什么呢?当检测到关键字时,您将启动google语音识别以识别语音。在intent接收到结果后,您将再次开始关键字定位。“这有什么不对劲吗?”尼古拉·什米耶夫:好的。这个流程也很有效。但问题是,当我的应用程序中的另一个谷歌语音识别正在运行时,我的关键字识别服务也需要停止。那么我如何知道我的手机上已经调用了谷歌语音识别呢?另一个问题是,当我从活动中调用谷歌语音识别时,然后单击手机上的“主页”按钮(可能谷歌语音识别目前正在运行)。那么,我应该如何停止谷歌语音识别,并再次调用关键字识别?您可以通过onPause捕捉该事件,查看详细信息。如果google asr正在运行,您可以使用该标志,并在适当的暂停时取消它。太棒了!但我还有一个问题。Google语音识别不会在调用cancel()后立即停止。因此,当我在调用cancel()后立即调用关键字定位时,出现了一个错误(AudioRecord start()状态为-38)。目前我正在使用Thread.sleep(100)来解决这个问题,但这并不是一个最好且清晰的解决方案