English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

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

   今日、ネットで見つけた音声認識の例を実装してみました。個人的には面白く感じましたので、コードをここに貼り付け、皆さんに共有します:

         Androidでは、RecognizerIntentを通じて音声認識が行われますが、設定が見つからないとActivityNotFoundExceptionが投げられますので、この例外をキャッチする必要があります。また、音声認識はGoogleクラウドデータにアクセスするため、エミュレータではテストできません。したがって、モバイルのネットワークがオフラインだと音声認識が実行できません!モバイルのネットワークを必ずオンにしてください。もしモバイルが音声認識機能を持っていない場合でも、認識を有効にすることはできません!

        以下は、RecognizerIntentActivity内のコードです:

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-生成されたメソッドスタブ 
    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-生成されたメソッドスタブ 
        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-生成されたメソッドスタブ 
    //Googleから得たデータの取得をキャリバック  
    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" />       

        実行後の効果:

    

    音声ボタンをクリックして話し始めてください(この際、携帯電話のネットワークがオンになっていることを確認してください):

    

      クラウドデータを待っています。これは、私の環境では2Gのカードが非常に長い時間待っても読み込めない場合、会社に戻って会社のWiFiで試してみてください。クラウドデータが取得できれば、Toast メッセージで表示されます。

これで Android 语音识别技術の資料整理が完了しました。今後も関連する資料を追加していく予定です。皆様のこのサイトへのサポートに感謝します!

声明:この記事の内容はインターネットから取得しており、著作権者に帰属します。インターネットユーザーが自発的に貢献し、アップロードした内容であり、このサイトは所有権を持ちません。また、人工編集は行われておらず、関連する法的責任も負いません。著作権侵害が疑われる場合は、以下のメールアドレスにご連絡ください:notice#oldtoolbag.com(メールを送信する際、#を@に変更してください)で通報してください。関連する証拠を提供していただければ、侵害が確認されるとすぐに、このサイトは侵害された内容を削除します。

おすすめ