安卓语音识别器音频录制错误

6

我正在尝试在Android上使用SpeechRecognizer而不使用Intent Dialog。它在大多数设备上都可以正常工作,但有些设备会返回音频录制错误(错误代码3),并且没有关于此错误的详细信息。是否有任何解决方案或原因呢?

谢谢!


1
尝试使用RECORD_AUDIO的许可并进行检查。 - Nigam Patro
使用Log.d("test", audiorecorder);。并在无法正常工作的设备上运行该应用程序。使用后,请在此处发布logcat调试中写的内容。 - Zafar Kurbonov
RECORD_AUDIO 已经被添加。 - Android Work
@Zoffa,请问您需要我记录哪个音频录制器? - Android Work
5个回答

16

当谷歌应用程序(com.google.android.googlequicksearchbox)没有录音权限时,我也会出现同样的错误。

此外,SpeechRecognizer使用com.google.android.googlequicksearchbox的服务。 因此,如果禁用或卸载该应用程序,则SpeechRecognizer可能无法正常工作。


3
这个答案对我很有用。在你的手机上进入设置 -> 应用程序,给Google应用程序授予“录音”权限。 - UzumakiL

7

您应该前往系统设置,应用程序,谷歌应用程序,然后启用其麦克风权限。这正是ERROR_AUDIO(错误代码3)的原因。


2
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>

在您的清单文件中设置此项。如果仍然无法正常工作,则说明哪个设备导致了错误。


两个权限已经被添加。大多数联想设备存在问题。 - Android Work

0
假设您已经在清单中添加了权限。您应该将Google Voice对话框呈现给用户,以便让他给予Google Voice引擎录制音频的权限。之后,您可以调用SpeechRecognizer。

-2

错误代码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();
                }
}

这将允许您重新启动语音识别器。

另一方面,如果您遇到音频录制错误的困难,我很乐意找到解决方案,因为我也面临着同样的问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接