5

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

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

4

2 に答える 2

2

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);
}
于 2013-11-22T08:22:34.390 に答える
0

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

RecognizerIntent.ACTION_VOICE_SEARCH_HANDS_FREE

これは基本的に、アプリの上に Google Now 画面を起動し、Google Now と同じように音声フィードバックで応答します。

バックグラウンドで聞いて、TTS エンジンによって音声に変換できる音声結果またはテキスト結果を取得する方法をまだ見つけていません。

于 2016-08-11T03:47:38.777 に答える