Codeリーダブルコード開発補助php-cs-fixerchikurin2017.12.12Alexaを使ってスキルを作りたい!AlexaAmazon前置きお久しぶりです。最近綾波と浜風の改造が完了しまして、夕立と合わせて雷管キチ艦隊で遊んでいるちくりんです。ちなみにルルイエ鎮守府に居ます。EchoとAlexaについての紹介・概要のまとめ記事となります。ライトな記事ですので、スキルの開発については既に参考になるサイトがありますのでそちらを参照してください。Amazonの提供するスマートスピーカですが、11/9-10辺りに申請を出しました。この記事を書いている12/12時点で未だにレスポンスありません。見事なまでのKonozama組です、本当に有難うございました。社内のガジェット好き面子の中では、僕よりも1日早くリクエストした方々が12月頭にブツを手にしており、煽られる日々をおくっています(誇張)。当初スマートスピーカ自体はあまり興味がなかったのですが、スキルという形でサービスやソリューションを開発・連携する事が出来るという事を知り、面白そうなことができそうだったのでアレコレ調べてみました。やりたいのは、Alexaの音声をゆかりさんや琴葉姉妹などのVOICEROIDと置き換えることなんですが、その辺りは公式がやってくれると信じてその上で走るスキルについて触れたいと思います。ちなみにスキルの開発自体はブツが無くてもAmazonから提供されているシミュレータなどを使えば出来るようです。Macに話しかけるのも切ないので、今回に関してはAlexaやスキルについての解説や紹介を行います。Alexa概要Wikipedia曰くAmazonの開発したAIアシスタントです。AIアシスタントというと違和感ありますが、ざっくり言ってしまえば音声入力を解析して、適切なアクションを実行するだけです(だけと言ってもこの音声の認識やら意味解析が凄いわけなんですが)。詳細については今回説明しませんが、仕組みとしてはAndroidのIntentによるアプリの連携がわかりやすいかと思います。Alexaがユーザのリクエストを解析してIntentを発行。発信されたIntentに対応できるスキルがそれを受け取り、処理するという流れになります。アクションには2タイプ存在し、プリセットの定義済みアクションとユーザによって追加可能なスキルが存在します。定義済みアクションは、天気やスケジュールの確認、ニュースの読み上げ、動画や音楽のコントロールなどが該当します。音楽についてはAmazonMusicが対象プラットフォームとなるため、ホームネットワーク内のPCに存在するiTunesを操作するといった事はできないようです。AmazonMusicへのアップロードする事でAlexa経由でのコントロールが可能となりますが、250曲までと制限されているため「俺の作ったプレイリストのこの曲を再生したいんだ!」など強いこだわりがある場合は微妙かもしれません。課金することでアップロード出来る上限を変えることも出来るようです。Alexa(余談ですがAmazonMusicにはFalcom系ならほとんどありますし、モンスターハンターや世界樹、Bloodborneなどのサントラもあるので、ゲームミュージック好きもある程度楽しめるかと思います。)次はユーザが追加可能なスキルについてです。Alexaは企業や個人が開発・公開している様々なスキルを以下のサイトから追加できるようになっています。Skills今のところ日本語専用のサイトはありませんが、国内販売が決定した時点で250種類以上のスキルが公開されている様なので、専用サイトの公開も間近かもしれません。ロボスタハードウェアについて次にぼくがKonozamaされているハードウェアについて触れておきます。国内では以下の3種がラインナップされており、Alexaを利用するだけならDotを用意すれば大丈夫です。Dot:一番シンプル。Alexaとの対話用インタフェース(マイクとスピーカ)のみEcho:Dotよりもリッチなスピーカを搭載Echo+:Echoにスマート家電のコントロール機能をつけたもの調べるまで知らなかったのですが、所謂スマート家電を導入して遠隔操作を行なうためにはハブと呼ばれるハードウェアを購入する必要があるとのことです。そのハブ機能を搭載したものがEcho+となり、ハブ自体が結構良いお値段なのでもしスマート家電の導入を考えているのであればEcho+の方がお得かもしれません。その1スマートハブその2僕はワンルームのアパートに住んでいるので今のところEchoを購入する予定です。Dotでも良いかなって思いましたが、これをいじりたいと思ったきっかけが、とあるAIが出て来るゲームの所為なんですが、そのゲームの主題歌がEchoだったのでそっちをリクエストしました。Skillさてメインとなるスキルについてです。開発出来るスキルは利用するAPI毎にタイプが存在しています。公式のドキュメント曰く3つだったのですが、開発コンソールには4つ目に”ビデオスキル”が存在しており、日本語ドキュメントの”スマートホームスキルAPIにおけるエンターテイメント端末の制御”の部分がVideoスキルに該当するようです。日本語ドキュメントではリンクが死んでるのでビデオスキルに関しては英語ドキュメントを参照してください。Skillsそれぞれのスキルについて少し触れておきます。カスタムスキル一番汎用的なものがこのカスタムスキルに該当します。カスタムスキルを実行する際には、「Alexa、”スキル名称”をスタート」などと話しかけることで実行されます。スキル名称は開発者が設定することが可能ですが、Alexa自身のコントロールの関係上、スキル名称には色々制約があるので注意が必要です。人名や一般的な名詞なども不可能とのことです。以下に気になった点についてピックアップしておきます。Alexaの予約なのでムリっぽいビッグオー、ショータイムなどは可能かもしれないスマートホームスキルスマートホーム端末を制御するスキルを開発する場合はこちらになります。こちらについては、コントロールが限定されるため(照明をつける・消すなど)、カスタムスキルほど複雑な設定は不要なようです。コントロール対象となるデバイス毎に対応するワードを設定する必要があるので、端末がたくさんある場合などは少々手こずるかもしれません。フラッシュブリーフィングスキルAlexaのニュースの読み上げ機能に対応したコンテンツを提供する場合に必要になるのがフラッシュブリーフィングスキルになります。ニュースコンテンツのテキスト読み上げだけでなく、画像や動画についてはAlexaのモバイルアプリを導入してる端末への配信などもこちらで行なうようです。ビデオスキルこのスキルではAlexaを経由して対応するAV機器やクラウドに接続できるTVデバイスのコントロールが出来るそうです。再生や停止などの操作はもちろんですが、コンテンツの提供に重点が置かれているようで、このスキルによって提供されるコンテンツをAlexaが把握し、ユーザの視聴履歴などの情報を加味して適切なコンテンツをチョイスしたりしてくれるそうです。動画コンテンツ提供者の利用を想定しているので一般的なユーザがこのスキルを開発ことは少なそうです。さいごにいかがでしたでしょうか?今回はAlexaとスキルの概要止まりでしたが、次回はカスタムスキルの開発について掘り下げた内容をお送りしたいと思います。想像以上に端末が届かないので若干テンション下がり気味ですが、引き続きよろしくお願いします。Skillschikurin多少道草を食っていたため、3年遅れの2014年新卒ですが無害です。Web系と思いきや、いつの間にかAndroidに関わることになりました。Android初心者ですがご容赦を。US私たち”アライドアーキテクツのエンジニア”は”世界をよりよく変えたい”という想いを強く持ちながらWebサービスを創っています。”日本発、世界的なWebサービスを創る”ことをエンジニアチームは本気で考え、毎日チャレンジしています。