gpt4 book ai didi

android - SpeechRecognizer 导致 ANR...我需要有关 Android 语音 API 的帮助

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:40:23 25 4
gpt4 key购买 nike

编辑:我应该已经提到了这一点,但我在服务中运行这段代码。整个应用程序由一个小部件按钮打开/关闭,没有任何 Activity 。


更新:我尝试将 SDK 源附加到项目,以便我可以更准确地了解故障发生的位置,但是来自 the looks of it ,只包含公共(public) API,这似乎使它们的用处大打折扣……任何人都可以建议至少一种解决此问题的调试方法吗?我有点卡住了。


我正在尝试使用 Android 的 speech recognition package记录用户语音并将其翻译成文本。不幸的是,当我尝试启动监听时,我收到了一个未指向任何特定内容的 ANR 错误。

如 SpeechRecognizer API 所示,如果您尝试从主线程调用它,则会抛出 RuntimeException。这让我想知道处理是否过于苛刻……但我知道其他应用程序为此目的使用 Android API,而且它通常非常快速。

java.lang.RuntimeException: SpeechRecognizer 只能在应用程序的主线程中使用

这是我尝试从我的服务中调用的代码示例(经过修剪)。这是正确的方法吗?

感谢您花时间提供帮助。这是我至今无法克服的障碍。

Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE,
"com.domain.app");

SpeechRecognizer recognizer = SpeechRecognizer
.createSpeechRecognizer(this.getApplicationContext());
RecognitionListener listener = new RecognitionListener() {
@Override
public void onResults(Bundle results) {
ArrayList<String> voiceResults = results
.getStringArrayList(RecognizerIntent.EXTRA_RESULTS);
if (voiceResults == null) {
Log.e(getString(R.string.log_label), "No voice results");
} else {
Log.d(getString(R.string.log_label), "Printing matches: ");
for (String match : voiceResults) {
Log.d(getString(R.string.log_label), match);
}
}
}

@Override
public void onReadyForSpeech(Bundle params) {
Log.d(getString(R.string.log_label), "Ready for speech");
}

@Override
public void onError(int error) {
Log.d(getString(R.string.log_label),
"Error listening for speech: " + error);
}

@Override
public void onBeginningOfSpeech() {
Log.d(getString(R.string.log_label), "Speech starting");
}
};
recognizer.setRecognitionListener(listener);
recognizer.startListening(intent);

最佳答案

确保使用 RECORD_AUDIO 权限。

关于android - SpeechRecognizer 导致 ANR...我需要有关 Android 语音 API 的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4559930/

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