アプリで対話型インターフェースを実現するための最新技術を紹介します。AppleのAPIとAmazon Lexのような他社の技術による音声認識を見てみましょう。また、音声再生における別なストラテジーについても紹介します。さらに、アプリで対話型インターフェースを構築するにあたってのベストプラクティスについてもお話します。
iOS / Swift における対話型インターフェースの作成
ウェンディと申します。対話型インターフェースをiOSで作る
少し自己紹介です。5年、Pinterestでやっています。対話型インターフェースプロジェクトを幾つかやっていますが、学んだことを共有したいと思います
対話型インターフェースがあります。タイピングしてやり取りするチャットボットもあります。音声インターフェースをはなします。
なぜエキサイティングか
祖父母を訪ねましたが、おじいちゃんおばあちゃんの世代でiPadなどを使うのま不可能、でも対話型インターフェースなら可能。
面倒なことはソフトウェアがやってくれてユーザーが意識しなくて良いのがよい
実例を見てみましょう
Alexaなどです。シャンプーをもう一度頼んで、ということができる。
音楽再生
ピザオーダー
我々のアプリに同統合できるでしょうか
音声認識を行っていく方法何十とあるでしょう。
Speech Recognition API AmazonLex...
どれを使うべきか Speech Recognition APIはSiriのバック。
サーバー側で認識が行われる。
1時間1000リクエストは殆どのケースで十分だと思います
事前録音されたものを使うことができます。
オーディオファイルがあります。SpeechRecognizerをイニシャライズします。 APIが使えるか確認します。isAvailable
recognitionTaskで結果が得られる
isFinalで成功したか分かる。
ライブ音源でも似たような形。
音声が入るとともに認識作業が進んでいる。
そしてエンジンをストップ売る。
third partyエンジンもみていきます
Alexaがよいとか、Googleが抜いたとか、いろいろ言われていて、どれがWinnerというのがまだ無いですが
これらは一定無料で、そこから課金が始まります。
Appleで住むならそちらを使ったほうが良い。
Lex
ハンズフリーなレシピを作りたかった。 見る時に手を使わずに指示したい、前後のステップに異動したい。インテントでコントロールされる。SpeechRecognitionの1段上のレイヤーにある
NextStepIntentを作る
Next Step 次、 what's next 次は?
のように。
次のステップに行きましょうというのを、具体的にマッチしていなくてもLexが判断できるようにします。
Slotを構成してみたいと思います。ピザの注文の時はトッピングや住所屋は時間をユーザーに聞く。
認識したあとは、アプリケーションの方でロジックを作る
ステップに2つのフレーズがあります
右上でビルドできます。テストしましょう
これが期待どおりに動いているのでサーバー側でiOSのコードをここから作りiOS側で使います。
AppDelegate didFinishLaunchingwithOptions
これによってビジネスロジックのDictionaryをスロットします。
Lexが話している間にローディングされる
エラー処理について
インプット認識できない場合はClanification のフレーズがでます
ハングアップ後に繰り返す事ができる
音声認識APIとLexのプラス名マイナス面まとめたいと思います。まず無償である。
Lexのベネフィットは高いレベルでのものが抽象化できるという話をしました。
ユーザーに録音していることを知らせる
パスワードや医療情報を認識すべきではない