|

2023-02-16

研究開発

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

BOCCO emoコミュニケーションロボット

BOCCO emo APIsの利用

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

https://biz.ux-xu.com/

BOCCO emoとは?

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

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

https://www.bocco.me/story/

BOCCO emo APIsについて

APIの種類について

  • Platform API

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

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

      スクリーンショット_2023-01-31_18.47.34

  • Custom Kit

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

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

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

      スクリーンショット_2023-01-31_19.01.11

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

https://platform-api.bocco.me/api-docs/#overview

導入方法

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

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

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

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には他にもほっぺたの色を変えたり、オリジナルのモーションを作成、音声メッセージの送信など様々な機能が用意されているため、色々と触ってみようと思います。

 


この記事の著者

プロフィール画像

中村 卓矢

朝日放送グループホールディングス株式会社 DX・メディアデザイン局 デジタル・メディアチーム

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