2016-10-11 12 views
2

私はandroid.speech.SpeechRecognizerを使用しています。ペアリングされた携帯電話にBluetooth経由で接続されている場合にのみ動作するようです。電話のBluetoothを無効にすると、SpeechRecognizerは機能しなくなります。これは、iPhoneまたはAndroidの携帯電話とペア設定されている場合に有効です。アクティブな電話接続は本当に制約ですか?SpeechRecognizerは、Android Wearがスマートフォンに接続されている場合にのみ使用できますか?

答えて

1

ドキュメントをチェックすると、システムのSpeechRecognizerアクティビティを使用するだけでドキュメントを確認できます。あなたはちょうどあなたが私たちが唯一のBluetooth接続を必要と述べているドキュメントに私をポイントしてくださいでき活動を開始し、onActivityResult

private static final int SPEECH_REQUEST_CODE = 0; 

// Create an intent that can start the Speech Recognizer activity 
private void displaySpeechRecognizer() { 
    Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); 
    intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, 
    RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); 
    // Start the activity, the intent will be populated with the speech text 
    startActivityForResult(intent, SPEECH_REQUEST_CODE); 
} 

// This callback is invoked when the Speech Recognizer returns. 
// This is where you process the intent and extract the speech text from the intent. 
@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == SPEECH_REQUEST_CODE && resultCode == RESULT_OK) { 
     List<String> results = data.getStringArrayListExtra(
     RecognizerIntent.EXTRA_RESULTS); 
     String spokenText = results.get(0); 
     // Do something with spokenText 
    } 
    super.onActivityResult(requestCode, resultCode, data); 
} 
+0

を通してデータを返しますACTION_RECOGNIZE_SPEECHセット、とstartActivityForResultを呼び出す必要が

'SpeechRecognizer'を直接使うのですか? –

+0

私の目的は実際には(システムUIを残すように)システムアクティビティを使用せず、アプリ内でスピーチを認識することです。 –

+0

[参考資料](https://developer.android.com/training/wearables/apps/voice.html#FreeFormSpeech)を参照しています。これは、システムが提供する音声アクションをタスクベースとして定義し、ウェアプラットフォーム自体に組み込まれています。私は、これが摩耗アプリそのものの中でスピーチを認識する必要があるかもしれないと信じています。 – adjuremods

関連する問題