2013-11-22 13 views
5

コマンドに応じていくつかのタスクを実行できる音声制御アプリケーションを作成しようとしています。
Google Nowの機能を追加して、天気情報、ニュース、有名人などの質問をすると、Google Nowから結果を得ることができるようにしたいと考えていました。Google Nowとアプリとの統合

Google Nowの機能をアプリに統合する方法はありますか?

答えて

2

Voice Reorganization in Android

をチェックしてくださいあなたは以下のようにそれを実装することができます

は、音声の意図をオフに発射する責任があるボタンのクリックイベントに以下のコードを記述します。

/** 
* Instruct the app to listen for user speech input 
*/ 
private void listenToSpeech() { 
    //start the speech recognition intent passing required data 
    Intent listenIntent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); 
    //indicate package 
    listenIntent.putExtra(RecognizerIntent.EXTRA_CALLING_PACKAGE, getClass().getPackage().getName()); 
    //message to display while listening 
    listenIntent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Say a word!"); 
    //set speech model 
    listenIntent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); 
    //specify number of results to retrieve 
    listenIntent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS, 10); 
    //start listening 
    startActivityForResult(listenIntent, VR_REQUEST); 
} 

インテントがコールバックすると、私たちは表音を表示します。

/** 
* onActivityResults handles: 
* - retrieving results of speech recognition listening 
* - retrieving result of TTS data check 
*/ 
@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    //check speech recognition result 
    if (requestCode == VR_REQUEST && resultCode == RESULT_OK) 
    { 
     //store the returned word list as an ArrayList 
     ArrayList<String> suggestedWords = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS); 
     //set the retrieved list to display in the ListView using an ArrayAdapter 
     wordList.setAdapter(new ArrayAdapter<String> (this, R.layout.word, suggestedWords)); 

    //to open the result in browser 
    Intent intent = new Intent(Intent.ACTION_VIEW, 
    Uri.parse("https://www.google.co.in/?gws_rd=cr#q="+suggestedWords)); 
startActivity(intent); 
    } 
    //tss code here 
    //call superclass method 
    super.onActivityResult(requestCode, resultCode, data); 
} 
+0

GrIsHuありがとうございます。このロジックによれば、ブラウザで結果を得ることができますが、最も正確な結果を得るためにTTSを使用する方法を説明してください。たとえば、エッフェル塔の長さを尋ねると、結果はブラウザに表示されますが、音声応答にTTSを使用した結果を選択して結果を聞くことができるようにするにはどうすればいいですか? – Shashi

+0

私はあなたがいないと言っているとしようとしている? – GrIsHu

+0

AndroidデバイスのGoogle検索の音声アイコンをクリックして質問をする方法は、ほとんどの場合、結果を画面に表示するだけでなく、音声でテキストを使用して回答を伝えます。私はそれを行う方法を知りたいです、私は基本的に視覚的な結果に興味がありません、むしろ私はそれがGoogle Nowで起こる同様の方法でデバイスによって話される結果が必要です。私がまだ十分にはっきりしていないかどうか教えてください。 – Shashi

0

これまでのところ、私はあなたの要件に発見した最も近いものが

あるRecognizerIntent.ACTION_VOICE_SEARCH_HANDS_FREE

これは基本的に、Googleは今、あなたのアプリのトップ画面とバック応答起動Google Nowのような音声フィードバック

私はまだバックグラウンドで聞いていないし、TTSエンジンでスピーチに変換できるスピーチ結果やテキスト結果を得ることができませんでした。

関連する問題