🎮

【Unity】ドコモAIエージェントAPI SpeakSDKのサンプルをEditor上で実行する

に公開

初めに

「SpeakSDK for Unity サンプルアプリケーション」の実行手順をまとめました。トライアルサーバ向けの手順です。
docomoDeveloperSupport/speak-unity-sample

概ね以下の記事の通りですが、少しバージョンが変わっていたので補足していきます。
ドコモAIエージェントAPIを使ってキャラクターと会話する - Qiita

環境

  • Windows 10 Home
  • Untiy 2019.3.13f1(推奨バージョンは2019.3.2f1)
  • speak-unity-sdk v1.14.4

流れ

  1. サンプルのソースコードをダウンロード
  2. SDKのダウンロードとインポート
  3. デバイスIDの取得
  4. デバイストークンの取得
  5. Unity上でデバイストークンを登録
  6. 実行

手順

以下のリポジトリをソースコード毎clone、もしくはダウンロードしてください。
https://github.com/docomoDeveloperSupport/speak-unity-sample

speak-unity-sdkの最新版をダウンロードしてください。
https://github.com/docomoDeveloperSupport/speak-unity-sdk/releases/latest

Uniyでspeak-unity-sampleを開き、先ほどのSDKをUnityプロジェクト上にインポートしてください。

次にデバイスIDを取得します。以下のページにログインをし、設定から「デバイスIDの追加」を行ってください。デバイスIDが表示されるので、メモしておいてください。
https://agentcraft.sebastien.ai/

デバイストークンを取得します。以下のページにログインをし、左上の「+」アイコンから新規デバイス登録画面を開いてください。先ほどのデバイスIDを入力し、登録してください。
https://users-v2.sebastien.ai/

サンプルの直下に入っているGetTrialDeviceToken.pyを実行する準備をします。

まずはGetTrialDeviceToken.pyを適当なエディタ(メモ帳でもOK)で開き、42行目のXXXXXXXXXXXXXXXXXXXX部分を先ほど取得したデバイスIDに書き換えて保存します。

CONFIG = {
    "trial":{
        "device_id":"XXXXXXXXXXXXXXXXXXXX",
        "uds":"https://users-v2.sebastien.ai"
    }
}

引用元:https://github.com/docomoDeveloperSupport/speak-unity-sample/blob/master/GetTrialDeviceToken.py#L40-L45

次にスクリプトを実行します。
Windowsの場合はpython3の実行環境が必要なので、こちらを参考にインストールしてください。パスを通すにチェックを入れておけば、コマンドプロンプトからコマンドが打てるようになります。
https://www.python.jp/install/windows/install_py3.html

python3のインストール後、コマンドプロンプト上で以下のようにコマンドを入力してください。

# サンプルのコードに移動
$ cd move/your/directory
# デバイストークンの発行
$ python GetTrialDeviceToken.py

メッセージが表示されるのでエンターキーを押します。今までの手順が成功していれば次のような出力がされます。

{
    "device_token": "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy", 
    "refresh_token": "oooooooo-oooo-oooo-oooo-oooooooooooo", 
    "status": "valid"
}
SAVE ./.trial_device_token : yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy
SAVE ./.trial_refresh_token : oooooooo-oooo-oooo-oooo-oooooooooooo

device_tokenの右側にあるyyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyyの部分がデバイストークンなので、メモしておいてください。

次に、Unity上でデバイストークンを登録します。Assets/Scripts/SpeakSDKManager.csの139, 140行目を以下のように書き換えてください。

  • wss://hostname.domain:443/path -> wss://spf-v2.sebastien.ai/talk
  • PUT_YOUR_DEVICE_TOKEN -> 先ほど発行したデバイストークン(デバイスIDではない)
    // ---------------------------------------------------------------------------- //
    //  SDK初期化処理
    // ---------------------------------------------------------------------------- //
    private void InitializeSpeakSDK()
    {
        Speak.Instance().SetURL("wss://hostname.domain:443/path");
        Speak.Instance().SetDeviceToken("PUT_YOUR_DEVICE_TOKEN");

        // Callback.
        Speak.Instance().SetOnTextOut(OnTextOut);
        Speak.Instance().SetOnMetaOut(OnMetaOut);
    }

引用元:https://github.com/docomoDeveloperSupport/speak-unity-sample/blob/master/sample_app/SpeakSampleApp/Assets/Scripts/SpeakSDKManager.cs#L134-L145

Editor上でSDKを実行するためにはDLLの設定を変更する必要があります。(64bit環境の場合)Assets/Plugins/Windows/x86_64/flow.dllのinclude platformでEditorにチェックを入れ、Applyボタンを押してください。

sdfasdfas.PNG

準備は以上です。UnityのAssets/Scenes/main.unityを開き、シーンを実行します。

SDKstartをクリックすると少し待って緑色に変化します。その状態でテキストフィールドに「こんにちは」などと打って、テキストと音声が再生されれば成功です。お疲れ様でした。

fasdfasdfas.PNG

最後に

宣伝ですが、 月額制のメンターサービスで初心者向けの開発サポートをしているので、分からないことがあれば是非こちらで質問してください! 
https://menta.work/plan/1115

Discussion