冒頭
仕事でiOS/Androidアプリの音声操作について調査することになったのでまとめることにした。(まだ調査中)
スマートスピーカーで音声操作が徐々に普及してきて、スマホでもそれを実現するためのツールが揃ってきた。
各社が対応していく中で対応しないわけにもいかないので調査、という流れ。
各社対応
MoneyFoward
Freee
比較表
下記のツールを使えば実現できる
iOS | Andorid | |
---|---|---|
ロック中 | SiriKit | ? |
アプリ起動中 | SFSpeechRecognizer | SpeechRecognizer |
両OSを開発しているとUI/UXの統一性の問題で使えるツールに制約が出てくる。
SiriKit
iOS12の目玉ツールで、Shortcutにも登録可能。
色々試している途中だが、簡単に実現させたいならまずは下記参照で。
方法は2通りあって、
- NSUserActivity
- Intent
のどちらかで実現できるらしい。(Intentだけしか試していない)
?(Android)
Google Assistant
Google Assistantを使おうとしたが、Googleサービスしか利用できなさそうだった。
しかもロック中に使えるかどうかは端末によりけり。(参考)
ちなみにGoogle Assistantについてはこちら
これを見るとNetflixとかサードパーティー製アプリが呼び出されてるんだけど特別なのかな?
と思ったが、調べると「Actions on Google」ってプラットフォームを使えばいいらしい。(参考)
ただ、制約上できるのかどうか。。。
特に何も実装しなくても「〇〇アプリを開いて」と言えば、候補を出してくれる(但し、候補をタッチしないといけない)
参考
IFTTT
対応させたいサービスがIFTTTに登録されていればIFTTT経由で連携可能かもしれないが、
IFTTTには対応していないのでこのやり方は不可。
SFSpeechRecognizer
サンプルがあまり見つからなかったが最小構成の丁度良い記事を見つけた
簡単に実装できたのでまずは試してみるのにおすすめ
Swiftでリアルタイム音声認識するための最小コード
環境は
- Macbook Pro 2018 (10.14)
- Xcode (10.1)
SpeechRecognizer
下記サンプルコードで実装できた
SpeechRecognizerで「メリークリスマス」を音声認識してみよう
環境は
- Macbook Pro 2018 (10.14)
- Android Studio
まとめ
アプリ内であれば簡単に音声操作させることが可能だと分かった
宿題
Androidのロック中操作方法調べる