gpt4 book ai didi

android - 运行非离线语言时的 SpeechRecognizer ERROR_SERVER

转载 作者:行者123 更新时间:2023-11-30 04:57:29 25 4
gpt4 key购买 nike

当我将英语设置为默认语言运行时,一切都很好,但是当我以任何无法离线使用的语言运行它时,即使我打开 Internet 连接,我也会不断收到错误 4 (ERROR_SERVER)。

我前段时间通过将语言模型更改为 LANGUAGE_MODEL_WEB_SEARCH 来修复它。但是我添加了一些其他功能,但无论我在此处进行什么更改,它都无法再次工作。

我已经尝试过的事情:

  • 阅读 Stack Overflow 上的所有其他相关问题。
  • 手动设置语音识别 api(我的设备上只有一个可用)。
  • 添加了录制音频和使用互联网的权限。

这可能是因为它试图获取不存在的离线语言。您知道是否有任何方法可以强制 SpeechRecognizer 仅使用在线服务器,而不是尝试连接到离线服务器或其他方式来修复它?

代码:

class CommandRecognizer(private val view: VoiceCommandsView) {

private val mSpeechRecognizer: SpeechRecognizer =
SpeechRecognizer.createSpeechRecognizer(view.getApplicationContext())

private val mSpeechRecognizerIntent: Intent = Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH)

init {
create()
}

private fun create() {
mSpeechRecognizerIntent.putExtra(
RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_WEB_SEARCH
)
mSpeechRecognizerIntent.putExtra(
RecognizerIntent.EXTRA_LANGUAGE, Locale.getDefault()
)

mSpeechRecognizer.setRecognitionListener(object : RecognitionListener {
override fun onReadyForSpeech(bundle: Bundle) {}

override fun onBeginningOfSpeech() {}

override fun onRmsChanged(v: Float) {}

override fun onBufferReceived(bytes: ByteArray) {}

override fun onEndOfSpeech() {}

override fun onError(i: Int) {
when (i) {
SpeechRecognizer.ERROR_SERVER -> view.onSpeechRecognizerServerError()
}
}

override fun onResults(bundle: Bundle) {
view.onCommandRecognizerResults(bundle)
}

override fun onPartialResults(bundle: Bundle) {}

override fun onEvent(i: Int, bundle: Bundle) {}
})
}

fun startListening() {
mSpeechRecognizer.startListening(mSpeechRecognizerIntent)
}

fun cancelListening() {
mSpeechRecognizer.cancel()
}
}

编辑:

我更改了一些内容,然后将它们恢复原状,它再次运行(但每次启动该应用程序时我都必须运行几次语音识别,之后就没有错误),尽管事实上并没有真正改变。我添加的其中一件事是 EXTRA_PREFER_OFFLINE 并将其设置为 false。也许它永久设置了一些全局变量。

我也在不同的 PC 上构建它。也可能是这种情况,因为当我开始在一台新 PC 上开发这个应用程序时问题就开始了,现在我在另一台完全不同的 PC 上尝试了它。

无论如何,该应用程序现在可以正常运行,但在启动该应用程序时的前几次运行中仍然会出现错误。所以问题没有完全解决,这不是一个稳定的解决方案。

最佳答案

最后我永久修复了它。它不工作的唯一原因就是 STAMINA 模式。禁用它后一切正常。

关于android - 运行非离线语言时的 SpeechRecognizer ERROR_SERVER,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58885189/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com