コンテンツにスキップ

会話型ロボットバリスタ「KUBI」と出会う

KUBIはElevenLabsの会話型AIと連携する会話型バリスタです。仕組みをご紹介します。

A robotic arm holding a can of Red Bull energy drink against a blue background.

KUBI は、会話型ロボットバリスタ兼受付ロボットとして Second Space(台湾・高雄の次世代型24時間コワーキングスペース)で活躍しています。ワークスペースの運営が完全自動化されているため、KUBIはメンバーとの最初の接点として、特別な親しみやすさを加えることがとても重要です。そのためSecond SpaceはElevenLabsの 会話型AI を選び、メンバーとの楽しく印象的なやりとりを実現しました。実際のKUBIの様子を見てみましょう。

KUBIの仕組み

KUBIは高度なマルチセンサリーアーキテクチャを採用し、人間らしいやりとりを再現します。システムはマイクロサービスアーキテクチャを基盤とし、各専門サービスが同時に動作し、リアルタイムのイベントストリームで連携します。これらのサービスは、リアルタイムAI推論による顔・物体認識、カメラによるカップ検出や状態確認、レシート印刷、入退室管理のためのセキュアな顔認証、ミルクやコーヒー豆ディスペンサーの精密制御など、さまざまなタスクを担当しています。

同時に動作している主なサービスはこちらです:

  • 環境 カメラサービス:リアルタイムAI推論(PythonのPyTorch)で顔や物体を検出します。
  • タブレット カメラサービス:ほぼ同様ですが、テーブル上のカップや異物の検出、KUBIロボットが実際にカップを持っているかなどの確認を行います。
  • レシート印刷サービス:Node+Typescriptでシンプルかつ信頼性の高い設計。RS232サーマルプリンターと連携します。
  • 決済サービス:Kotlin JVMで構築され、高い並列性と型安全性を実現。政府へのレシート報告やクレジットカード端末、暗号資産決済ゲートウェイ、オンライン決済プロバイダーとの通信を担当します。
  • ミルク&豆ディスペンサー:Arduinoによる個別の精密サービス。時間に敏感で低遅延。
  • 顔認証:入退室管理に使われるセキュアで型安全なKotlinサービス。
  • ウォータージェットサービス:使用後のミルクスチーム用ジャグを自動洗浄します(Arduino)。
  • その他にも、モバイルアプリAPIやメニュー表示など、さまざまなサービスがあります。

なぜこれほど多くのマイクロサービスを使うのか?簡単です—個別に管理でき、スケールしやすく、各タスクに最適なツールを使えるからです。

すべてをつなぐ中央のイベント駆動コア

これらすべてのマイクロサービスを調整するのが、ユーモラスな名前の中央サービス 「BigBoy」 です。これは巨大なノンブロッキングイベントプロセッサのようなものです:

BigBoyの仕組み:

  1. すべてのサービスから届くイベントを受信します。
  2. シナリオごとに発火条件をチェックします。
  3. 最適なシナリオを選択します。
  4. 再生するアクションをスケジューリングします。
1
2internal object WeatherIdleScenario: SingleTaskScenario(scenario){
3
4 importance = Importance.Medium
5 compilationTimeout = Time.ThreeSeconds
6 interruptable = false
7 exeutionExpiration = = Time.TenSeconds
8
9 override fun isEligible(event: Event, environment: Environment): Maybe<Boolean> = withEnvironment(environment) {
10 just {
11 (event is IdleEvent
12 && !triggeredInLast(40.minutes)
13 && (personPresent() || hasActiveSessions)
14 && environment.weatherService.lastReportWithin(10.minutes))
15 }
16 }
17}
18
19private val scenario = ScenarioRecipe { event, env, session ->
20
21
22 invokeOneOf(
23
24 phrase {
25 sayWith {
26 "Rainy day today, isn't it? That's why I have my little umbrella! Look!".asEnglish
27 }.withAutoGift().withAutoMotion()
28 }.given { Weather.isRaining() },
29
30 phrase {
31 sayWith {
32 "Friend, it's so cold outside! So sad for you... because you're a human. I don't really mind!".asEnglish
33 }.withAutoMotion()
34
35 sayWith {
36 "Wait, that soudned a bit rude.".asEnglish
37 }.withAutoMotion()
38
39 }.given { Weather.isCold() },
40
41 )
42
43
44}
45
46

シナリオとは?

シナリオは、ロボットの アクションイベント のためのノンブロッキングなコンパイラのようなものです。アクションイベントは通常、一連の流れの最終段階で発生し、動作や発話など物理的な効果をもたらします。たとえば、挨拶シナリオでは次のような動作が発生します:

