Echoのスキルを習得するためにチュートリアルの1つ(HelloWorld)を行っていて、その指示に従いました。 Service Simulatorを使用してスキルをテストしたときに、次のように入力しました
Alexa, tell Greeter to say hello
そしてそれは次のJSON応答を返しました:
{
"version": "1.0",
"response": {
"outputSpeech": {
"type": "PlainText",
"text": "Hello World!"
},
"card": {
"content": "Hello World!",
"title": "Greeter",
"type": "Simple"
},
"shouldEndSession": true
},
"sessionAttributes": {}
}
それが正しい出力だと思います。しかし、エコーでスキルをテストしてみると、Alexaは「申し訳ありませんが、あなたの質問はしませんでした」と答えます。私は歴史に進み、アレクサは私の命令を「アレクサが挨拶するように挨拶する」と解釈しました。 Alexaがスキルを認識していないようですか?
Amazon Lambdaを使用してコードを実行しているので、ログを確認したところ、上記のコマンドを発声したときにコードが実行されませんでした。
JavaScriptファイルのapp_idを自分のスキルに対応するものに置き換えました。また、Amazonスキルキットをトリガーとして使用しました。
他のチュートリアル(ChemistryFlashCardsとHistoryBuff)も試しましたが、Alexaは「それが何を意味しているのかわかりません」と答えます。
何が起こっているのかわからない!どんな指導でも大歓迎です!!
Echo/Dot/Tapデバイスでカスタムスキルを正しく呼び出すには、インタラクションモデルの言語がラムダリソースがデプロイされているリージョンと一致している必要があります。EU-West1(アイルランド)にラムダをデプロイしたため、この問題が発生しましたが、 Interactionモデルのデフォルトの言語は英語(米国)です。インタラクションモデルで、英語(イギリス)の新しい言語を追加し、インテントと発話をコピーしてから、英語の米国言語を削除し、エコードットがカスタムスキルインテントを正しく呼び出しました。
デバイスの言語と、カスタムスキルを作成するために開発者アカウントで使用している言語は同じである必要があります。デバイスが英語インドで登録されている場合は、カスタムスキルに英語インド語を追加する必要があります。
Alexaアプリの設定で言語を確認します-> Echoデバイス->言語
私は北バージニア地域(ラムダ関数用)でデフォルトのen-US言語で開発していましたが、インドをベースとしていました。 Alexaアプリで米国の住所を使ってみましたが、うまくいきませんでした。
最後に、すべての英語言語(en-IN、en-CA、en-GB、en-EU)を追加し、en-US用に作成されたモデルJSONファイルをコピーしました。それらのそれぞれを個別にビルドし、Description -> Skill Preview
それぞれの詳細。これはうまくいきました。
ほとんどの場合、Amazonエコーデバイスに設定した現在の言語と同じ言語ではないため、スキルを開くことができません。それでもうまくいかない場合は、スキルのテストを有効にしていない可能性があります。
また、スキルをまだ有効にしていない場合にすぐに有効にしたい場合は、Alexa(またはウェイクワードが何であれ)と言って、有効にします
言語設定に関連する1つの問題
https://Alexa.Amazon.in/ またはAlexaアプリを使用して、エコーデバイスの言語設定を修正します。スキルとデバイスで有効になっている言語が同じであることを確認してください。たとえば、English Indiaを使用します。
スキルを再度有効にします
https://Alexa.Amazon.in/ に移動します。デバイスがオンラインになっていることを確認します。あなたのスキルセクションでスキルを無効にします。再度有効にします。
これで問題が解決するはずです。