ホンネトークっていうAlexaスキルをつくったよ
最近Alexaがアツい。
新しい技術を知りたかったら、なにかつくってみるのが一番。ということでGWの石垣島休暇中に試しに「ホンネトーク」っていうスキルをつくってみた。Amazon Echo Dotは、小さくて6000円というお手頃価格。GW最終日に審査提出して2週間後の5/21にリリース完了。
(リリースから1週間ぐらいで30人ほどのユーザが使ってくれた。感謝!)
Alexa開発のだいたいの流れを理解したので、Alexaスキルの開発からリリースまでの流れがサクッと分かる20の知識をまとめてみた。意外と簡単なので、ぜひ挑戦してみて欲しい。
(ホンネ:Alexaユーザがもっと増えて欲しい笑)
ちなみに、ホンネトークってどういうスキル?
ホンネトークは、単にAlexaに向かって自分の本音をささやくと、いい感じにコメントをつぶやいてくれるストレス解消系スキル。うちの会社(=bravesoft)でやっているHONNEっていうアプリに集まってくる数百万件の本音つぶやきデータがベースになっているので、妙にリアルなコメントが返えってきたりして面白い笑。
(smartio.lifeさんが紹介記事にしてくれた・・!)
(クリックでAlexaスキルストアに移動)
Alexaの端末を持っている人は「アレクサ、ホンネトークをはじめて」と言うだけで、特にインストールなども不要ですぐ遊べるので、ぜひお試しを。
それでは、Alexaスキル開発の流れを説明していこう。
①まず、Google HomeよりもAlexaを選択
今回いちおうGoogle Homeも検討してみたところ、Alexaのほうが良さそうな感じ。
ちなみに、北米だけでもスマートスピーカーは3500万人に普及していて毎月200万台ぐらい売れている。日本ではまだピンと来ていない人が多いけど、爆発的ヒット中だ。
★スキルの数もAlexaが10倍以上 (2018年1月時点)

※ちなみにGoogle Homeではスキルじゃなくてアプリって言う。
★Alexaのほうが2年も早く発売していた。この差は大きい。
会社 | 製品 | 発売 |
Amazon | Alexa | 2014/11 |
Google Home | 2016/11 | |
Apple | HomePad | 2018/2 |
※HomePadは今のところ第三者がアプリを作れない
それと、理屈では言えないけど、商品自体にしても開発環境にしても、なんとなくAlexaのほうが洗練されてて使いやすい感じ。
このまま行けばAlexaの圧勝となりそうなところだが、最近はGoogle Homeのほうが販売ペースが逆転したというニュースもあり、先のことはよくわからない。
(家電量販店などはAmazonがライバルだからGoogle Homeを積極的に売っているのかも)
CNET Japanの記事:「Google Home」が「Amazon Echo」を抜き初の首位
また、スマートスピーカーだけでの勝負というよりAndroidやiPhone、AirPodsなどいろいろ連携したp、一概にAlexaの圧勝が続くと断言できないところが面白いところ。
まさに、スマートフォンにおけるiPhone vs Androidのような関係性になりそう。
いずれにせよ、今どちらかを選ぶとしたら、「Alexa」。
※以降の話題はAlexaのみ。
②マネタイズができない・・!
すでに日本でも、数百のスキルがリリースされているけど、残念ながら今のところ課金や広告で稼ぐことは一切できない(@2018/5時点の日本)。いま日本でスキルをリリースしている人は、趣味や実験、未来への投資が目的。
それがつい最近、2018年5月に、北米でアプリ内課金や月額課金が開始。それ以外のマネタイズ手法としては、Amazonが提供するリワード、あるいは、小売や有償サービスなどに対してAmazon Payでの支払いがある。
Amazonによるリワードはおもしろいシステムで、毎月よく使われているスキルをAmazonが集計して人気度に応じて報酬を払ってくれるというもの。ちょっとネットで調べたら、アメリカの個人プログラマーが月に数十万円の報酬を貰えている事例があるようだ。
(リワードも日本は未対応。米,英,独のみ。2018年中には日本でも開始予定とのこと)
広告に関しては、アドネットワーク的なものはNG、自社のコンテンツや、例えば再生中のラジオの中で広告が流れるみたいな感じならOK。ということは実質的にスマホのような広告売上はNG(まあ、Echoで広告音声が長々と流れるとユーザ体験も良くないかも)。
③1週間あればスキルはつくれる
Alexaの開発環境や公式ドキュメントやネットの解説記事など充実していたのもあって、ホンネトークは開発開始から審査提出まで60時間程度で完了した。
スマホアプリの開発に比べると音声UI(=VUI)は、入力も出力もシンプルなため、簡素な設計になる傾向があって、そもそもあまり開発規模が大きくならない。そもそも複雑すぎると口と耳だけに頼っているユーザもついてこれない。
(もちろん、AIを便利にする方向での研究・開発は膨大な時間がかかる)
④Alexa対応デバイスは100種類以上もある
AlexaといえばデバイスはAmazon EchoやEcho Dotsだが、実はたくさんのデバイスに対応している。Alexaの主要な処理はクラウド上でされるので音声の入出力を担当するAlexaのSDK (AndroidやiOSに対応)を搭載するだけですぐにAlexa搭載デバイスが出来上がるのだ。2018年5月現在、Wikipediaで確認するだけで100以上の対応デバイスが存在している。
最近、トヨタも2018年中に自動車へ搭載することを発表していたりと、続々と対応デバイスが増えている。個人的にはAirPodsが進化してAlexaが呼び出せるようになったら面白いなと思う。
⑤Alexaスキルの開発環境が便利!
Alexaのスキルの開発やデバッグはWEBサイトの「Alexaコンソール」からできる。これがとっても便利。UI/UXが直感的に使いやすくて、すぐにスイスイ使えるようになる。

