Android音声認識技術の詳細及び実例コード


今日はネットで例を探して音声認識を実現しました。個人的にはとても面白いと思います。コードを貼り付けて皆さんと分かち合います。
         Androidでは主にRecognizer Intentを通じて音声認識を実現していますが、コードは簡単です。設定が見つからないと、異常ActivityNotFoundExceptionを投げ出してしまうので、この異常を捉える必要があります。音声認識はシミュレータではテストできません。音声認識はgoogleのクラウドデータにアクセスするため、携帯電話のネットワークが開かれていないと、音声認識ができません。携帯電話のネットワークを必ず開いてください。携帯に音声認識機能がないと、識別ができません。
        以下はRecognizer IntentActivityのコードです。

    
public class RecognizerIntentActivity extends Activity { 
 
  private Button btnReconizer; 
  private static final int VOICE_RECOGNITION_REQUEST_CODE = 1234; 
  @Override 
  protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.reconizer); 
     
    btnReconizer=(Button) this.findViewById(R.id.btnRecognizer); 
    btnReconizer.setOnClickListener(new OnClickListener() { 
       
      @Override 
      public void onClick(View v) { 
        // TODO Auto-generated method stub 
        try{ 
        //  Intent         ,     
        Intent intent=new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); 
        //               
        intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); 
        //       
        intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "    "); 
        //       
        startActivityForResult(intent, VOICE_RECOGNITION_REQUEST_CODE); 
        }catch (Exception e) { 
          // TODO: handle exception 
          e.printStackTrace(); 
          Toast.makeText(getApplicationContext(), "       ", 1).show(); 
        } 
      } 
    }); 
     
  } 
   
  @Override 
  protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    // TODO Auto-generated method stub 
    //              
    if(requestCode==VOICE_RECOGNITION_REQUEST_CODE && resultCode==RESULT_OK){ 
      //        
      ArrayList<String> results=data.getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS); 
       
      String resultString=""; 
      for(int i=0;i<results.size();i++){ 
        resultString+=results.get(i); 
      } 
      Toast.makeText(this, resultString, 1).show(); 
    } 
    super.onActivityResult(requestCode, resultCode, data); 
  } 
} 

      
        その主な原理は、音声をgoogleクラウドに送り、クラウド処理して、対応するデータに合わせてクライアントに送信することです。
          最後に忘れないでください。manifestにインターネットアクセス権限を入れてください。
<uses-permission android:name=「android.permission.INTERNET」/>       
        運転後の効果:
    
    音声を開始するボタンをクリックしてから話し始めます。
    
      雲のデータを待っていますが、これは2 Gのカードですので、長い間待ちましたが、やはり載せられません。会社に帰ったら、会社のWifiで試してみます。雲のデータを取れば、Toast方式でプリントアウトします。
以上はAndroid音声認識技術の資料を整理しました。引き続き関連資料を補充します。ありがとうございます。