LINE DEVELOPER DAY 2017に参加してきた ~アウトラインメモ~

LINE DEVELOPER DAY 2017に参加してきました。去年は都合により参加できなくなったので初参加です。

linedevday.linecorp.com

参加したセッションのアウトラインメモと所感を残しておきます。中途半端なメモのところもありますがそこはご愛敬ということで。
また、都合により最後まで聞けなかったので最後の方のセッションは聞けていません。

なお、全セッションの資料は以下にまとめられています。

engineering.linecorp.com

※一部、私個人の解釈でメモしているものもあり、発表者の方の本来の意図とズレているものがあるかもしれませんがご了承下さい。

The Technologies in Clova

www.slideshare.net

LINEの新たなプラットフォーム戦略として、クラウド型AIプラットフォーム「Clova(クローバ) 」を開発しています。本発表では、AIプラットフォームであるClovaやスマートスピーカーWAVEについて、ビジョン、アーキテクチャについて紹介します。

内容

What is Clova

  • Cloud-based virtual assistant
    • この頭文字を取ってClova
  • 身の回りにある色々なものに搭載していきたい

History

  • プロジェクトスタートから実は1年しか経っていない
    • 2016年9月にプロジェクトスタート
    • MWC 2017で初プレゼン
    • 2017年8月にトライアルバージョン販売開始
    • 2017年秋に一般販売開始予定

Technology

  • アーキテクチャ
    • BRAIN
    • SKILL
      • 音楽再生、天気情報の読み上げなど
    • PLATFORM
      • 認証認可、ユーザープロファイルなど基盤部分
  • インターフェイス
    • CIC
      • Clova interface Connect
      • ClovaクライアントとClova接続のインターフェイス
      • SDKAPIのコレクション
      • 入力情報をClovaに送る、出力情報をClovaから受け取る
    • CEK
      • Clova Extenstion Kit
      • Clova上でアプリケーションを実行するためのAPI
      • CEKを通してSkillを呼ぶイメージ

今後の予定

  • 認識部分の強化
    • 話者認識ができるように
    • 発話以外の理解
      • 日時の理解、履歴の理解など
  • 開発環境の提供
    • 2018年を予定

所感

Clovaのこれまでの歩みと今後についてとアーキテクチャについての説明でした。

Clovaってプロジェクトスタートから1年しか経っていないということにかなり驚きました。
ハードの開発含めてこのスピード感で行うのかなりすごいですよね。開発チーム大変だったんだろうな...

WAVEの先行体験版を購入して使っていますがやはりAlexa等と比べるとまだ微妙な部分が多いのも事実です。細かいところの精度を上げるよりもまずは市場に投入して評価してもらったりテストデータを集める方が賢明と判断したのでしょう。

2018年には開発環境の提供を予定しているそうなのでそこからがClovaの本番でしょうね。開発環境の提供を楽しみに待ちたいと思います。

Gateboxのこれまでとこれから

www.slideshare.net

"次元を超えて、逢いに来る" 世界初のバーチャルホームロボット Gatebox は、その発表以来多くの反響を呼んでいます。現在初回の出荷に向けて準備が進んでいるこの製品の生い立ちと現在、そしてそれを支える技術と今後のテクニカルな展望、Clovaとの関わりについてお話をいたします。

内容

Gateboxのこれまで

  • 世界初のバーチャルホームロボット
  • 我々は機械的なロボットやスピーカーとコミュニケーションを本当にとりたいか?
    • かわいいキャラクターなら話しかけたくなるのでは?というのが開発のきっかけ
  • 2016年1月にコンセプトムービーを公開
    • 日本より海外からの反響が多かった
  • 2016年12月、1台30万円で限定300台販売
    • 売り切れた
    • 出荷はまだ
    • 今年5月に購入者にプロトタイプを体験してもらった。かなり好評だった

技術スタック

  • ソフトウエア
    • キャラはUnityで実装
    • 基盤はLinux
    • node.jsがメインでGateBoxの振る舞いを制御
    • C++音声認識や顔認識部分
  • Cloud側
    • Azure使っている。Functionsも利用
      • 元MS社員だから...

Gateboxのこれから

  • Clovaとの連携
    • スマートスピーカーはクラウド側から返ってくる音声を読み上げるだけ
    • Gateboxはそれに加えキャラクターがアクションを取らないといけない
    • 自然な振る舞いができるような音声合成をしないとキャラクターの動作が不自然になってしまうのでそのあたりの調整がキモ
  • 国際化対応
    • 海外からの反響も多いのでどう答えていくか
  • スマートフォンと本体をどう連携させるか
    • 外で起きたことをスマートフォンで検知してその出来事にもキャラが反応してくれるようにできれば

所感

Gateboxを立ち上げたきっかけとこれまでの活動、そして今後取り組もうとしていることが説明されたセッションでした。使われている技術スタックについての解説もありました。

Webの記事だけでしか情報を見たことがありませんでしたが、実際の開発者の方の話を聞くと目指している世界がはっきりと伝わってきて応援したくなりました。

音声に加えキャラクターの振る舞いの制御も考えないといけないのは非常に難しそうですがこの製品の肝となる部分だと思うのでいろいろとノウハウ知りたいですね。

また、初音ミクバージョンを初音ミクファンの方に使ってもらったときに「いつもありがとう」とGateboxに向かって話しかけていたという話はかなり興味深かったです。
相手が機械でも初音ミクという実像(たとえポリゴンであっても)があれば人間は感謝を伝えるというコミュニケーションを取ろうとするということ。考えさせられました。