(Alexaコンソール画面)
AppleよりWEBが上手で、Googleより顧客志向な、Amazonの強みがしっかりと発揮されている。
⑥サーバ環境はAWSのLambdaでカンタン
Alexaスキルの開発には基本的にサーバが必要。サーバはLambdaっていうAWSの1サービスを使う。そして開発言語はNode.js。サーバについても開発言語についても他の選択肢もあるけど、この推奨環境がやっぱり簡単で参照できるドキュメントも多いのでオススメ。
(システム構成図。一番右が自分で用意したサーバ)
Lambdaっていうのはカンタンに言うと簡易WEBサーバ環境っていう感じで、管理画面で簡単な設定&プログラムの入力だけで、すぐにWEBサービスがつくれてお手軽。自分でサーバをセットアップする手間が省けるし、開発に便利な機能がいろいろついている。
(AWS Lambdaの管理画面)

デバイス(Echo)もサーバ(AWS)もAmazonということで、連携もカンタンだし問題も起きにくい感じ。このあたりAppleに近いものを感じる。
⑦Echo実機での動作確認まで一瞬!
自分のAmazonアカウントでEchoを設定してAlexaコンソールでサンプルの会話を設定したら、そのままEcho実機でその会話が実演できた。実機での動作確認までハヤい!(1,2時間)
今までいろいろなデバイスで開発してきたけど、これほど実機での動作確認がサクッとできるのは新しい。その理由は、Amazonのアカウントで何から何まで統一管理しているのと、クラウドベースなので実機にプログラムを転送したりなどの手間が無いからだ。(たとえばスマホの場合は証明書がどうしたとかアプリを実機用にビルドして転送とか、いろいろ面倒。)


