Alexa音声アシスタント特集2018年03月27日SIN(335)40この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。はじめにスロットが設定されたインテントでは、受け取ったスロット値を処理するわけですは、これが、必ず思い通りに取得できているとは限りません。今回は、どのような種類の誤認識が存在するかを列挙し、その対策を考えてみたいと思います。テストスキル最初に簡単なテストスキルを作成して、そのスロットへの入り具合を確認してみます。作成したテストスキルには、インテントをひとつだけ設定し、下記のようにサンプル発話を設定しました。「ホットコーヒー」、「アイスコーヒー」、「コーラ」及び、「カルピス」の4つが定義されています。認識のパターンを列挙してみます。最初に、全に思った通りにスロット値が受け取れた場合です。AMAZON.Numberには数値が入ります。カスタムスロットは、statusがER_SUCCESS_MATCHとなり、valueやidもセットされています。続いて、カスタムスロットがヒットしなかった場合です。statusは、ER_SUCCESS_NO_MATCHとなり、valueやidを取得しようにも、values自体がありません。似た言葉が認識してしまった場合、valuesが取得できますが、やはり、statusは、ER_SUCCESS_NO_MATCHとなっているので、このバターンと同じとしても大丈夫でしょう。次の例は、カスタムスロットが2種類ヒットしてしまった場合です。この場合は、少し複雑です。statusは、ER_SUCCESS_MATCHとなっているので、一瞬、マッチしているように見えますが、valuseが2つ存在し、複数の値がヒットしている事が分かります。完全一致しているかどうかの区別をするには、valuesの項目数が複数かどうかを確認するしか無いかもしれません。最後に、組み込みのタイプのスロットが誤認識してしまった場合です。(無効な値)が入っていることが分かります。先のリクエストの状況から期待している値が入っているかどうかの判断は、次の要領で良いのではないかと考えられます。組み込みスロットの値が期待値であることの確認は、以下のとおりです。slotname/valueが、適切な値であること実装例は、次のようになるでしょうか。カスタムスロットの場合カスタムスロットの値が期待値であることの確認は、以下のとおりです。ER_SUCCESS_MATCHであることresolutionsPerAuthority/valuesが1つであること実装例です。最後に今回は、スロットに期待する値が入らなかった場合の検出を行ってみました。ダイアログモデルで必須のスロットを設定しても、無効な値が入ってしまってCOMPLETEDとなるケールが多々あります。このような場合、期待する結果を得ることは難しいでしょう。ダイアログモデルでは、dialogStateがCOMPLETEDになるまでは、スロット値の書き換えが可能です。強固な実装を目指すには、今回例示したようなバリデーションを使用して、無効な値が入っている場合は、その値を消してしまい、再びユーザーに発話を促すような実装が必要なので無いでしょうか。3,356,725CX事業本部の平内です。最近は、音声で操作するアプリの開発を担当させて頂いてます。リモート】クラスメソッドの会社説明会を開催しますクラスメソッドでは、AWS・AI・ビッグデータ・モバイルなどの技術職や営業のメンバーとして一緒にお仕事をする仲間を大募集しています。#cmdevio新型コロナウイルスの感染拡大を受け、本イベントを延期させていただくことになりました(開催時期未定)。お申し込みいただいた皆様には大変申し訳ございませんが、何卒ご理解いただけますようよろしくお願いいたします。AWSについてライトに色んな情報交換をしましょう。カフェ店長のオカノです。今日はオフィスに用があるので、通勤ラッシュを避けて出社しました。この子は新メンバーのさめくんです。在宅勤務が推奨されているのでオフィスが閑散としており、すこしさみしそうです。使いたいときの注意点を書きました。本が出ていたので読んでみたところよかったので紹介させていただきます。