Sebastien_Sample - YUKAI/codama-doc-r0 GitHub Wiki

AI Agentを利用したサンプルプログラムの実行

codamaを取り付けたRaspberryPiはNTTドコモが提供するドコモAIエージェントAPIを利用して音声による対話を実装することが可能です。

まず、以下の設定ガイドを参照し、I2S接続でのcodamaのセットアップ、ウェイクアップワードの作成を終わらせてください。

  1. Raspberry Piを設定する
  2. codamaをRaspberry Piに取り付け、設定する
  3. ウェイク・アップ・ワードの作成、動作確認をする

1. スピーカーの取り付け

codamaのボードには、音声出力するための、スピーカー端子(AUX)とスピーカ出力が備え付けられています。いずれかに、スピーカーを取り付けます。

スピーカーが動作可能かを確認するには以下のコマンドを実行します。Raspberry Piでは、デフォルトで音声出力は有効になっています。

$ aplay -l
**** ハードウェアデバイス PLAYBACK のリスト ****
カード 0: sndrpisimplecar [snd_rpi_simple_card], デバイス 0: simple-card_codec_link snd-soc-dummy-dai-0 []
  サブデバイス: 1/1
  サブデバイス #0: subdevice #0

2. Raspberry Pi上の環境構築

AIエージェントと連携するライブラリの動作に必要なものをインストールします。

$ sudo apt install pulseaudio

ライブラリをインストールします。

$ pip3 install --user https://github.com/docomoDeveloperSupport/speak-python-sdk/releases/download/v1.16.2/speak-1.16.2-cp37-cp37m-linux_armv7l. whl

サンプルプログラムを用意し、動作に必要なものをインストールします。

$ git clone -b trial https://github.com/docomoDeveloperSupport/speak-python-sample.git
$ pip3 install pyuv

3. AIエージェント側の準備

ここではAIエージェントを利用する上で最小限のエージェントを作成していきます。

  1. Agentcraftにアクセスし、お手持ちのGoogleアカウントやdアカウントでログインします。


  1. 新規エージェントを作成し、その後「新規トピック」を選択します。


  1. 以下のように入力していきます。トピック名、セクション名はなんでもかまいません。このエージェントは「こんにちは」と話しかけると「お名前をどうぞ」と返答し、名前を言うと「XXさんですね。よろしくおねがいします」と答える設定になっています。名前の部分を抽出して#usernameという変数に代入しています。入力を終えたら保存してください。


  1. 画面右下の青いアイコンからエージェントのテストができます。上の設定ができていれば以下のように動作します。

4. サンプルプログラムの実行

サンプルプログラムは、codamaでウェイク・アップ・ワードを検出すると、AIエージェントとの対話モードを開始し、エージェントから返答が来ると、ウェイク・アップ・ワードを待つというプログラムとなっています。

codamaはウェイク・アップ・ワードを検出するとGPIOの27をHIGHに設定します。また、AIエージェントは音声入力をON/OFFする機能を備えており、それらを用いてウェイク・アップ・ワードの検出と対話を実現しています。

  1. device_tokenを設定する

Raspberry Piのブラウザ上でAgentcraftを開いている場合、以下のように「設定」を選択したあと「デバイスを追加」を選択し、発行されたデバイストークンをコピーします。

またサンプルプログラムからデバイストークンを取得する方法もあります。まず上の画像内のクライアントシークレットをコピーしてspeak-python-sample/GetTrialDeviceToken.pyを開き、CLIENT_SECRET=の後を置き換えます。

そしてこのコードを実行し、出力結果からデバイストークンをコピーします。

$ python3 GetTrialDeviceToken.py
URL[https://api-agentcraft.sebastien.ai/devices]
SAVE ./.trial_device_id : XXXXXXXX-XXXX-XXXX-XXXX- XXXXXXXX
URL[https://api-agentcraft.sebastien.ai/devices/token]
SAVE ./.trial_device_token : XXXXXXXX-XXXX-XXXX-XXXX- XXXXXXXX
SAVE ./.trial_refresh_token : XXXXXXXX-XXXX-XXXX-XXXX- XXXXXXXX

以上どちらかの方法でコピーしたデバイストークンでcodama-doc-r0/sebastien/example/main.pyDEVICE_TOKEN=の後を置き換えます。



  1. プログラムの実行と終了

以下のコマンドを実行し、プログラムを起動します。ウェイク・アップ・ワードを検出するとコンソールに detected wake-up-word と表示されます。その後、AIエージェントと対話をしてください。プログラムの終了はctrl-Cで行います。

$ python3 main.py

うまく反応が返ってきたらAIエージェント側の設定をいろいろ試してみましょう。AIエージェントのドキュメントサイトAIエージェントのPythonのSDKを参考にしてください。

補足)エラーメッセージ発生時の対処(Device Token の取り直し)

上記コマンド実行時に

UDS:Signature Expired(40102)

というエラーが発生する場合は device_tokenを設定する からやり直してください。

⚠️ **GitHub.com Fallback** ⚠️