
それはすべて、SiriとGoogle Nowの良いレビュー(比較)を見たことから始まりました。 私はどちらが良いかについては議論しませんが、私は個人的にAndroid上でタブレットを持っています。 計算機を完全に音声制御で書くとしたらどうでしょう(便利でしょうか?)。 しかし、まず第一に、私は音声コントロール自体について、より正確には音声入力について少し理解する必要がありました(制御を達成する必要があります)。 さらに、Android Studioをダウンロードしたばかりで、すぐに試してみるのが待ちきれませんでした(ミニプロジェクトで)。 さあ、始めましょう。
ListViewと
Buttonのアクティビティをスローします。 ListViewでは、コマンド自体、より正確には1つのコマンドのオプションを保存し、ボタンは必要なものを丁寧に尋ねます。 はい、プログラムにはロジックがありません。その助けを借りて、実装自体を見るだけです。

マニフェストにも1つの解像度を追加します
<uses-permission android:name="android.permission.INTERNET" />
これで、プログラミングに直接アクセスできるようになりました。 「必要なコンポーネントを見つける」:
private ListView mList; private Button speakButton; public static final int VOICE_RECOGNITION_REQUEST_CODE = 1234; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); speakButton = (Button) findViewById(R.id.button); speakButton.setOnClickListener(this); mList = (ListView) findViewById(R.id.listView); }
ボタンのクリックハンドラを記述します。これは、後で説明するstartSpeak()メソッドを呼び出します。
public void onClick(View v) { startSpeak(); }
さて、ついに「水」は終わりました。 「話す」ことを始めます。
public void startSpeak() { Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
想像力を解き放ち、使用するコマンドを決定します。 最初は私自身、テトリス戦車の例で見せたいと思っていました。彼らは彼に「上」、「下」、「左」、「火」などを指示しましたが、
私はあなたに
それを難しくしました 。 ボタンの色を変更し、アプリケーションを終了し、ブラウザでページを開き、マップを開始してデバイスを再起動するコマンドを提供しました。 後者の再起動については、このコマンドは、理解されているように、ルート化されたデバイスでのみ機能します。 電話では、私は合弁会社の権利を持ち、すべてがうまく機能しますが、タブレットでは、このコマンドを単に無視します。 コマンドの記録に複雑なことは何もありません。十分なコメントがあると思います。
public void onActivityResult(int requestCode, int resultCode, Intent data){ if (requestCode == VOICE_RECOGNITION_REQUEST_CODE && resultCode == RESULT_OK){ ArrayList commandList = data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS); mList.setAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, commandList));
これは、コマンド記録ウィンドウの外観です。

美しい英語のアクセント「マップ」で発声してください。 Googleマップと呼ばれる:

「青」:

ご覧のように、リストにはすべての可能な(類似の)単語が表示され、それらから必要なものがすでに選択されています。
まあ、「フィニッシュ」で、私は魂のない(またはそうではない)マシンと話をしました。
私の短い記事が、誰かの日常生活を簡素化し、数百万人をもたらす有望なプロジェクトを作成するように(ターミネーターではなく)誰かに奨励するか、少なくとも有用であることを願っています。 がんばれ!
PS:
ドキュメントと
ソースへの便利なリンク