Alexaのスキルを開発する ~その3~ テスト

更新履歴:
2018/05/21 Amazon Developer Consoleの画面を最新版に合わせて更新しました。

スキルの作成とLambdaでの処理が完成したのでテストしてみます。

 

アレクサ、計算開いて1プラス2

計算結果は3です。

完成!

 

…とすんなり行けばいいんでけど、中々そうはいきません。

どこで問題が起きているのか?開発環境には便利なテスト用ツールが用意されているのでそれらを駆使して調べてみたいと思います。

Amazon Developer Console側での確認

まずはAmazon Developer Consoleで調べてみます。

ログインしてダッシュボードからAlexaの画面に進みます。

Alexaのスキルの一覧が表示されたらテストしたいスキルの”編集”を選択します。

画面上部の”テスト”選択します。

画面左上のスイッチをオンにしてテストを有効にし、下のテキストボックスに”計算で一プラス二”と入力してエンターを押します。

すると画面左にLINEのような吹き出しでAlexaとの会話が表示されます。

画面右側の”スキルI/O”ではLambdaに送られたJSONが”JSON入力”に、Lambdaから帰ってきたJSONが”JSON出力”に表示されます。

Lambda側でエラーがあった場合は以下のように”スキルからの応答に問題があります。”と返事してきます。

エラーがあった場合はLambda側で修正します。エラーがなくても返ってきたデータが意図したものかは確認する必要があります。

このテストでは、正確に命令を送ることができるのが利点です。実際に話してテストする場合は誤認識する場合があるので、その可能性を排除できるのはいいと思います。あと、何度もテストする場合、話しかけるよりかはテキスト貼り付けた方が早いというのはありますね。

実機なしでテストできるのもメリットの一つです。

AWS Lambda側での確認

AWS Lambda側では入力データを貼り付けて、テストすることができます。先ほどのAmazon Developer Consoleの”スキルI/O”の”JSON入力”の内容をコピーしておきます。

Lambdaの画面で”テストイベントの選択”を開き、

”テストイベントの設定”を選択します。

イベント名を入力、ここでは”alexaCalc”と入力し、その下のボックスに先ほどコピーしたRequestの内容を貼り付けます。そして”作成”を押します。

先ほどの画面に戻るので”テスト”を押します。

すると処理が実行されて結果が表示されます。正常終了です。

失敗すると赤く表示されます。

いずれの場合も”ログ”をクリックすることでログを見れます。

プログラム中でconsole.log()しておくとその内容がログに出力されるので便利です。前回のプログラムにログを追加してみます。handlersのAddtionインテントを処理するところに追加してみました。

受けったスロットの数字2つを表示させてます。

CloudWatchからもログを見ることができます。AWSの”サービス”から”CloudWatch”を選びます。

画面左のリストから”ログ”を選択し、表示されたログの一覧からalexaCalcのログを選択します。

alexaCalcのログの一覧が表示されるので時間を頼りに見たいログを選択します。

するとログが表示されます。先ほど追加したconsole.log()もしっかり表示されてます。

先ほど貼り付けたテストデータのJSONを書き換えて色々なテストができます。

Alexaアプリ(スマホ)での確認

最後は実機で確認です。実際にEchoDotに話かけてみます。話しかけて認識された内容はスマホのAlexaアプリで確認できます。

Alexaアプリの”設定”から

”履歴”を選ぶと

話しかけた一覧が表示されます。

認識結果が正しかったか、正しくなかったかのフィードバックをAlexaアプリから送ることができます。

で、ここで一つ問題が…

”1プラス2”って言ったんですけど…

残念ながら画面の通り、何度”1プラス2”と言っても”万一プラス二”と認識されてしまいます…最初の数値が”1”の時だけ何故か頭に”万”とつけられてしまいます…で、10001と認識され、計算結果は10003と帰ってきます。

音声認識側はこちらでは何もできないのでAmazon側の改善を待つしかありません。

日本語の認識はまだまだ発展途上ですね。標準スキルの認識は素晴らしかったんですけど…こんなこともあって招待制なのかもしれません。まだオープンベータという位置づけなのかなと思います。

誤認識は残念ですが、とりあえずテストとしては完成です。まずはAlexaのスキル開発の最初の一歩を踏み出せました。