Hack Day 10th anniv. に参加しました

Hack Day 10th anniv. に参加してきました。

数えると6回目の参加。そして名前の通りHack Dayは10周年!めでたい!

 

Hack Day( http://hackday.jp/ )というのは、土日の24時間(本当に12時〜翌日12時)という時間制約のもと「動く」プロダクトを開発し、その後90秒で発表するというYahoo! JAPANの名物イベントのOpen版です。 

作ったもの

「スマートスピーカー2.0」

f:id:inajob:20171211180336p:plain

 

 

Google Homeや、Amazon Echo。 今流行っているスマートスピーカーですが、これを拡張して、「話しかけてくる」、「ジェスチャーで操作できる」などの機能を追加しました。

f:id:inajob:20171211174639p:plain

これにより従来のスマートスピーカーでは実現できなかったこんなことができるようになります

 

いつものコマンドを自動実行

スマートスピーカーの履歴を分析することで、朝いつもニュースを聞いている、などの情報を取得し、さらにセンサーを用いて人の接近を認識することで、「朝、スマートスピーカーの前に来ると自動的にいつものニュースが再生される。」というものを実現できます。

 

f:id:inajob:20171211175333p:plain

会話の拡張

スマートスピーカの前で何人かで会話をしていると、「スマートスピーカーが会話内容を認識し、沈黙発生時にその内容を加味した話題をふってくれます。」

 

ジェスチャーでの会話キャンセル

それでもスマートスピーカーは意図しない内容を話し始めることがあります。そのような際には、「手を振るジェスチャーをすることで会話をキャンセル」できます。

 

参加メンバー

  • @kasahi 安定の仕切り役 プレイングマネージャ
  • ばりーさん そういえば深センにも一緒に行きました。
  • matsuchiさん 仕事はWebデザイナー
  • @kotauchisunsun 最近はQiitaの記事を頑張って書いてる なんでもやる系エンジニア

当日まで

前回、前々回とこのチームではぎりぎりまでネタが決まらなかった。今回は早めに決めよう!ということで、HackDayの3週間前くらいから、軽く打ち合わせを始めたにもかかわらず、、結局内容が決まったのはHackDay開催の直前となりました。

今流行りの技術である、何かが使いたいな、、ということで「スマートスピーカー」をテーマにしようという流れになってきました。

センサーが必要ということも決まっていたので、HackDay当日までにとりあえず買うだけ買っておきました。

またRaspberryPiを利用するということで、ネットワークの設定や、必要なパッケージのインストールなど、会場のWifiで実行すると時間がかかりそうなものについても準備をしました。

(このあたりHackathonに慣れてきたなという感じです。)

HackDay当日

12:00から開始ということで、割とぎりぎりに会場に到着。各自自宅のGoogleHomeを持ってきたので、机の上はGoogleHomeでいっぱい。

軽い気持ちで「OK Google」というと、すべてのGoogle Homeが反応するという状態で開発をしました。今回技術的にやることはある程度決まっていたのですが、これの便利さがどういうときに発揮されるのか、どういうストーリーだと効果的に伝えられるか、というところが難しく、このあたりは@kasahiさん matsuchiさんが詰めてくれました。

 

エンジニア陣も作業分担

私はセンサーからの値を読み取り、プログラムで値を読み取り必要に応じて中央サーバーにおくるところ

ばりーさんは中央サーバーの作成

@kotauchisunsun さんはGoogleHomeに任意の言葉を話すことができる

https://github.com/noelportugal/google-home-notifier の準備と、Juliusを使った音声認識部分

苦悩の夜

センサーの一つにジェスチャーセンサーを使っていたのですが、これの制御が難しい、、

APDS9960使用光学式ジェスチャーセンサモジュールキット: 組立キット 秋月電子通商 電子部品 ネット通販

あまりむき出しにするのも格好が悪いということで、箱に小さな穴をあけて、そこからセンサーを露出させて動かそうとしていたのですが、そのような状況にするとこのセンサーが全く反応しなくなるようです。

僕ははじめRaspberryPiとの接続部分の接触が悪いのかと思い、そこを調べていたのですが、、、どうも的外れのことをしていたようです、、ハードウェアは切り分けが難しい。

 

音声認識でもオープンソース音声認識エンジン http://julius.osdn.jp/ で、なかなか思ったような認識ができずに苦労していました。

最近Google HomeやSiriは難なく日本語を理解しているように見えますが、オープンソースのライブラリでであのレベルまで作ることはまだ難しいなと感じました。

 また、Google Homeの操作履歴を泥臭くヘッドレスブラウザを使って抜き出す部分を@kasahiさんが作っていました。

HackDay二日目

今回は音声やセンサーなど、発表会場の暗い中で動かすことが不安なプロダクトとなったため、発表は映像で行おうということになったため、2日目はまずビデオ撮影から始めます。

開場の廊下を借りていわゆる「寸劇」の撮影をしました。

その後matsuchiさんが字幕を入れたり調整を始めました。

発表の後にデモもあるということで、エンジニア陣はデモ用に調整などをしていました。

 

で、発表です。

今回はやはり私たちのような「ボイスUI」を使った作品が多く、改めてスマートスピーカーの時代が来ているのだなと感じました。

今回は賞は受賞できません出た、、残念。

しかし、発表の後の展示にもちょくちょくお客さんが見に来てくれて、興味を持ってもらえたようで、方向性はそれほど間違っていなかったかなと認識することができました。

 

f:id:inajob:20171211181501p:plain

ニコニコ生放送でも高評価!

 

仕組み

f:id:inajob:20171211175935p:plain

f:id:inajob:20171211173150p:plain

 RaspberryPiに各種センサー、マイクをつないでいます。

Juliusがマイクからの入力を読み込み音声認識をしています。 

RaspberryPiとGoogleHomeをつなぐには2つの方法を使っています。1つは https://github.com/noelportugal/google-home-notifier 。これはChromecastの仕組みを応用してGoogleHomeに任意の音声ファイルをしゃべらせることのできるプログラムです。

もう一つは上の図で「スピーカー」と書いてあるように、RaspberryPiがGoogleHomeに話しかけます。こうすることでGoogleHomeのもつ便利な機能をセンサーをトリガとして実行することができます。

(早くそういうことができるAPIが開放されてほしい)

 

感想

スマートスピーカーは難しい!と感じました。プログラムから制御できることも少なく、簡単にできることはすでにみんなやってしまっているし、、、

電子工作プロダクトを24時間しばりのあるHackDayでやることも難しい!と感じました。何度か電子工作ネタでこのHackDayに出たことがあるのですが、毎回”これだけしかできなかった・・”という感じになります。

と、反省は尽きないのですが、スマートスピーカー自体は我が家でも使っており、今後もっと便利になってほしいので、今回のプロダクトを通じて多くの方に次世代のスマートスピーカーの可能性について伝えることができていればいいなと思っています。

 

画像に含まれている可能性があるもの:4人、、スマイル

過去のHackDay

(今回の参加者に配られたパーカー 歴代のHackDayのロゴがぎっしり!)

f:id:inajob:20171211175747p:plain

Hack Dayは今回で6回めで、僕は過去5回も参加しました。宣伝的にリンクを置いておきます。

 

Hack  Day 10th anniv. 全作品まとめ

 動画をみながら、全作品のまとめを作成しました。ざっとどんな作品があったか見たい方はどうぞ!時間のある方はぜひ動画もご覧ください!

scrapbox.io