Android 5.0発表&スマホと連動する音声認識Android Wearアプリの作り方:Androidで動く携帯Javaアプリ作成入門(55)(2/4 ページ)
正式発表されたAndroid 5.0 Lollipop関連の話題をまとめつつ、今後需要が増えそうな音声認識/ボイスアクションの概要と、それを使ったスマートフォンと連動するアプリの作り方を解説。
「OK Google」が必須! Android Wear上で動作するアプリのボイスアクション
Android Wearには、システムとして用意されている「ボイスアクション」が備わっています。Android Wearは、常にマイクがONになっていて、「OK Google」というフレーズでボイスアクションの入力画面「Cue Card」に遷移します。
この画面で以下のフレーズを話すと、関連付けられたアプリが起動します。起動時にボイスアクションからパラメーターを渡すこともできてしまいます。
以下は、システムで用意されているボイスアクション一覧です。
名前 | フレーズ(日本語) | フレーズ(英語) | Intent |
---|---|---|---|
タクシーを呼ぶ | OK Google、タクシーを呼ぶ | "OK Google, get me a taxi" "OK Google, call me a car" |
・Action com.google.android.gms.actions.RESERVE_TAXI_RESERVATION |
メモを入力 | OK Google、メモを入力 | "OK Google, take a note" "OK Google, note to self" |
・Action android.intent.action.SEND ・Category com.google.android.voicesearch.SELF_NOTE ・Extras android.content.Intent.EXTRA_TEXT - メモの文字列を含む |
アラーム設定 | OK Google、アラーム設定 午前8時 | "OK Google, set an alarm for 8 AM" "OK Google, wake me up at 6 tomorrow" |
・Action android.intent.action.SET_ALARM ・Extras android.provider.AlarmClock.EXTRA_HOUR(アラーム時刻(時)の整数を含む) android.provider.AlarmClock.EXTRA_MINUTES - アラーム時刻(分)の整数を含む (上記二つのエクストラはオプション) |
タイマー設定 | OK Google、タイマー設定 10分 | "Ok Google, set a timer for 10 minutes" | ・Action android.intent.action.SET_TIMER ・Extras android.provider.AlarmClock.EXTRA_LENGTH(タイマーを表す1から86400の間(24時間を表す秒数)の整数) |
サイクリング開始/終了 | (不明) | "OK Google, start cycling" "OK Google, start my bike ride" "OK Google, stop cycling" |
・Action vnd.google.fitness.TRACK ・MimeType vnd.google.fitness.activity/biking ・Extras actionStatus(開始時のActiveActionStatusと終了時のCompletedActionStatusの値を含む文字列) |
ランニング開始/終了 | (不明) | "OK Google, track my run" "OK Google, start running" "OK Google, stop running" |
・Action vnd.google.fitness.TRACK ・MimeType vnd.google.fitness.activity/running ・Extras actionStatus(開始時のActiveActionStatusと終了時のCompletedActionStatusの値を含む文字列) |
トレーニング開始/終了 | (不明) | "OK Google, start a workout" "OK Google, track my workout" "OK Google, stop workout" |
・Action vnd.google.fitness.TRACK ・MimeType vnd.google.fitness.activity/other ・Extra sactionStatus(開始時のActiveActionStatusと終了時のCompletedActionStatusの値を含む文字列) |
心拍計表示 | (不明) | "OK Google, what’s my heart rate?" "OK Google, what’s my bpm?" |
・Action vnd.google.fitness.VIEW ・MimeType vnd.google.fitness.data_type または、com.google.heart_rate.bpm |
歩数計表示 | (不明) | "OK Google, how many steps have I taken?" "OK Google, what’s my step count?" |
・Action vnd.google.fitness.VIEW ・Mime Type vnd.google.fitness.data_type または、com.google.step_count.cumulative |
公式ドキュメントには英語のボイスアクションフレーズしか記載されていませんが、表示言語が日本語だと英語のボイスアクションフレーズは受け付けません。代わりに日本語のボイスアクションフレーズを話す必要がありますが、日本語を含め、各国語のボイスアクションフレーズのドキュメントはまだ公開されていないようです。
上記表の日本語フレーズは、筆者がAndroid Wearの日本語表示などから類推した動作確認済みのものですが、バージョンや機種によっては動作しない可能性があることをご了承ください。
「タクシーを呼ぶ」というボイスアクションに対応するサンプルアプリ
前述の通り、今回作成するサンプルは、「タクシーを呼ぶ」というボイスアクションに対応するアプリです。
ボイスアクションで「タクシーを呼ぶ」という特徴的なフレーズが用意されています。このアクションにデフォルトで割り当てられたアプリはありません。また、Google Play Storeにも、原稿執筆時点で対応するアプリは存在していません。
「タクシーを呼ぶ」という、国はおろか地域をも限定してしまう処理が要求されるこのボイスアクションに対応するアプリは、大規模にはなりませんが開発のハードルは高いです。従って、サンプルとして動作確認するにはうってつけと考えました。
以上が「タクシー呼ぶ」アプリをサンプルとして選定した理由です。サンプルは以下よりダウンロード可能です。
まずは、ひな型のAndroidManifest.xmlを修正
今回の「タクシーを呼ぶ」サンプルアプリは、前回のAndroid Studioで作成したひな型プロジェクトに追加・修正していく形で作成します。
AndroidManifest.xmlには、以下のようにintent-filterを追記します。
<intent-filter> <action android:name="com.google.android.gms.actions.RESERVE_TAXI_RESERVATION" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter>
「タクシーを呼ぶ」ボイスアクションに対応したアクションをAndroidManifest.xmlに記載することで、「タクシーを呼ぶ」というボイスアクションに対応したアプリとして認識され、スマートフォン側のAndroidアプリにも表示されるようになります 。
Copyright © ITmedia, Inc. All Rights Reserved.