ABCABC Tech Catalog
研究開発

BOCCO emo APIsを利用してBOCCO emoを発話させてみた

BOCCO emo APIsの利用

※以下の内容は2023年2月時点の情報のため最新の情報については以下を参考にしてください。

BOCCO emo APIs | ユカイ工学が開発・提供する法人向けサービス
自社プロダクトや既存システムとの連携で、業務効率化やマーケティング支援に「BOCCOemo」のロボティクス技術を活用いただけるようになりました。「BOCCOemoAPIs」なら、家庭向けからパブリックシーンでの活用まで幅広いサービスに対応できます。
biz.ux-xu.com

BOCCO emoとは?

まだスマートスピーカーが家庭に普及していなかった2015年に、スマホを持たない子供と親とのコミュニケーションツールとして、前身であるBOCCOが誕生。

その後、2021年にデザインだけでなく、感情表現と機能デザインもアップデートしたBOCCO emoが誕生。

ストーリー|BOCCO emo 照れたり、そわそわしたり、ムッとしたり。どこか懐かしい未来のファミリーロボット(ボッコ エモ)
ロボットが人と人をつなぐ存在に。専用アプリで声と文字でメッセージのやりとりが可能。4種類のセンサ(振動・鍵・人感・部屋)と連携してもっと便利に。パワーアップしたBOCCO emoはあなたに共感し、パーソナライズしていく機能を搭載。心地よい距離感で、長く一緒に住みたくなる家族のようなロボットです。|開発・販売 :ユカイ工学株式会社(Yukai Engineering Inc.)
bocco.me

BOCCO emo APIsについて

APIの種類について

  • Platform API

    • 「BOCCOチャンネル」と呼ばれるコンテンツや拡張機能を作成するためのAPI。

    • BOCCO emoのセンサ連携やメッセージの送受信などの標準機能に加え、音声コンテンツの配信も可能。

      file1

  • Custom Kit

    • BOCCO emoの標準機能にとらわれない、より柔軟なカスタマイズを目的としたLocal APIおよび開発キット。

    • BOCCO emoの音声合成やサウンド再生、モーション駆動などアウトプット部分の機能と、内蔵センサや外付けセンサのイベント通知などのインプット部分の機能はそのままに、頭脳にあたる部分のカスタマイズ実装が行える。

    • 受付システムや医療現場での専用機器との連携、イベントや展示会での運用など、ご要望に沿ったセミオーダーメイド開発が可能。

      file2

Platform APIについては法人有償版に先行して開発者向け(非商用)を公開中。今回はお試しということでPlatform APIを利用して、簡単な発話をさせてみました。

BOCCO emo Platform API
BOCCO emo Platform APIの管理ページです。
platform-api.bocco.me

導入方法

REST APIなのでWebアプリの開発で使用されているプログラミング言語であれば利用可能。(例:Python, Java, JavaScript, Ruby)

APIの利用回数制限は1分間あたり10回となっている。

公式ライブラリはPythonで提供されている。

link_preview

git clone してきてサンプルコードを実行しても良いが、今回は今後の汎用性も考慮して、外部ライブラリとしてインポートして利用してみる。

  1. 外部ライブラリとしてインポート(poetryを利用した場合)
poetry add emo-platform-api-sdk
  1. .env ファイルでAPIキーを事前に設定しておく(APIキーはこちらのページから確認できる)
    • ちなみにアクセストークンは1時間で有効期限切れになるため、本来定期的な取得が必要であるが、こちらのライブラリでは各メソッドの実行時にアクセストークンの有効期限が切れていた場合、自動的に更新される。(その際にAPI呼び出しが1回行われる)
EMO_PLATFORM_API_ACCESS_TOKEN = '***'
EMO_PLATFORM_API_REFRESH_TOKEN = '***'
  1. サンプルコード(Python)を作成、実行する
import os

from dotenv import load_dotenv
from emo_platform import Client, Tokens

load_dotenv(verbose=True)

# APIキーを環境変数から取得
EMO_PLATFORM_API_ACCESS_TOKEN = os.environ.get("EMO_PLATFORM_API_ACCESS_TOKEN")
EMO_PLATFORM_API_REFRESH_TOKEN = os.environ.get("EMO_PLATFORM_API_REFRESH_TOKEN")

# クライアントを初期化
client = Client(
    tokens=Tokens(
        access_token=EMO_PLATFORM_API_ACCESS_TOKEN,
        refresh_token=EMO_PLATFORM_API_REFRESH_TOKEN,
    )
)

rooms_id_list = client.get_rooms_id()
# ルームクライアントを作成
room = client.create_room_client(rooms_id_list[0])


# ルームにメッセージを送信するAPIを呼び出す関数
def send_msg(text):
    print("\n" + "=" * 20 + " room send msg " + "=" * 20)
    print(room.send_msg(text))


def main():
    text = "こんにちは"
    send_msg(text)


if __name__ == "__main__":
    main()

これで変数textに記述した言葉を発話してくれる。

まとめ

BOCCO emo APIsのうちPlatform APIを利用して、BOCCO emoに簡単な発話をさせてみました。APIには他にもほっぺたの色を変えたり、オリジナルのモーションを作成、音声メッセージの送信など様々な機能が用意されているため、色々と触ってみようと思います。

AUTHOR

中村 卓矢

朝日放送グループホールディングス株式会社 デジタル・アーキテック局 データ戦略チーム

グループ全体の統合的なデータ基盤の構築・データ分析の支援に従事している。 動画配信・テレビの視聴データ分析等で身につけた幅広い知識を活かして日々奮闘中!

WORK@ABC

技術力を培うための
環境と文化

ABCに昔から根付く「自分たちで開発する」文化を支える環境や取り組みをご紹介します
ABCについてもっと知る