2016-12-13 8 views
4

私はインテントを開始し、結果を待っています。短いスピーチではうまくいきますが、スピーチの長さが長すぎると、スピーチの答えが得られません。 (ほぼ1分)Android ACTION_RECOGNIZE_SPEECHインテントは、長いスピーチの後に決して終了しません。

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); 

ACTION_RECOGNIZE_SPEECHの意図から結果を得るためにSpeechRecognizer以外に方法はありますか?

答えて

2

を希望

Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); 
intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Speak Now"); 
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); 
intent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS, REQUEST_CODE); 
intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE, "en-US"); 
startActivityForResult(intent,REQUEST_CODE); 

、発話意図ランチャーには、このGoogleのテキストをお試しください:

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); 

しかし、使用前にこの機能を使用すると、かどうかを確認すべきであるが、ユーザーにはRECORD_AUDIO権限が与えられ、デバイスにはACTION_RECOGNIZE_SPEECHが利用可能です。

認識音声は、長い音声で面白い動作をします。 MAX_RESULTSに小さな番号を付けると、長いスピーチの後でスピーチ画面がフリーズするのを認識します。だから数字を大きくする必要があります。結果はonActivityResultで、List<String> resultsと認識スピーチのインテントから得られます。あなたは、ループで、そして使用するよりも結果を得ることができます。

1

ここでワーキングソリューションです、このことができます:)

関連する問題