Sebastien_Sample - YUKAI/codama-doc-r0 GitHub Wiki
codamaを取り付けたRaspberryPiはNTTドコモが提供するドコモAIエージェントAPIを利用して音声による対話を実装することが可能です。
まず、以下の設定ガイドを参照し、I2S接続でのcodamaのセットアップ、ウェイクアップワードの作成を終わらせてください。
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
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
ここではAIエージェントを利用する上で最小限のエージェントを作成していきます。
- Agentcraftにアクセスし、お手持ちのGoogleアカウントやdアカウントでログインします。
- 新規エージェントを作成し、その後「新規トピック」を選択します。
- 以下のように入力していきます。トピック名、セクション名はなんでもかまいません。このエージェントは「こんにちは」と話しかけると「お名前をどうぞ」と返答し、名前を言うと「XXさんですね。よろしくおねがいします」と答える設定になっています。名前の部分を抽出して
#username
という変数に代入しています。入力を終えたら保存してください。
- 画面右下の青いアイコンからエージェントのテストができます。上の設定ができていれば以下のように動作します。
サンプルプログラムは、codamaでウェイク・アップ・ワードを検出すると、AIエージェントとの対話モードを開始し、エージェントから返答が来ると、ウェイク・アップ・ワードを待つというプログラムとなっています。
codamaはウェイク・アップ・ワードを検出するとGPIOの27をHIGHに設定します。また、AIエージェントは音声入力をON/OFFする機能を備えており、それらを用いてウェイク・アップ・ワードの検出と対話を実現しています。
- 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.py
のDEVICE_TOKEN=
の後を置き換えます。
- プログラムの実行と終了
以下のコマンドを実行し、プログラムを起動します。ウェイク・アップ・ワードを検出するとコンソールに detected wake-up-word
と表示されます。その後、AIエージェントと対話をしてください。プログラムの終了はctrl-C
で行います。
$ python3 main.py
うまく反応が返ってきたらAIエージェント側の設定をいろいろ試してみましょう。AIエージェントのドキュメントサイトやAIエージェントのPythonのSDKを参考にしてください。
上記コマンド実行時に
UDS:Signature Expired(40102)
というエラーが発生する場合は device_tokenを設定する からやり直してください。