Alexa音声アシスタント特集2017年06月22日SIN(336)30この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。日本語対応も含め、最新版にリメイクされました。こちらをご参照下さい。Alexaチームによって作成されたスキル作成用のSDKです。Node.jsAlexaのSkill開発では、「SessionAttributesの扱い」「永続性」「レスポンスの組み立て」「動作のモデリング」などに多大な労力が必要ですが、このSDKを利用することで、その殆どを任せることができ、開発者は、ロジックに集中すことができるようになります。SDKの機能は、次のように列挙されています。インストールインストールは、npmコマンドで可能です。alexa-sdknode_modulesの下に、必要なモジュールが展開されますので、Lambdaへアップロードする際にzipに含まれるようにします。SDKを使用した最小限のスキルは、次のようになります。SDKは、Lambdaの起動ハンドラで受け取った、eventとcontextをそのまま渡して、インスタンス化します。最小限、Unhandledという名前のハンドラの定義が必要です。このハンドラが無いと、スキルはエラーとなってしまいます。返ってくる(だけの)スキルです。アプリケーションID実は、先のサンプルでは、ログに次のようなWarningが表示されています。Idを設定するようになっています。開発者ポータルからコピーして、そのまま貼り付けても良いのですが、通常、Lambdaの環境変数経由で指定します。SDKでは、複数の言語に応じた文字列を定義するため、resourcesというオブジェクトがあります。この形式に従えば、簡単に複数の言語に対応できるので、発声する文字列は、直接書き込まずにresourceで定義する方がいいでしょう。複数のハンドラ最低限必要なUnhandledハンドラの他にも、ハンドラを追加できます。下記の例は、AMAZON.StopIntentが来た場合のハンドラを追加しています。Utterancesで、「stop」という発話に結びつけます。テストで、AMAZON.StopIntentを送ると、新しく追加したハンドラに制御が移っていることが確認できます。ask既に気がついた方もおられるかもしれませんが、先の例の、HELLOとBYEは、異なるハンドラで処理されていました。SDKでレスポンスを返す代表的なハンドラで、会話を継続するかどうかの違いが有ります。:tellで返した場合、会話は終わりになります。これに対し、:askでは、会話は継続し、次のユーザの発話を待つ体制をとります。ステートは、handler.stateに指定し、次回のリクエストは、そのステートで動作します。ステートは、ハンドラーを生成する時に指定できます。下記のコードでは、nextHandersは、ステートが、_NEXTの時だけ動作対象になります。このスキルは、最初、ステートが空であるため、handlersのUnhandledに流れます。セットしているため、次回のリクエストは、nextHandlersに向かいます。}});この様に、ステートごとにハンドルが指定できるため、たとえば、よく使用されるAMAZON.YesIntentやAMAZON.NoIntentでも、その状況に応じて、使い分けが可能になります。handler.stateに入れた文字列は、SessionAttributeに格納され、次のリクエストでその値を受け取っています。一連の流れを書いてみるハンドラ・ステート・リソースなど、主要な事項について、理解できたので、ここで簡単なスキルを作ってみます。サンプルは、ユーザの発話内容に関係なく、FirstステージとSecondステージをスイッチし、ストップと発話すると終了します。動作している様子は、下記のとおりです。基本的な動きを確認してみました。ask以外にも、多くの便利なハンドラが用意されています。次回は、そのあたりも纏められればと考えています。3,362,202CX事業本部の平内です。最近は、音声で操作するアプリの開発を担当させて頂いてます。リモート】クラスメソッドの会社説明会を開催しますクラスメソッドでは、AWS・AI・ビッグデータ・モバイルなどの技術職や営業のメンバーとして一緒にお仕事をする仲間を大募集しています。#cmdevio新型コロナウイルスの感染拡大を受け、本イベントを延期させていただくことになりました(開催時期未定)。お申し込みいただいた皆様には大変申し訳ございませんが、何卒ご理解いただけますようよろしくお願いいたします。AWSについてライトに色んな情報交換をしましょう。カフェ店長のオカノです。今日はオフィスに用があるので、通勤ラッシュを避けて出社しました。この子は新メンバーのさめくんです。在宅勤務が推奨されているのでオフィスが閑散としており、すこしさみしそうです。本が出ていたので読んでみたところよかったので紹介させていただきます。使いたいときの注意点を書きました。新井成一64最近Sphinxつかってドキュメントを書いてるのですがなかなかイケています。臼田佳祐295ワークフロー自動化OSSのn8nをAWS環境で建てて検証してみました。非常に期待できるサービスです。Fargateの勉強をしています。使ってみたい方は参考にしてください。洋介255SnowflakeがAWSの東京リージョン上で稼働するようになりました。データを日本に置けます。芳賀健232こんにちは!猫様の忠実なるしもべ、芳賀健です。Tokyoで開催されました。カフェ店長のオカノです。クラスメソッド株式会社が運営するAWS・iOS・HTML5に関する技術情報サイトです。