Paying back technical debt - LINE Androidクライアントの事例から -

www.slideshare.net

LINE Android Client の開発は7年目に入り、サービスの拡大に伴いクライアントの実装も肥大化および複雑化してきました。このような状況下で今後も持続可能な開発を行うためには、機能実装と技術的負債の返済を同時に進める必要があります。本発表では、技術的負債を返済しやすいような環境作りとして、我々がどのような改善をしてきたかについて、コード、CI (Continuous Integration)、チームの3つに焦点を当てて紹介します。

内容

  • リファクタリングは難しい
  • 技術的負債を返済しやすい環境づくり
    • Code
      • Kotlin採用など
      • ただ入れるだけではダメ。制限するところは制限する
        • コーディング規約の整備
        • ライブラリの悪用を制限
          • 例) ReactiveXはいろいろな用途で使えてしまうのでラッパーを作って対応
    • CI
      • PRに補足情報を入れるボットを作っている
        • 自動でIssueトラッカーのリンク挿入、APK installコマンドの提示、推奨レビュアの表示など
      • Releaseブランチからtrunkブランチへのオートマージ
        • コンフリクトが起きたらLine Notifyで通知
      • Issue Tracker Police
        • PRには必ず対応するチケットがあるはず。対応するチケットがない場合はマージできないようにした
      • gradle-versions-pluginを利用してライブラリの最新バーションをチェックする
    • Team
      • 文化を変える
      • 知識や技術の共有
        • 勉強会、資料の共有

所感

LINEのAndroidアプリ開発において技術的負債を返済しやすいようにどのような環境を作ってきたのかを説明したセッションでした。

PRを扱いやすくするためのGitHub用のボットを各種自作して利用しているのが印象的でした。
特にIssue Tracker Policeが私は気に入りました。チケットとPRが必ず結びつくようになっていることを自動で徹底できるので楽。こういう仕事は人間がやるものではない。

LINEにおけるBluetoothを活用した取り組みの紹介

www.slideshare.net

スマートフォンの枠を超えたユーザ体験の実現のため、LINEではBluetoothを使ったデバイス連携サービスを提供しています。このセッションでは、LINE Beaconおよびtappiness自販機の事例をベースに、LINEがどのようにBluetoothを活用しているか、注意した点、苦労した点などをお話します。

内容

What is a LINE Beacon

  • BLE使ったBeacon
  • 事例
    • 書店においてLINEマンガと連携
      • そのまま試し読みできる
    • Tappiness
      • 自販機に搭載
      • 双方向通信を使った決済システム
        • LINE PAYで支払える
        • ポイントが貯められる
  • 開発者も利用可能
    • Beaconを検知したらWebhookを送る仕組み

アーキテクチャ

  • 最初はiBeaconやEddyStoneを利用しようとしていたが独自方式でいくことにした
    • その場所だけのサービスを実現したかったため
      • なりすましされにくい物が必要
      • iBeaconなどはUUIDの領域が決められていて独自のセキュア領域を含めることできない
  • 16bit UUIDを利用
    • Bluetooth SIGにお金を払うことで発行できる

Tappiness(自販機)について

  • Line Appがインターネット接続を仲介する
  • Web Bluetoothの仕様を参考にしている

LINE Simple Beacon

  • ラズパイやMacbookをBeaconとして利用できるものを公開した
  • 13biteのFreeのUUIDのスペースを用意
    • ここに好きなデータを載せられる

所感

LINE Beaconの概要と事例を知ることができたセッションでした。

iBeaconやEddyStoneを利用せず独自方式を採用した背景などを知ることができて面白かったです。
自販機のTappinessの仕組みも面白かったです。自販機自体には通信機能を持たせずスマートフォン経由で接続するというのはなるほどなーと思いました。

Line Simple Beaconも面白そうなので何か作ってみようかと思えました。


全体所感

運営方針が本当に素晴らしいと感じました。
参加者の快適性と自社製品のアピールがうまく混ざっていて好感を持てました。

LINEの専用アカウントを活用

  • 受付用のURL含め基本的にLINEで連絡が来る
  • 次のセッション情報や会場の案内などもいいタイミングで通知がくる
    • これがすごい便利だった
  • タイムテーブルや、会場案内図、アンケートなどが全てLINE Bot上で実装されている
    • 自社プラットフォームでできることをきちんとアピールしていて使ってみようという気にさせてくれる

情報提供の速さ

  • 資料が即時アップロードされ、セッション終了後にURLが届く
  • 公式のまとめブログをその日のうちに発信

その他運営全般

  • 会場キャパシティと参加者の数がちょうど良い
    • 混み過ぎでもなく、空き過ぎでもなくちょうどよい快適さ
    • 他のイベントだと混みすぎて部屋の移動もできないことが多いのでかなり快適に感じた
    • どう見積もっているのだろうか?
  • カフェを貸し切って休憩場所にするという方針は素晴らしい
    • 参加者、発表者の交流の場にもなっていて良かった

残念だった点

  • セッション時間がちょっと短いように感じた
    • そのせいか概要レベルのセッションが多かったように感じた
    • もう少し技術的に込み入った話があってもよかったかもしれない
  • 発表がちょっと堅苦しい感じがした
    • おそらく話すスピードとかスライドのめくり方とか細かい指示があったのではと予想
    • そのせいで本来の力が出せていない発表者もいたように感じた
    • 一定のクオリティを保つことも必要だとは思うので難しいことではあると思うが…