家族みんなでAlexaスキルをつくった2018年の話
はじめに
この記事は Alexa Advent Calendar 2018 の 20日目の記事です。
家内制手工業みたいな話
私は東京都内でSEをやっていて、家族4人(夫(同業)・上の子(10才)・下の子(5才))で暮らしています。
今年は家族みんなで、以下の8つのAlexaスキルを作り、リリースしました!
2018-02 魚へんクイズ
2018-02 草かんむりクイズ
2018-05 今日の幕府( Qiitaに投稿した解説 )
2018-08 声に出して!お断りレッスン(VUIの「ユーザーはコマンドを声に出さなければならない」特徴をフィーチャーしてみたもの)
2018-08 サウンドプリンセス (究極のプライベート空間で使う用途の音姫リスペクトスキル)
2018-12 早口かるた
2018-12 組み合わせかるた
2018-12 モールスかるた
(AWS公式のほうから echodot を頂くなどもありました♪)
この記事では、スキルを作るときの家族での役割分担と、今月リリースした3つのスキルについて書きます。
家族でスキルをつくるときのながれ
まずは(みんなの余裕がある(重要!))休日、家族でワイワイと案を固めます。
だいたいは思いつきのようなところから出発し、おのおのが好きなことを言い合います。だいたい、
・私が提案し(Alexaの技術的制約からくる調整などをし)、
・上の子(10才)・下の子(5才)が膨らませて
・夫が方向性を(ときに、思いもよらぬほうへなど)まとめる
というような家族会議です。
特に、夫が繰り出すアイディア(スキル「きょうの幕府」の解説にも書きましたが『「幕府が ひらけるか / ひらけないか 」 のドキドキ感』は彼のアイディアです)はスキルのコアコンセプトにも据えさせてもらうことが多く、都度、尊敬の念が増すので、夫婦仲にも寄与しているなーと、今、書いていて思いました。
実装は、わたしが(子を寝かしつけたあと深夜…)行い、(数日間、朝ご飯の食卓で)家族でテストをして、リリースするようなことをしています。
こんなカジュアルに(楽しく!)テストができるのもVUIのよいところで、実際の光景はこんなかんじです。
・私が朝食作りのフライパンを振りながらスキルを口頭で起動する
・上の子が、(支度しつつ)シナリオやSoundEffectを論評してくれる
・下の子が、(ふざけつつ)厳しいテストをしてくれる
(例:Alexa「”次へ”か、”もう一度”と言ってください」
下の子「ゴリラ!」)
・夫は、スキルタイトルやリリース説明文を論評してくれる
ヘンなかるたを3本リリースした
今月、私の仕事がひと段落してきたので少し気持ちに余裕が出て、”ヘンなものが作りたい”気持ちが戻ってきました。
そこで、家族会議をして、かるたをつくることにしました。
せっかく、機械に読み札をよんでもらうのなら「人間での実現は 面倒 または 難しい」方向性のかるたにしたい。
人間による一般的な読みはこんなかんじ?……
「読み札を、1枚ずつ、適切な速度で人語(日本語)を読上げる」
…その反例を並べて出た以下のアイディアを実装しました。
1. 組み合わせかるた(Alexaが「笑う門から 出た誠」と読み上げたら(機械的に組み合わせ1000種類以上)、「笑う門には福来たる」と、「嘘から出た誠」のふたつのフダを同時に取れるか、を競う)
# このスキルのシナリオに実装するために、上の子(10才)と一緒にイロハかるたの句を分解しているところ
# あと、上の子がAWS公式のアイコンビルダーでこのスキルのアイコンを作ってくれました(自慢)
2. 早口かるた(早口言葉の読上げスピードを1~5倍速に変更できる)
3. モールス信号かるた(Alexaから発せられるモールス信号音をきいて、対応するアルファベットのフダを取れるか、を競う)
# 信号音や符号表記は、Wikipedia のリソース を利用しました。シナリオ応答はこんなかんじ…。
実装について
実装の詳細は公式のリソースを参照するのが一番なので割愛します。
(以前、Qiitaの方で投稿したものなど、よろしければご参照ください。。
[Qiita] Alexa Skills Kit SDK に関する知識ゼロからスタートして、約3週間で、審査を通って公開されたSkillを開発するのに役立ったURL )
(なお、Alexaスキルの実装は、
・「スロットモデル・インテントモデル・エンドポイント実装」の三位を一体とし、
・実装中、たとえるなら「ルービックキューブで、”あと一面”が揃わないから、全部崩してイチから揃え直す」みたいな局面が度々訪れたりする
・けれども、一体となって全てがうまく廻ったときの快感が、ほかでは得難い独特さでおもしろい
という点が、おすすめだと思います!)