観客の動きに基づいて選曲をするシステムを設計・開発した話
はじめに
みなさんこんにちは、ソフトウェアエンジニアのなかゆうです。近年、AIやロボット技術の発展は私たちの想像を超えるスピードで進んでいます。例えば、ロボット分野で昨今注目を集めている、テスラ社の人型ロボット「Optimus」は、工場での単純なピック&プレース作業から一歩進み、視覚情報を解析し、最適な動作をリアルタイムに判断する技術が導入されてきています。ほかにも自動運転、介護支援、家庭用ロボットなど、さまざまな分野で人間のパートナーとして活躍するロボットたちが、これから当たり前のように活躍する時代になってくると考えています。
今回は、こうした技術の進展を背景に、昨年参画した 「観客の動きや感情に応じて最適な音楽を選曲するシステム」 をロボット向けに設計・実装を行ったプロジェクトことについて書かせていただきます。このプロジェクトは合同会社DJ Roboticsでのプロジェクトになります。
実際このシステムはインドで例年開催されている「IIT BOMBAY TECHFEST 2024」の実演で一部使用されました。
背景:なぜ「動き・感情×音楽」なのか?
音楽は、人間の動きや気分ととても密接な関係があります。例えば、走っている時にスローテンポの曲が流れたら、少し違和感がありますよね。逆に、元気がない朝に明るいBGMが流れてきたら、不思議と気持ちが前向きになることも。このように、音楽は 「今この瞬間の自分」 に深く影響する存在です。
そこで注目したのが 「ユーザーの動きや感情に応じて音楽を変える」 というアプローチです。もしロボットがこの機能を持てば、人間の空気を読みながら、その場にふさわしい演出ができるようになります。単なる音楽再生機ではなく、共感力を持った存在になれるということです。
たとえばライブでの演出ロボットだけでなく、以下のようなシーンが考えられます:
- 家庭用ロボットによる家の中で心地よく過ごすためのサポート(BGM自動調整)
- フィットネス中の心拍数やフォームに応じて、テンポやジャンルを切り替えるBGMコーチ
- 混雑状況や人の流れ、時間帯に応じて、その場に最適なBGMや照明の雰囲気演出を行うシステム
システム概要:観客の“感情”を読み取り、音楽を変える
このプロジェクトでは、観客の動きや感情をセンサーやカメラで取得し、その情報に基づいて最適な楽曲をリアルタイムに選曲する仕組みを構築しました。
ここで重要なのは、選曲システムが単に音楽を切り替えるだけでなく、その出力を受けてロボットが能動的に 空気を読む ように振る舞えるという点です。つまり、ロボットがその場の雰囲気や盛り上がりに応じて、自らの表現(動き、照明、ジェスチャー)を調整できるようになることで、より自然で一体感のあるライブ演出が可能になります。
具体的には、以下のような構成になっています。
🎯 構成要素
映像入力(カメラ):観客の動き・表情をリアルタイムでキャプチャ
感情解析AI:OpenPoseやYOLO、表情認識モデルを使って、「楽しんでいる/退屈している/興奮している」など「観客の盛り上がり度」を数値化
音楽選曲エンジン:テンポ・ジャンル・雰囲気タグを持つ楽曲リストの中から、状況に最もマッチする曲を選定する
ロボット演出モジュール:選ばれた曲に合わせて、ロボットのLEDが光る/踊る/ジェスチャーする
ざっくりとしたシステムのフローチャート
※赤枠の部分が選曲システムになります。
🧩選曲システムv1のシーケンス図
まず、User(観客) の行動や感情に関するデータ(例:姿勢、表情、声援、動きなど)が、Data Collection Module(データ収集モジュール)に送信されます。これはカメラやマイクなどからのリアルタイムなストリームです。
データ収集モジュールが取得した情報は、Data Analysis Module(解析モジュール) に渡され、
OpenPoseやYOLO、表情認識モデルを使って、「どれくらい楽しんでいるか」「どれくらい盛り上がっているか」などを数値化します。
その後、解析結果が Song Selection Algorithm(選曲アルゴリズム) に送られ、現在の盛り上がり度や雰囲気に応じた最適な曲を選出しますが、その際、選曲アルゴリズムは楽曲データベースに問い合わせを行い、テンポやジャンル、雰囲気タグなどに基づいて楽曲候補を取得するようにしています。
観客が音楽にどのように反応したか(再び動きが活発になったかなど)も観測され、Feedback Interpretation Module(フィードバック解釈モジュール) がその反応を分析します。その結果が再び 選曲アルゴリズム に送られ、場合によっては曲を切り替えるなどの 再選曲 が行われます。
選ばれた楽曲は User(観客) に向けて再生され、この時点で、ロボットがその曲に合わせてLEDを光らせたり、身体を動かして踊ったりすることで、演出が始まるようにしています。
見てもらったらわかる通り、このシステムは、Closed-Loop Recommender System(閉ループ型推薦システム) の設計思想に基づいており、ユーザーの反応(動き・表情・盛り上がり度)を逐次取り込みながら、次の選曲・演出にリアルタイムで反映する仕組みを実現しています。v1でのシステム構成はあえてシンプルに保ち、処理の即時性と拡張性の両立を図っています。そのため構成はシンプルですが、ライブでのパフォーマンスや、今後の開発における効果は大きいと考えました。
技術的な工夫ポイント
🔄 リアルタイム性
ライブは一瞬一瞬が勝負なので、処理の遅延が大きいと、場の盛り上がりとロボットの反応がずれてしまい、むしろ逆効果になります。そのため、画像処理・選曲・制御までのパイプラインを最小限の遅延でつなぐことにこだわりました。
🧠 シンプルなルールに基づく素早い選曲
選曲システムv1では、観客の興奮度スコア(例えば、ジャンプ・笑顔・手の上げ率など)を単純なルールで集計しつつ、直前に再生した曲や観客の反応ログ、時間帯・演出の流れといったコンテキストも考慮して、よりその場らしくシンプルな条件による選曲を行えるように努めました。
🎙️思考性マイクなどでノイズを除去
指向性マイクを用いることで、観客の歓声・笑い声・どよめきなどを周囲のノイズから分離し、より正確に入力データとして活用できるようにしました。このような入力デバイスの選定なども注力した部分になります。
実際に開発・お披露目してみて
構想当初は、なんとなく「盛り上がっている=bpmが高い曲」と浅い考えを抱いていたですが、実際の現場ではもう少し繊細な配慮が必要でした。音楽ジャンルによる盛り上がりや雰囲気に違いがあることや、観客が疲れてきているときのケースではどのbpmが適切なのか?、ライブでの観客の声と楽曲音が重なる場合の音響解析に調整が必要など、考えれば考えるほど、やればやるほど課題が続々とでてきました。
課題
Transformerベースの選曲AIはコンテキストの理解力に優れており、複雑な状況にも柔軟に対応できる一方で、推論時間が数秒かかるケースもあるため、ライブのような即時性が求められる場面では導入に課題がありました。そのため当時は、軽量なルールベースの選曲ロジックで構成し、シンプルかつ即応的な動作を優先しました。今後のモデルは、より多くの条件や文脈にも対応しつつ、高い選曲精度と自然なパフォーマンス制御を両立するために、Transformerのような高度な推論モデルを現場に耐える形で統合していくことに期待しています。
さいごに
以上、観客の感情に応じて音楽をリアルタイムに選曲し、ロボットが演出を行うシステムの開発についてご紹介しました。
技術的にはまだまだ発展途上の部分もありますが、空気を読むロボットというテーマのもと、実験的でありながらも多くの学びが得られたプロジェクトでした。
今後はより洗練された感情認識モデルや高速な推薦システムの導入、また、実際のイベント現場での長時間運用に耐えうる安定性や拡張性の確保など、さらなるチャレンジが待っています。
この取り組みが、ほんのささやかでも、AIやロボットが人と一緒に共創できる未来につながるヒントになれば幸いです。最後までお読みいただき、ありがとうございました!
Discussion