⑧Alexa Skill Kit in Node.jsでお手軽プログラミング
Alexa Skill KitとはAlexaとの通信処理をやってくれるSDKのこと。(開発言語はNode.js、Java、Python、C#、GOなどから選べる)
一番良く使われているのはNode.jsで、特に理由がなければNode.jsがオススメ。Node.jsの特徴を超カンタンに言うと、「javascriptでお手軽に書けて、大量アクセスに強い」っていう感じ。javascriptはJavaやPHPなどの言語の経験があれば習得はカンタン。
ちなみにAlexaの公式ドキュメントも丁寧で充実している。
ソースの雰囲気はこういう感じ

⑨ビルド&デプロイがちょっと面倒
Alexaの開発環境は使いやすいけど、唯一ちょっと残念だったのがLambdaへのビルドとデプロイの方法。これはAlexaというよりLambdaの問題だけど、開発プロジェクトが10MBを超えたら、ローカル環境でzip圧縮→一括アップロードの必要あり。そのためソース編集→ビルド→アップ→動作検証まで、回線が遅い離島でやったら1分程度、東京でやったら10秒程度かかってしまう。そのうちファイルが大きくとも管理画面でプログラム入力できるようになるはずなので期待。
ローカルのMACからshellでデプロイ

⑩7秒タイムアウトルールに注意
気をつけたいのが、7秒タイムアウトルールだ。alexaからlambdaに問い合わせがあって、7秒間以内に応答をしないと、強制タイムアウトでエラーになってしまう。そのためにLambda側でもタイムアウトの設定で7秒にして、処理に時間を書けないようにする。
Lambdaでタイムアウト7秒に設定
たしかにユーザ側も7秒も待たされたらイライラするだろう。このあたり音声UI(=VUI)アプリの新鮮なところ。
⑪審査提出!これもらくらく
開発&テストが一段落したところで審査提出。入力する内容もスマホの時と似ていて一般的なもの。簡単に答えていたらあっという間に審査に提出することができた。手軽!
Alexaコンソールから審査提出

⑫スキルの呼び出し名が超重要。早い者勝ち!
スキル開発においてとても重要なポイントがスキルの呼び出し名。
“アレクサ 「ホンネトーク」 を開始して” の「ホンネトーク」にあたるところ。
このワードは重複が許されないので、いかに早い者勝ちで、覚えやすい一般的な単語を登録できるかが勝負。呼び出し名は2つ以上の単語を含む必要があって、もちろん商標にも抵触しないようなど最低限のルールはあるけど、割と自由に決められる。たとえば「引越し見積」とか、「お部屋探し」とか、分かりやすい呼び出し名は早い者勝ちの取り合いだと思うので、ドメイン名の争奪合戦&売買マーケットのような感じになるかもしれない。

⑬ストアでの設定項目はスマホアプリと似てる。
ストアで設定するのは、だいたい下記の項目
タイトル
アイコン
スキル説明
カテゴリ
キーワード(検索用)
チェックリスト(子供向け?広告?とか)
テスト手順説明
対象国
公開範囲(特定企業にだけ公開など)
ストア設定入力の画面
⑭審査ガイドラインもAppStoreと似てる
審査のガイドラインについても分かりやすいドキュメントが用意されている。AppStoreのガイドラインに似ているのでiPhoneアプリでリリースできそうなものはAlexaスキルとしてリリースできると考えて良さそう。
審査ガイドラインのドキュメント
⑮審査は早い!そして落ちた笑
審査提出!すると、24時間以内に結果メールが届いた。速い!
(Appleは審査に3週間もかかっていた時代があった)
リジェクトメールの抜粋
リジェクト理由を簡単にまとめると、、
1.ストアの説明文にAIが答えると書いてあるがこれがAlexaのことと誤解されるのでNG
2.ストアの説明文に商標違反の懸念があるのでNG
3.ストアの説明文に誤字があるのでNG
4.とある状況下で「ストップ」と言っても終了しないバグ
5.「やめて」と言ったときに、動作に統一感が無いバグ
6.スキルの回答に、顔文字があると正しく読まれないのでNG
7.スキルの回答に、芸能人など肖像権侵害があるのでNG
8.呼び出し名が、〜したいなどとルール外なのでNG
などなどだった。かなり丁寧に見ている印象。何度かのリジェクトを経てリリースに至ったが、提出から1〜2営業日後に審査結果が届くのでテンポは良かった。
⑯ついにリリース!
審査結果を待っていたところ、
「件名:Alexaスキル ホンネトーク 〜誰にも言えない本音が言える〜 が公開されました!」
のメールが届く。やった!
この瞬間から世界中のAlexa端末(と言っても日本語だけだけど)で、特にインストールなど必要なく自分が作ったスキルが使ってもらえるようになる。
日常業務の合間で忙しかったのもあり、最初の審査提出からリリースまで2週間もかかってしまった。(と言っても、細かい点でのリジェクトが多かったのでフルで対応してても1週間強は必要だった)
Alexaスキルストアにリリースされた
ちなみに2018/5時点でライフスタイルのスピリチュアルカテゴリには 6件しかスキルがない
⑰レポートも見やすい!
Alexaコンソールには見やすいレポート機能もある。
Alexaコンソールのレポート画面
確認できる内容は主に下記の通り。
●ユニークユーザ数
→利用した人数
●セッション数
→スキル起動された回数
●発話数
→スキル内の機能の利用回数
●インテント数
→機能別の利用回数
●リテンション率
→リピート起動数
⑱所感1:ユーザーはなにも見えなくて不安
今回はじめて対話型(VUI)プログラムをつくったけど、チャットボットとも違って目に見えない声だけのやりとりなだけに、一瞬スピーカー側が何を入ったか聞き取れないこともあれば、ユーザが話した言葉が正確に伝わっていないときもある。ユーザを不安にさせたくないので、できるだけ詳しく今の状況を説明したいけど、ながながと話しているとユーザにストレスを与えてしまったりもあるので、このあたりちょうどよいバランス感でコミュニケーションを設計する必要があって、これまでのGUIとは違った思想が必要で面白い。
⑲ 所感2:文系的な会話のセンスが大事
たとえばPCアプリ→スマホアプリに時代が写っていった時に、画面が小さくて情報量が限られる分、いかに直感的に使えるGUIを設計するかがアプリの成否を左右するほど重要になったけど、VUIとなると更にシンプル化が進んだ感じで、情報が少ない分、ひとつひとつの情報配置のセンスが問われてくる。
例えば、
「それではホンネを言ってください、ではどうぞ」
よりも
「よかったら聞かせてください。誰にも言えないホンネはなんですか?」
と聞いたほうが、より自然な回答が返ってくるだろう。
これからは、「目で見て直感的に」の時代から「耳で聞いて自然に」の時代に移り変わっていくかも知れない。そしてそれはより人に優しくなる方向だ。
エンジニアは技術だけじゃなく、シナリオライターのような文系的な会話のセンスや想像力が求められる。
⑳最後に:スマホ登場期のようなワクワク感!
まったく新しいデバイス、UI思想、生活へのインパクト、続々と参戦する個人法人、そこから生まれるニュースター。
そう、Alexaはまさに新しい時代のドアを開いた新デバイスだ。スマホ登場期のあの頃のようなビックウェーブがまたやってくるかも知れない。
もちろん、本当に便利になって生活に浸透するにはまだ時間もかかりそうだし、最終的にどこまで普及するかは未知数なところもある。それでも、「新しい面白いデバイス」であることは間違いない。
まだ先が読めない今が参入のチャンス。ということで、迷ったら挑戦!