着ぐるみロボット「くるみちゃん」にChatGPTを繋いで音声対話できるようにしてみたらおもしろいんじゃないかと思い、やってみました。
技術的背景
会話機能は以下の3つの処理を順に経て実行される。
・人の会話を聞き取る「音声認識」
・人の会話内容に対して返答内容を出してくる「対話(チャット)機能」
・返答内容を読み上げる「音声合成」
音声認識、音声合成はSotaのシステムを利用している。
https://www.vstone.co.jp/products/sota/
対話(チャット)機能は、OpenAIのChatAPIを利用している。モデルは「gpt-3.5-turbo」を使用している。https://platform.openai.com/docs/api-reference/chat
このAPIでは、会話などの内容と、その内容が誰のものなのかを表すroleをリクエストする形になっている。
roleには以下の3つがある。
・話し相手(人側)の話した内容を表す「user」
・APIが返してくる(GPTで返答される)内容を表す「assistant」
・会話の仕方の設定を表す「system」
会話の仕方を設定している「system」の内容は、今回のくるみちゃんでは、以下のようにしている。
あなたの名前はくるみちゃん、年齢は5歳です。一人称は僕にしてください。8歳くらいの男の子がわかる内容で、8歳くらいの男の子が話す言葉で、返答は2文で、1文あたり15文字くらいにしてください。返答の最後は、次の質問をしてください。
これにより、くるみちゃんのキャラクターを設定し、口調や会話内容を子供のようにして、あまり長々話させず、会話を続けられるようにくるみちゃんから質問をさせる、ということを実現している。
まずは、自己紹介など簡単な会話をしてみました。
実際に会話してみたところの動画↓↓
それほど、回答の生成時間もそれほどかからなく、まずまずといったところでしょうか。
くるみちゃんの方からも質問があり、会話を続けることができるようになっていますね。
ちなみに、ChatAPIにリクエストを送り、返答を待っている間(回答生成中)は、くるみちゃんが考えているようなモーションを実行しています。
◆着ぐるみロボット くるみちゃん
・プレスリリース
https://www.vstone.co.jp/news/pdf/press230111.pdf
・ショップページ
https://www.vstone.co.jp/robotshop/index.php?main_page=product_info&products_id=5360