皆さんAlexaを使ってますか?
天気を聞いたり、タイマーを使ったり、各社が出している「スキル」を使用することで、様々なことが可能です。
実はAlexaをしゃべらせることができるスキルって簡単に作れるの知っていましたか?
今回はAlexaを自由にしゃべらせる「カスタムスキル」の作り方について画像付きで説明します。
Alexaとは
AlexaとはAmazonが出している音声アシスタントサービスの名称です。
「Amazon Echo」などのスマートスピーカーはマイクとスピーカーとインターネットに接続する能力を持っており、
音声データをクラウドとやり取りすることで、しゃべったりします。
スキルとは
スキルとは、Alexaサービス上で動作する「アプリ」のようなものです。
iPhoneがApp Storeからアプリをインストールして、いろいろ便利になるように、
Alexaもスキルを使うことでさらに便利になります!
そしてアプリ開発者がいるように、「スキルの開発者」もいる訳です。
Alexaは簡単に言うと以下のようなシステムで動作しています。
人がしゃべった音声データがAlexaクラウドに飛んでいき、テキスト変換され、テキストを解釈し、スキルを起動します。
スキルで「インテント(意図)」を判断し、そのインテントに対してLambda(AWSのサービス)で処理を行いレスポンスを返します。
開発者の作成部分は以下の通りです。
スキル作成手順
今回作るスキルの概要
今回はただただおじさんの生活をのぞけるというスキルを作ろうと思います。
「今なにしているの」と聞くと、おじさんが今何をしているのか返してくれます。
スキルの作成
さてまずは以下の開発者コンソールにアクセスしてください。
Amazon開発者ポータル
右上のログインボタンを押します。
Amazonのアカウントでログインが求められます。
「Alexa」ボタンを押します。
「Alexaスキルの開発を始める」をクリックします。
「スキル開発を始める」をクリックします。
「スキルの作成」をクリックします。
スキル名と言語を選択します。
「カスタム」を選択し、「Alexa-Hosted」を選択します。
本来はAWSなどを自分で契約しないといけないのですが、「Alexa-Hosted」を無料で使わせてもらえます。
pythonかNode.jsか言語を選べます。
自分の得意なほうで、初心者の方はNode.jsのほうが何となくとっつきやすいかも。
「スキルの作成」をクリックします。
インテントの作成
インテントは会話の意図を設定する部分です。
インテントをどのように設定するかというと、サンプル発話というものを登録します。
インテントにサンプル発話を登録することで、Alexaはユーザーの発話をインテントとしてとらえることができるようになります。
最終的にはこのインテントがLambdaに飛んでいくわけです。
インテントの「追加」ボタンをクリックします。
インテント名を設定します。
おじさんの状態を確認するインテント「CheckState」を作ります。
サンプル発話を登録していきます。
モデルの保存とビルドをします。
ここで、サンプル発話とインテントが登録されAlexaがサンプル発話を学習してくれます。
サンプル発話はあくまで「サンプル」なので、完全一致の発話でなくてもインテントに誘導してくれます。
モデルのビルドはAlexaにその音声処理のモデルを学習させて認識できるようにする、という側面があります。
lambdaの作成
実際に処理を行うLambdaを設定していきます。
「コードエディタ」をクリックします。
自動でテンプレートのコードが作成されています。
既存のコードの以下の部分を書き換えていきます。
「ハローインテント」の関数を丸々コピペして「CheckState」インテントに書き換えます。
以下の部分を書き換えて、CheckStateインテントに対応します。
今回はしゃべる言葉をランダムで作成する関数を用意して、SpeakOutputに入れます。
最後に今回作成したCheckState用のハンドラーを下の関数に登録しておきます。
最後にデプロイを行います。
テストする
最後は実際に動かしてみましょう。
テストボタンをクリックします。
テスト画面の「開発中」をクリックします。
そうすると、PCのブラウザ上で確認ができるようになります。
入力欄にテキストを打つと、実際に発話しているのと同じように処理されます。
おお、無事に起動の文言が反映されていますね。
「どうしているの」と聞いてみましょう。
おじさんは部下と飲みに行っているみたいですね。
もう一回。
今度はカップラーメンを食べているみたいですね。
ちゃんとランダムでいろいろしゃべってくれます。
これは実際に自分のAlexaでもしゃべるようになっています。
開発中なので、自分のアカウントが紐づいているAlexaならしゃべってくれますが、
他の人のAlexaではしゃべりません。
実際に他の人にもつかってもらいたい場合は、「公開」を実施しなくてはいけません。
※また挑戦してみようと思います。
まとめ
今回はAlexaでカスタムスキルを作成する方法を紹介しました。
簡単に作成できるので、アイディアがある人は挑戦してみてはいかがでしょうか。
スマホアプリはもうかなりレッドオーシャンなので、スキルの世界ならまだまた戦えるかもしれません。
APIなどを使ったりすれば、しゃべるだけでなくほかのサービスとの接続も可能なので、いろいろ作成してみてください。