我正在尝试在Android上使用SpeechRecognizer而不使用Intent Dialog。它在大多数设备上都可以正常工作,但有些设备会返回音频录制错误(错误代码3),并且没有关于此错误的详细信息。是否有任何解决方案或原因呢?
谢谢!
我正在尝试在Android上使用SpeechRecognizer而不使用Intent Dialog。它在大多数设备上都可以正常工作,但有些设备会返回音频录制错误(错误代码3),并且没有关于此错误的详细信息。是否有任何解决方案或原因呢?
谢谢!
当谷歌应用程序(com.google.android.googlequicksearchbox)没有录音权限时,我也会出现同样的错误。
此外,SpeechRecognizer使用com.google.android.googlequicksearchbox的服务。 因此,如果禁用或卸载该应用程序,则SpeechRecognizer可能无法正常工作。
您应该前往系统设置,应用程序,谷歌应用程序,然后启用其麦克风权限。这正是ERROR_AUDIO(错误代码3)的原因。
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
在您的清单文件中设置此项。如果仍然无法正常工作,则说明哪个设备导致了错误。
错误代码6表示语音超时错误,而音频录制错误的值为3(请参见此处:https://developer.android.com/reference/android/speech/SpeechRecognizer.html)。 假设您遇到了语音超时错误,您可以执行以下操作:
public void OnError(SpeechRecognizerError error) {
String errorMessage = error.ToString();
if (errorMessage.Contains ("SpeechTimeout"))
{ this.OnDestroy();
this.OnCreate();
}
}
这将允许您重新启动语音识别器。
另一方面,如果您遇到音频录制错误的困难,我很乐意找到解决方案,因为我也面临着同样的问题。