2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Weekend Engineerのハッカソンで学んだこと等

Last updated at Posted at 2018-12-12

WE代表の渡辺大智さん主催のハッカソンに参加してきました。
久々のチーム開発で学んだことや感じたことが多かったので、記録に残そうと思います。

概要

  • オンライン参加可能のハッカソン
    参加者の内訳:オフライン11人、オンライン5人
    オンライン参加者とはDiscordでコミュニケーションをとる形式でした。
  • チームの割り振り
    Python:計4チーム、Ruby on Rails:1チーム
    私はPython 4のチームで、メンバーは全員オフライン勢&WEメンバーでした(まさかの全員内部)。
  • 必須条件
    テーマ「クリスマス」、使用技術「Watson API」
  • 開催期間と会場
    12/8(土)、12/9(日)の2日間 @渋谷のサポーターズさん

スケジュール

全体

1日目
9:30:会場のサポーターズさんに集合
9:40:知的財産権の説明、テーマやチームの割り振りの確認等
10:00:各チームで作業を開始
23:00:会場から完全に退室

2日目(最終日)
9:00:会場が使用可能に(作業開始時間はチームごとに異なる)
18:00:作業終了、成果発表のプレゼン
19:00:審査員の方々からのコメント、結果発表
19:30:懇親会
21:00:解散

チーム

1日目
10:00~12:00:アイデア出し
12:00~13:00:システムの処理フローを検討、役割分担
13:00:昼食後、各自開発開始
23:00:解散

2日目(最終日)
9:30:それぞれ作業再開
13:00:昼食
16:00:スライド作成に着手
18:00:成果発表へ

作品について

システム概要

「会話センシングによるBGM選曲」
システム図.jpg

これとは別に、以下のプログラムも実装しました。

  • 約400曲のクリスマスソングの歌詞をスクレイピングしてJSONファイルで保存する
  • その歌詞を英語に翻訳して、感情分析を行う
  • 感情分析の結果を、感情の種類別のディレクトリに保存する

実装できた部分

  • 自分の担当箇所(後述)のうち、曲を再生する部分以外全て
  • 約400曲のクリスマスソングの歌詞をスクレイピングしてJSONファイルで保存
  • Speech to Text APIの導入

間に合わなかった部分

  • pyaudioを使い、実際の会話データからテキストを抽出する部分
  • Spotify APIでの検索結果から曲を再生する部分
    再生するデバイスの指定で正常にユーザ認証されず、時間内に解決しませんでした。

自分の担当箇所

  • 日本語のテキストを英語に翻訳する部分(Language Translator API)
    感情分析が日本語に対応していなかったため、急きょ英訳の処理を追加しました。
  • 英語に翻訳された会話テキストを感情分析する部分(Tone Analyzer API)
  • 感情分析結果のデータをディレクトリ別に自動で保存する部分
  • Spotify APIを使い、会話の感情に合った曲を検索して再生する部分

良かった点

  • アイデア出しをブレインストーミングで行ったこと
    こんな感じで、各メンバーのアイデアを体系的に整理することができました。
    アイデア出し_ブレインストーミング.jpg
  • 成果発表でスライドを準備したこと
    スライドを用意してプレゼンを行ったのは私たちのチームだけでした!
  • それぞれの担当箇所の成果物をGitで共有したこと

反省点

  • 成果発表までに、プログラムを実行できる段階にまで持って行くことができなかったこと。
  • 自分の作業に集中しすぎたこと。
    メンバー同士で相談し合うことはありましたが、それでも少なかったと終わってから思いました。しつこいぐらい頻繁にメンバーのことを気にかけた方が良かった気がします。
  • 分かりやすくコードを書こうとしすぎたこと。
    2日間と時間が限られているので、最適化はとりあえず二の次にするべきでした。
  • Git管理の際、Macで必要なデータが.gitignoreに記載されていて不具合が生じたこと

結果

  • 1位:Python 2チーム
    LINE履歴から最近の仲良し度を判定するシステム
  • 3位:Python 1チーム
    LINE相手との会話カンペシステム(相手のツイートからどんなことを話したら良いかを提示してくれる)
  • 3位:Python 3チーム
    クリスマップ(クリスマスツリーの写真の豪華度を判定するシステム)
    ※最終的なゴール:Googleマップに、豪華度別のピンを置くところまで
  • 5位:Python 4チーム
    会話センシングによるBGM選曲
  • 5位:Ruby on Railsチーム
    クリスマスプレゼントのレコメンドBot

審査員の方々のコメント

  • あえて生活を不便にするようなものを作って人間と機械の上下関係を逆転させるなど、たまに発想を逆転させると面白い(のみさん)
  • テクノロジーと実世界が密に繋がってる方が、リアリティがあって良い (野原さん)

まとめ

Weekend Engineer代表の渡辺さん主催のハッカソンに参加してきました。
2日間で、会話センシングによるBGM選曲というシステムの開発に取り組ました。
時間内に完成せず結果は5位タイでしたが、役割分担やメンバーがお互いをカバーし合うことの大切さなど、結果以上に多くの学びがありました。
審査員の方々からのコメントでは、タメになるお話を伺うことができて刺激を受けました。
開発の楽しさを改めて感じた2日間でした。

主催の渡辺さん、会場提供のサポーターズさん、審査員を務めてくださったのみさん・野原さん、チームメンバーのShinさん中野さん、誠にありがとうございました!

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?