プログラミング:「日曜日はプログラミングの日」液晶対応スキルなど

Google Home及び互換機ユーザーの方へ

おはようございます!!

昨日日曜日プログラミングの日でした。

今回も、少しだけ書かせていただきます。

液晶対応スキル作成の話

初心者には無謀ではありますが、引き続き頑張ってます。

音声認識をしくじった際にエラーで止まってしまう現象

前回も書きました、デバッグ中に出てくる嫌なヤツがコレ↓ですね。


実は、過去に同じ現象がありました。(既に半年経ってるのにビックリ!)

なかなか手をつけられなかった「プログラミング」。今日は6/17までの報告です。

・・が、あの時と違って、今回はLambdaからJSONが返ってきています。


Lambdaの関数自体は正常に動いている(ように見える)のに、Alexaに返ってきた途端に終わってしまうんですね。

ログを見ると、こんなエラーが出てました。


相変わらず(ちょっとググったぐらいでは)ログの見方がわかりませんので、何が問題なのかさっぱり理解できません。
片っ端からconsole.logを突っ込もうにも、問題のIntent以外には飛んでこないので、意味がわからず、困り果てました。

・・・がようやく原因がわかりました。

IntentでのSlot値の取り方が間違っていて内部的にエラーが出ていたようです。
Slotにある単語を発話している分には普通に動いてたので、全く気づきませんでした。

これを修正したことで、変な発話を受け取った場合でも正常に動作するようになりました。

完成までの試行錯誤

それはもう、ネット中探し回って勉強させていただきました。
特に大事だったのが、これら2つですね。

★ 日本語版 Echo Spot に対応したスキルの作り方

最初何も考えずにEchoSpotで動いて満足していたのですが、Echo Dotでやってみたら思いっきりエラーで落ちてしまいました。
きちんとディスプレイ付機種を判断させて動作を切り替える必要があるんですね。

この記事をなんとか解釈して動くようになりました。
実は、Alexa道場の畠中先生の記事なのですが、私のような初心者には理解が・・・で、かなり苦しみました。

★ Alexa ディスプレイ端末対応時にセッションをクローズする時の注意点

以前、セミナー清野さんから「忘れちゃだめよ!」って言われてたので入れました。
ただ、当初から入れなくても普通に動作してShouldEndSessionがtrueで返ってきてました。
私の環境(EchoSpot)は、そのままでもよかったのか?それとも??

そもそも上の畠中先生の記事には何も触れられてませんし、絶対に必要なのかがよくわかりません。
この辺、大御所の方にお聞きしたいのですが・・・

呼び出し名とサンプルフレーズを一致される必要があるという話

このツイートの話です。興味のある方はリンクも読んでいただけると嬉しいです。

これがなぜ必要か?はよくわかりません。

表示する漢字が違えば意味が異なるのに、
言葉にしてしまうと同じ単語になってしまう、んですね。

本国では「呼び出し名とサンプルフレーズは一致すること」とあるのかもしれませんが、これをそのまま日本語で守ろうとすると、今後は固有名詞を使う場合問題が出てくるように感じます。

もともと本国では問題にならなかった日本語独特の問題かもしれません。
審査されてる方も不思議に思っておられるのではないかと・・・

・・・で、現在再々審査中です。

以上です。

いろいろ教えていただいた方に感謝いたします。(ペコリ)

細かくいろいろ書こうと思うと、まったく時間が足りません。
ブログを書いているだけで1日が終わりそうです。
本来はプログラムに専念する為の日曜日なのですが・・・
(※ サイバーマンデーに気を取られていたのは内緒です)

書けなかったことは、またあらためて・・・

(おわり)

人気ブログランキング

↓ この記事よかったよ!!という方はクリックお願いいたします。

人気ブログランキング

ブログ村

↓ この記事よかったよ!!という方はクリックお願いいたします。
ブログランキング・にほんブログ村へ
にほんブログ村

シェアする

  • このエントリーをはてなブックマークに追加

フォローする