AndroidStudioで音声認識アプリを色々と試行中です。
その中で以下に挙げるソースコードがうまく動作しませんでした。
リンクを乗せますのでアドバイスお願いします。
http://kivantium.hateblo.jp/entry/2016/02/29/191901
一応、リンクにあるソースコードを添付します。
よろしくお願いします。
### MainActivity.java
package com.example.kivantium.myapplication; import android.content.Intent; import android.speech.RecognizerIntent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.MotionEvent; import android.content.ActivityNotFoundException; import android.widget.Toast; import java.util.ArrayList; public class MainActivity extends AppCompatActivity { // リクエストを識別するための変数宣言。適当な数字でよい private static final int REQUEST_CODE = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } // タッチイベントが起きたら呼ばれる関数 public boolean onTouchEvent(MotionEvent event) { // 画面から指が離れるイベントの場合のみ実行 if (event.getAction() == MotionEvent.ACTION_UP) { try { // 音声認識プロンプトを立ち上げるインテント作成 Intent intent = new Intent( RecognizerIntent.ACTION_RECOGNIZE_SPEECH); // 言語モデルをfree-form speech recognitionに設定 // web search terms用のLANGUAGE_MODEL_WEB_SEARCHにすると検索画面になる intent.putExtra( RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); // プロンプトに表示する文字を設定 intent.putExtra( RecognizerIntent.EXTRA_PROMPT, "話してください"); // インテント発行 startActivityForResult(intent, REQUEST_CODE); } catch (ActivityNotFoundException e) { // エラー表示 Toast.makeText(MainActivity.this, "ActivityNotFoundException", Toast.LENGTH_LONG).show(); } } return true; } // startActivityForResultで起動したアクティビティが終了した時に呼び出される関数 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // 音声認識結果のとき if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) { // 結果文字列リストを取得 ArrayList<String> results = data.getStringArrayListExtra( RecognizerIntent.EXTRA_RESULTS); // 取得した文字列を結合 String resultsString = ""; for (int i = 0; i < results.size(); i++) { resultsString += results.get(i)+";"; } // トーストを使って結果表示 Toast.makeText(this, resultsString, Toast.LENGTH_LONG).show(); } super.onActivityResult(requestCode, resultCode, data); } }
あなたの回答
tips
プレビュー