残念ながらまだ招待が届かず、購入できておりません。(上記ムービーは友達のものを借りて撮影しました)きっと、まだまだそういう人も多いと思いんじゃないでしょうか。エレクトロニクスこの商品を含むブログを見るそんなあなたに朗報です。日本語のAlexaスキルを作って試せる方法を紹介します。実際にスキルを作ってみてから購入を検討したり、商品が届くまでにスキルを作ってみたりする際に活用頂ければ幸いです。時間があるときに下記のリンクを読んだほうが参考になります。本エントリーでは、本当に触りの部分だけを最速で試すことを目的としているからです。Echoの実機がなくとも、シミュレータで挙動の確認ができるので実機は必須でありません。本当はAWSも必須ではないのですが、開発の手間が変わってくるので、本エントリーではAWSをつかった開発方法を紹介します。事前に覚えておいたほうが良い用語まずは、認識を合わせるために基本的な用語を説明します。EchoAmazonが作ったスマートスピーカー。2017年通年で世界で2,400万台売れると予想されているすごいやつ。執筆時では、選ばれし者のみが購入できる状況。(招待メールが来ないと買えない)AlexaAIアシスタントの名前。Echoに搭載されている。iPhoneでいうところのSiriと思って頂ければ。AlexaスキルiPhoneでいうところのiPhoneアプリ。Echoで動くプログラムのようなもの。Alexaアプリと表現すると、違うもの(AmazonEchoのAlexaを設定するためのアプリ)になるので注意。次に、スキル開発にでてくる基本的な用語を説明します。起動ワードAlexaに指令を出す前に必要な呼びかけ。シミュレータで試すときには不必要。選ばれし者(実機を買えた人)は本体設定で、「アレクサ」「アマゾン」「コンピュータ」「エコー」から選択可能。「エコー」も選択可能ということを選ばれし者に教えていただきました。追記]スキルの呼び出し名スキルを呼び出すときの呼び方。スキル名と異なっていてもOK。インテントユーザーの音声によるリクエストを満たすアクション。メソッドのようなものだと思って頂ければ。スロットインテントに渡す引数。(今回は登場せず)サンプル発話インテントを呼び出すためのフレーズ。1つのインテントに複数のサンプル発話を登録可能。僕の頭の中では、「発話」の部分に「フレーズ」とルビを振って、「さんぷるふれーず」と音にしています。SSML音声合成マークアップ言語。今回はSDKをつかってサンプルを作るので、特に意識しなくてもOK。今後、もっと難しいことをやりたくなった場合はSSMLの書き方を調べてみると良いです。上記のようなイメージを持っていれば問題ないのですが、もっと正確な情報を知りたい方はこちらのページをご確認ください。developer.amazon.comそして、なんとなく図にすると、こんな感じです。Alexaは起動ワードからサンプル発話までを一気に言えるところがすごいですね。スマートスピーカーに特化したAIといったところでしょうか。起動ワードを言わずに「サンプル発話」だけで処理を実行するようにすることもできます。(今回作成するサンプルでは対応してません)今回作るもの上記のおみくじを作ってみても良いんですが、ちょっと変化球で、という感じで起動できるスキルを作ってみたいと思います。<アクション>https://developer.amazon.com/ja/docs/custom-skills/understanding-how-users-invoke-custom-skills.htmlと、色々あるのですが、「開いて」という呼び出し方を最大限に活かしたスキルと言えるでしょう。何の役にもたちませんが、まあサンプルなので良いでしょう。イメージ図にすると、こんな感じです。本体が音声をJSONにしているのかは定かではないですが、Lambdaには音声をテキストにしたJSONが送られてきます。後の調査で音声をサーバに送り、サーバからLambdaにJSONを送っているらしいということがわかりました。EchoはただのI/Oで、処理自体はすべてLambdaファンクションで行います。Echoから動作させることができますし、実機がなくともシミュレータで動作させることができるようになります。作るでは、いよいよここからは実際に手を動かしていきましょう。僕は、マットでマックスなフロントエンドエンジニアなのでAWSのアカウントすら持っていなかったのですが、AWS自体の契約も簡単にできましたし、開発も言語がNode.jsだったこともあり、驚くほどあっという間に作ることができました。)にアクセスして、左上の「サービス」からLambdaを選択し、「関数を作成」をクリックしましょう。僕は、記念すべきはじめてのLambdaファンクションでした。(AWSもこのためにつかいはじめました)以前はリージョンを「バージニア北部」にしないといけなかったようなの記憶がありますが、いまは普通に「東京リージョン」で開発しても問題ありませんでした。今回は「alexa-skill-kit-sdk-factskill」の「設計図」をつかってさくっと作りましょう。設計図一覧に「alexa」とかでフィルターを掛けると簡単に見つかります。名前をつけたり、ロールを選んだりする名前をつけたり、ロールを選んだりして、一旦関数を作成します。この時点ではコードは設計図通りのものでOKです。Kit」に設定します。コードを編集するLambdaは、この画面上でコードを編集することもできますし、コードを圧縮し、Zip形式でアップロードすることもできます。今回はそんなに長くないコードなので、このままインラインで書いてしまいましょう。内容も、Node.jsが読める人であれば全然難しいことは無いと思います。今回は日本語のみ対応します。"またひらいて、てをうって、そのてをうえに。"このスキルは、むすんでひらくスキルです。"スキルを終了します。実行};ちょっとだけ、コードを解説します。基本的にはexports.handlerで関数をひとつエクスポートしているだけです。起動した時、今回で言うと、「アレクサ、むすんでを起動して」とかで実行される予定の内容。(Amazon開発者ポータル側で設定予定)AMAZON.HelpIntentは「ヘルプ」とかで実行される内容。AMAZON.CancelIntentは「キャンセル」とかで実行される内容。AMAZON.StopIntentは「ストップ」とかで実行される内容。「サンプル発話」を登録すること無く使用することができます。今回はデモ用なので問題ありませんが、スキルを公開しようとすると、AMAZON.HelpIntent、AMAZON.CancelIntent、AMAZON.StopIntentの3つは必須なようです。まとまっているので、本格的な開発を考えている人は時間があるときに一度目を通してみることをおすすめします。developer.amazon.comまた、HandClapIntentを例に、読み上げの部分を説明します。本体の言語のANSER_MESSAGEが入るので、日本語環境下では、speechOutputに、またひらいて、てをうって、そのてをうえに。":tell"だと応答後終了、":ask"だと応答後待受状態になります}という感じです。機会音声での読み上げであればSSMLを意識しなくとも、読み上げたい内容をStringで渡せばOKです。LambdaのARN(Amazonリソースネーム)を覚えておくスクリーンショット上では消していますが、右上に表示されているarnから始まる文字列は、Lambdaとスキルを紐付ける際に必要となるのでメモしておきましょう。>」ボタンを押しましょう。新しいスキルを作る右上の「新しいスキルを追加する」ボタンを押します。むすんでで、グローバフィールドはすべて「いいえ」と回答しました。「スキルの呼び出し名」はここで設定します。対話モデルを入力ここで、インテントとサンプル発話を結びつけます。]}と、標準ビルトインインテントを含めて、使用するインテントの一覧を記載しています。今回はスロットをつかっていないので、単純にインテント名を記載しただけです。手を打って結んでという感じで、HandClapIntentに対するサンプル発話を記載しました。「デフォルト」の部分に、先程メモしていた、Lambdaのarn(Amazonリソースネーム)の文字列を入力します。シミュレータで試すここまで終われば、シミュレータ上で実行できます。手を動かす如何としては30分あればお釣りが来るのですが、文章にするととても長くなってしまいました。「むすんでひらいてを呼び出す」ボタンを押してみましょう。すると、、、やったー。エラーなく、JSONが返ってくることが確認できました。右下の「聞く」ボタンを押すと、音声を再生することもできます。これが、実機において「アレクサ、むすんでひらいててをうってむすんで」と呼びかけたときと、だいたい同じ挙動となります。"1.0"}サービスレスポンスはこんな感じです。ひらいて、てをうって、そのてをうえに。ひらいて、てをうって、そのてをうえに。WatchからLambdaのログを確認してみましょう。ちなみに、サンプル発話に登録していなくても、「ヘルプ」「キャンセル」「ストップ」も認識できます。実機で試す折角、「アレクサ、むすんでひらいててをうってむすんで」というセリフを設計したにも関わらず、シミュレータでは「てをうってむすんで」のレスポンスとしての結果としてしか表示できません。Testingから自分自身をテスターとして登録することで実機に反映しています。おもったことiPhoneアプリが作れるようになったときに、Appleが公開した、iOSヒューマンインターフェイスガイドラインは非常に完成度が高く、iOSディベロッパーに限らずタッチディスプレイでのコンテンツを制作する為の指南書としてつかわれたりしていました。Interface)の指南書としてつかえる内容だと思うので、VUIを作りたいと思っている人は、是非とも読んでみてほしいです。デザインプロセスの部分は大変参考になります。Guideおわりにいかがだったでしょうか。実際に試してみて、面白そうだったらドキュメントを読むという流れの第一歩として活用頂けるとうれしいです。一緒にスマートスピーカーを盛り上げていきましょう!smartspeaker.kayac.comwww.kayac.com現場からは以上です。明日は、hashtさんによる「経済のなりたちやイノベーションの根源のおはなし」です。画面写真をクリックするとサンプルのWebGLビルドに飛びます。...2019-08-30地味にヤバい、シェーダ変数の精度について画面写真をクリックするとサンプルのWebGLビルドに飛びます。...2019-06-18スマホ実機でデバグ用のhttpサーバを動かしてみるこんにちは。この記事では、スマホ実機でhttp...2019-06-17AudioClipなしで音が鳴る動的波形生成こんにちは。〜懐かしのパレット〜こんにちは。(1)月別アーカイブ検索スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。