「Ask xxxx」なしでカスタムAlexaスキルを書く方法


18

現在、fauxmoを使用してカスタムコマンドをさまざまなデバイスに送信してオン/オフにします(たとえば、チューナーとテレビを制御するためにWiFiからIRコンバーターがあります)。これでテレビのオン/オフを切り替えることができます。

Kodi統合のセットアップもあるので、次のように言うことができます。

Alexa, Ask Kodi to set volume to 50%

しかし、私は言いたいことがあります:

Alexa, Set tuner volume to 50%
Alexa, Play Bluray

つまりAsk xxxx、リクエストの一部として必要なくデバイスを制御できるようにしたいのです。

理想的には、クラウドベースのサービス(SmartThingsまたはWink)なしでこれを実行したいです。

私はfauxmo(既存のUPNPサービスをエミュレート)で使用されるソリューションが好きですが、オン/オフ(およびHue対応パッチを使用する場合は「薄暗い」)に制限され、十分な柔軟性がありません。

回答:


11

いくつかのプロジェクトで、Alexaカスタムスキルの呼び出し名を自分で削除することを検討してきました。そして、ガイドやドキュメントを何時間も読んだ後に思いついたのは... カスタムスキルではできないことです。

したがって、ユースケースに対する最善の策は、Alexa Smart Homeとスマートホームサービスを併用することです。あなたが言ったことを知っています:

理想的には、クラウドベースのサービス(SmartThingsまたはWink)なしでこれを実行したいです。

残念ながら、Alexaで呼び出し名を持たない唯一の方法は、事前定義されたAPI(スマートホーム、リストスキル、フラッシュブリーフィング)を使用することです。

編集:しかし、あなたのユースケースはスマートホームAPI内に収まります。したがって、他のサービス(Wink、SmartThingsなど)に依存する代わりに、そのAPIを使用する独自のサービスをいつでも作成できます。


1
それができないと言っている情報源はありますか、それともあなたの研究の暗黙の結果ですか?
ヘルマー

それは暗黙的です。音声認識とNLPがどのように機能するかを考えると、後から見ると、それは合理的な主張であるはずであり、そもそもそのような研究に取り組むべきではありませんでした。特定の発話には、それが解釈されるコンテキストが必要であり、そのコンテキストは呼び出し名であるため、合理的なアサーションです。実際、ウェイクワードが存在するまさにその理由は、呼び出し名を持つことと同じです。したがって、解釈されるステートメントはコンテキストに属します(ウェイクワードは、ランダムな発話が処理されないシステム全体のコンテキストです)。
leon.valencia 16

呼び出し名を必要としない発話を行う唯一の方法は、システム全体のコンテキストを持つものです(これらはAPIです)。たとえば、Alexaがアプライアンスと相互作用すると解釈する発話は自動的にスマートホームAPI向けになります。NLPは、オン、オフ、ターンダウンなどのキーワード+アプライアンスへのコマンドのような構文を使用して発話を分類します。
leon.valencia 16

しかし、あなたは何を知っています...あなたのユースケースはスマートホームAPIに該当します。そのAPIを使用できるので、答えを追加します。
leon.valencia 16

ありがとう。スマートホームスキルについて読んでいたのですが、彼らがまだ私がやりたいことをすべてできるとは思いませんが、Amazonはより多くの機能を追加しようとしているようです。だから、フェイクモではなく、利用可能なすべてのコマンドを処理し、将来に拡張できる適切なオープンソースのスマートホームスキルに投資する価値があると思います。後世のための現在のAPIは次のとおりです
。developer.amazon.com/public/solutions/alexa/alexa

7

これで、Alexaの名前のない相互作用でこれを行うことができるはずです。

名前のないやり取りでスキルを見つけやすくするために、スキルにCanFulfillIntentRequestインターフェースを実装できます


6

lynxは既に彼の答えで詳しく述べているように、事前定義されたAPIに対処するのでない限り、呼び出し名なしで完全に進む方法はありません。しかし尋ねる私のスキルが呼び出し名を使用する唯一の方法ではありません。

開発者ページは、リクエストで呼び出し名を使用する3つの異なる方法を提供します。

「アレクサ、ジェミニの毎日の星占いを聞いて」

「アレクサ、デイリーホロスコープと話して、おうし座のホロスコープをくれ」

「アレクサ、デイリー・ホロスコープを使っておうし座のホロスコープをください」

Alexa呼び出し名のドキュメント

さらに、このページには、リクエストの接続に使用できる他の単語、呼び出し名、必須の接続単語が表示されます。したがって、独自のAlexaスキルを作成する場合は、適切な呼び出し名と、自然に聞こえるようにするための適切な要求を使用することがすべてです。

さらに良いことに、Kodi統合でBlu-rayを開始することで、エコーはすでにこれに反応するはずです。

アレクサコディとブルーレイ 再生ます

そのため、事前定義されたAPIの外部で呼び出し名を取り除くことはできませんが、音声コマンドをより自然に感じさせ、厄介なask ...の使用をスキップすることができます。


2

Alexaがデフォルトで使用しない特殊な単語を使用する場合、実際に可能です。とにかく、この方法は非常に注意が必要です。

リクエストのためにAWSを渡すのを避ける必要があります!不可能だと言う?はい、可能です。

Amazon AlexaアプリまたはAmazon Alexa Web アプリで、Amazon Alexaアカウントにログインし、->設定->履歴で、Alexaに伝えるすべてのリクエストと単語のライブページがあります。

現時点では、Webパーサーを使用して単語を取得し、この単語が必要な場合はスクリプトをトリガーできます。または、アクションとスクリプトをトリガーできるWindows専用のすばらしい小さなソフトウェアを使用できます。

ここにソフトウェアのリンク。addtopadの使用方法に関するチュートリアルについては、YouTubeで確認してください。

スクリプトを起動する場合は、ポートでリスナーをトリガーし、ソフトウェアの単語の後に特別なリクエストを送信します。私は自宅でそれを使用し、呼び出し名を言う必要がないという事実が本当に好きです。

後に、私が言ったように、あなたはどんな言葉でも、オープンのような言葉でも使うことができます。スクリプトがトリガーされますが、Alexaから「申し訳ありませんが、わかりません」というメッセージが聞こえます。

私はそれを使用し、それは完全に動作します!


それは興味深いアプローチです。
ヘルマー

そのソフトウェアを信頼する必要がありますか?私は落ち着きなります...
ショーンHoulihane

-2

このAmazonのドキュメントは正しくありませんか? https://developer.amazon.com/docs/custom-skills/understanding-how-users-invoke-custom-skills.html#invoking-a-skill-with-no-specific-request-no-intent

これは、「Alexa」と呼び出し名を言うことができると、かなり直接的に言っているようです。「Alexa、Daily Horoscopes」など。

また、カスタムスキルのオプション#3としてこのメ​​ソッドを示しています:https : //developer.amazon.com/docs/custom-skills/choose-the-invocation-name-for-a-custom-skill.html#invoking-カスタムスキル


3
ドキュメントは真実ですが、著者がここで探しているものとは思いません。たとえば、「Play Bluray」は呼び出し名ではなく、呼び出し名が指定されていないインテントです。実際にスキルを「Play Bluray」と命名しない限り(おそらくAmazonの名前のガイダンスに従って許可されません)、残念ながらこれは機能しません。
Aurora0001
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.