Efe*_*dak 5 android speech-recognition
我开始意图然后等待结果。它在简短的演讲中效果很好,但是如果演讲时间太长,它并不能给我答案。(近1分钟)
final Intent searchIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
searchIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "tr");
searchIntent.putExtra(RecognizerIntent.EXTRA_PROMPT, true);
searchIntent.putExtra(RecognizerIntent.EXTRA_ONLY_RETURN_LANGUAGE_PREFERENCE, true);
startActivityForResult(searchIntent, VOICE_REQUEST_CODE);
Run Code Online (Sandbox Code Playgroud)
除了SpeechRecognizer之外,还有其他方法可以从ACTION_RECOGNIZE_SPEECH意向中获取结果吗?
这是一个可行的解决方案:
final Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
intent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, yourPackageHere);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
intent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS, 1000);
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "en-US");
intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Your Prompt");
startActivityForResult(intent,REQUEST_CODE);
Run Code Online (Sandbox Code Playgroud)
但在使用此功能之前,您应该检查用户是否授予了RECORD_AUDIO权限以及设备是否ACTION_RECOGNIZE_SPEECH可用。
识别语音对于长语音有一个有趣的行为。如果您提供较小的数字来MAX_RESULTS识别语音,则在长时间语音后屏幕会冻结。onActivityResult因此,您需要保持数字更大,然后通过List<String> results识别语音意图得到结果。您可以通过循环并使用来获得结果。
| 归档时间: |
|
| 查看次数: |
2105 次 |
| 最近记录: |