[Android] 音声認識 RecognizerIntent

Android7

最近は「OK Google」で周知されてきた音声認識機能ですが、RecognizerIntent.ACTION_RECOGNIZE_SPEECH を使って音声認識を実装することができます。

簡単に機能を確認する例です

recongnizerintent_0ボタンタップ
recongnizerintent_1「テスト」と話しかける
recongnizerintent_2「テスト」が表示された

 

Android Studio 2.2.2
Android 7.1.1

 


RecognizerIntent.ACTION_RECOGNIZE_SPEECH

 
言語認識は、サーバーに飛ばして結果を受取ります。基本的にはネットに接続していないと使えませんが、言語認識のパッケージが端末にインストールされているのであればオフラインでも可能です。Nexus 5Xには英語でしたが入っていました。(輸入品なので)
 
Intent を使って Activity を遷移し、遷移先から結果を受け取るという仕組みです。
Actvity 画面遷移とデータ受け渡しが参考になります
 
結果は onActivityResult() で受け取りますが、いくつもの候補リストで返ってきます。ここでは順位1位のものを表示させています。
 
MainActivity.java

 

activity_main.xml

これは最低限の機能検証ですので実際のアプリに組み込むにはこの他にも色々手当をする必要はあります。