アレクサのスキルは機能を拡張できて便利ですが、自作することも可能です。自作すれば、自分のほしい機能をピンポイントで利用でき、より快適にアレクサを利用できます。しかし、どうやって開発するのか、開発に費用がかかるのかなどが気になる人もいるでしょう。
本記事では、アレクサのスキルを開発する手順を解説します。サンプルのスキルを用いて開発手順を詳細に解説していくので、スキルを自作してみたい人はぜひ参考にしてみてください。
Alexaスキルを自作するなら、まずAmazon Developerアカウントに登録しよう
Alexaスキルを自作するためには、Amazon Developerアカウントの作成が必要です。Amazon Developerアカウントは、Amazonの各種サービスを開発・公開するための開発者向けアカウントのこと。Amazonの買い物で使うAmazon.co.jpのアカウントを持っている人はすぐに作成できますよ。
Amazon Develperのページにアクセスして、Amazon.co.jpのEメール・携帯電話番号とパスワードでログインしましょう。あとは表示された手順に従ってください。

なお、ログインする際に「Amazon Developerアカウントを作成」はクリックしないようにしましょう。Alexaアプリでスキルが表示されないなどの不具合につながることがあるようです。
Alexaスキルを開発する手順を解説
Amazon Developerアカウントを作成できたら、Alexaスキルの開発を始めましょう。Alexaスキルは基本的にAlexa Developerコンソールと呼ばれる環境で開発が可能です。開発のおおまかな流れは以下のとおりです。
- Alexaスキルの枠組みを作成する
- フロントエンド部分を作る
- バックエンド部分を作る
- 動作テストをする
- Echo端末で試す
ここでは、起動するたびにエシカルに関する豆知識を教えてくれるサンプルスキルを開発するとして、各手順を解説していきます。
1.Alexaスキルの枠組みを作成
まずはAlexaスキルの枠組みを作成しましょう。基本的には、案内に沿って入力・選択をするだけでOKです。
- Step.1Alexa Developer コンソールにアクセスする
まず、Alexa Developer コンソールにアクセスして、「スキルの作成」をクリックしましょう。

- Step.2スキルの名前・言語を入力する
Alexaスキルの名前・言語を設定しましょう。ここでは、スキルの名前は「エシカル図鑑」とし、ロケールは日本語にします。設定したら「次へ」をクリックします。

なお、Alexaスキルの名前はスキルを区別するためのもので、スキルを呼び出すときの名前とは別物です。もちろん、呼びかけのときの名前と同一にしてもかまいません。
- Step.3スキルの種類・モデルなどを選ぶ
次に、スキルの種類やモデルなどを選択します。ここでは、エクスペリエンスのタイプに「ゲーム&トリビア」、モデルに「カスタム」、ホスティングサービスに「Alexa-hosted(Python)」としました。


開発したいスキルにあわせたタイプ・モデルを選ぶことで、スムーズにスキルを開発できます。ホスティングサービスでは、制限があるものの無料で利用できる「Alexa-hosted」と自前のAWSリソースを使う「独自のプロビジョニング」を選べますが、通常はAlexa-hostedを選ぶとよいでしょう。なお、Alexa-hostedの場合、開発言語はNode.jsとPythonから選べます。
- Step.4テンプレートを選ぶ
次に、Alexaスキルの開発で利用するテンプレートを選択しましょう。ここでは、「豆知識スキル」を選びます。選択したら「次へ」をクリックします。

なお、コンソール上にあるテンプレートのほかにも、Gitリポジトリで公開されているスキルをインポートすることも可能です。
最後に、確認画面で「スキルを作成する」をクリックします。1分ほど待って、以下のような画面が表示されたら、枠組みの作成は完了です。

Screenshot なお、私の画面では英語で表示されていますが、皆様の画面ではおそらく日本語で記載されていると思います。
2.フロントエンドの開発
枠組みができたら、次にAlexaスキルのフロントエンドを開発しましょう。フロントエンドとは、アプリなどでユーザーが操作する部分のこと。Alexaスキルでは、どういう風に呼びかけると応答するか、のことを指します。
フロントエンドでは、まず呼び出し名(Invocation Name)を設定しましょう。Alexaスキルの呼び出し名とは、「アレクサ、〇〇(スキル名)を開いて」の〇〇の部分のことです。画面右側の呼び出し名(Invocation Name)をクリックし、希望する呼び出し名を入力しましょう。ここでは、「エシカル図鑑」と入力します。

画面左側の「インテント(Intents)」をクリックして、”GetNewFactIntent”部分を編集しましょう。基本的に、スキルが起動するときのフレーズの候補をここでは追加してきます。豆知識用テンプレートでは宇宙の豆知識に関する記載があるので、本スキル用に書き換えます。

編集が終わったら、画面上部の「Save」をクリックして保存しましょう。
3.バックエンドの開発
次に、バックエンド部分の開発に移ります。開発者コンソール上部の「コードエディタ」をクリックし、各種コードを編集しましょう。
この例では、豆知識用テンプレートを選択したので、豆知識のスキルに関するコードがすでに用意されています。ここでは、スキル起動時に読み上げる豆知識の文章を言語別に管理している”language_strings.json”というファイルを編集します。ファイルをクリックすると、中身が表示されるので、適宜編集しましょう。
この例では、日本語用に管理している部分”ja”のなかの、”SKILL_NAME”や”FACTS” に関する文章を、以下のようにエコに関する豆知識になるように編集します。ちなみに、複数の言語に対応するためには、各言語の部分を編集する必要があります。

コードエディタで編集が完了したら「保存」をクリックしたのち、「デプロイ」をクリックしましょう。正常にデプロイができたら「デプロイが完了しました」という通知が右下あたりに表示されます。
4.テスト
ひと通り開発ができたら、開発者コンソール上でテストを行います。開発者コンソール上部の「テスト」を選び、「スキルテストが有効になっているステージの部分」で「非公開」を「開発中」に変更しましょう。
Alexaシミュレータでアレクサに呼びかけるメッセージをテキストで入力すると、その反応を試すことができます。例えば、「エシカル ずかん」と入れると、以下のような応答の確認が可能です。

5.Echo端末で試す
最後に、実際のEcho端末で開発したスキルの動作を試してみましょう。まず、Alexaアプリ上でスキルが登録されているかを確認します。
Alexaアプリを起動し、画面下部の「その他」(3本線)をタップし、「スキル・ゲーム」を選びましょう。画面を下までスクロールして「マイスキル」をタップし、画面上部の「開発」をタップします。以下のように開発中のスキル一覧が表示されるはずです。

開発したスキルがあることを確認できたら、Echo端末でスキルを呼び出してみましょう。もし正しく応答してくれないときは、Alexaでアクティビティの履歴を確認してください。
Alexaスキルの開発に関するよくある質問
以下では、Alexaスキルの開発に関するよくある質問を解説します。
Alexaスキルの開発や運用に費用はかかる?
Amazon開発者コンソールの利用自体に費用はかかりません。なお、ホスティングサービスで「独自のプロビジョニング」を選択した場合は、AWSの費用がかかります。
GitHubなどで公開しているアレクサスキルのコードはある?
あります。例えば、alexa-samplesには多数のコードが公開されています。
ライセンス的に問題なければ、GitHub上のコードをテンプレート代わりに利用することも可能です。テンプレートを選択する際にGitHubのURLを指定しましょう。
ちなみに、以下の記事では、Echo端末でChatGPTを呼び出すスキルを自作する際に、GitHub上のコードを利用するケースを説明しています。利用方法が気になる人は参考にしてみてください。