SayEvent("Hello! Welcome!", wave.gif)
MotionEvent(HelloMotion)

LLMによるイベント生成:一部のアクションイベントはLLMによって自動生成されます。たとえば、withAutoMotion は、与えられた状況に応じて事前定義リストから最適な動作を選びます。また、withAutoGif は、LLMを使ってフレーズに最適なタグを生成します。このタグでGiphyからGIFを取得し、KUBIの顔にフレーズと一緒に表示します。

アクションイベントの同期:これらのイベントはスケジューラーを通じて流れ、発話・表情・動作が同期されます。同期によって、KUBIの発話とジェスチャーがぴったり合うようになります。

柔軟で拡張性の高い設計

面白いのは、シナリオがアクションイベント を受け取り、新たなアクションイベント を動的に発火できることです。例えば:

  • BigBoyがSayEvent(「メリークリスマス」) を検知すると、自動的に部屋のイルミネーションや特別な演出を発動できます。
  • もう一つの面白い例として、ユーザーがモバイルアプリで注文を選ぶと、すべての操作(商品クリックや決済など)がイベントに変換され、BigBoyがリアルタイムで反応できます。たとえば、ユーザーが「オーツミルクラテ」をスクロールで飛ばした場合、KUBIが「本当にオーツミルクラテはいらないんですか?すごく美味しいですよ!」と話しかけることも。

BigBoyはまさに、すべての出来事を見て把握しています。すごいですよね?

DevOpsと可観測性

ほとんどのサービスはローカルでホストされ、dockerコンテナでラップされています。コンテナ内ではSupervisorプロセス制御システムがライフサイクルを管理。エラーログはSentryで収集され、カスタム管理アプリに送られて例外やサービス・センサーのリアルタイム状況、遅延レポートなどを監視します。面白いのは、Flutterアプリの90%がAIによって自動生成されたことです。

ElevenLabsで印象的なやりとりを実現

Second SpaceはKUBIに、DeadpoolやPortalのWheatley、Apex LegendsのPathfinderをミックスした独自の個性を持たせたいと考えていました。実際にわずか15分で声をデザイン し、感情や間を加えてより人間らしい声に仕上げました。

ElevenLabsはKUBIの発話機能を2つのコアAPIで支えています:

テキスト読み上げ(TTS)

  • やりとりの約90%を担当します。
  • 事前にデザインされたシナリオで最適な雰囲気を演出します。
  • LLMで生成されたメッセージもパーソナライズ可能。高品質な音声と最高の発音で、時間に厳しくない場面に最適です。
  • 英語・中国語・スペイン語・日本語・ラトビア語(ラトビア語のDeadpoolも!)など、驚くほど自然な多言語音声を提供します。

会話モード(リアルタイム)

お客様が「ねえ、KUBI!」 と話しかけると、ElevenLabsの会話型AIが200ms で応答し、本当に人間らしいやりとりを実現します。

  • 優先事項:低遅延.
  • 応答性を重視し、音声品質を一部トレードオフしています。
  • ElevenLabsの新しいリアルタイムlanguage_detection ツールを使い、さまざまな言語を即座に自動判別します。
  • 会話型AIセッションは、メンバーが施設に入る時や「ねえ、KUBI!」と話しかけた時にオンデマンドで開始されます。

カスタム会話ツール

ElevenLabsの会話型AIをWebSocket接続で利用し、KUBIはファンクションコールも活用できます。例えば:

  • make_order:注文を認識し、イベントを直接BigBoyに送信します。
  • make_payment:決済サービスに即時通知し、クレジットカード端末で決済を開始します。

ElevenLabsの管理パネルでLLMモデルを簡単に切り替えられるため、Second Spaceは理解度や精度を最適化できます。ツールのインテント をモデルごとに認識しやすさが異なることに気づいたからです。現在はGemini 2.0 Flashを会話型AIのコアモデル、ChatGPT 4oを静的な音声生成に使っています。

KUBIの展開をさらに広げる

Second SpaceがElevenLabsに言及した最初のGitHubコミットは2023年1月にさかのぼります(多言語モデルリリース前)。早い段階でElevenLabsの品質へのこだわりを評価し、将来の多言語対応を見越したアーキテクチャを自信を持って構築しました。今では、日本や韓国など新しい市場への展開もスイッチ一つでOK—追加開発は不要です!

まとめ

マイクロサービス、リアルタイムイベント、ElevenLabsの強力な音声技術によって、KUBIは本当に生きているような存在に。コーヒーとウィットに富んだやりとりで、世界中を楽しませていきます。

ElevenLabsチームによる記事をもっと見る

ElevenLabs

最高品質のAIオーディオで制作を

無料で始める

すでにアカウントをお持ちですか? ログイン