Upload
others
View
13
Download
0
Embed Size (px)
Citation preview
UnitySDKとAgentcraftTMを使った
音声対話サンプルアプリ作成チュートリアル
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL
Agenda
1. 全体のシステム構成について
2. SDK・サンプルアプリの入手方法
3. AgentcraftTMへの登録・認証用トークン作成
4. 音声対話でCubeを動かそう
5. 対話によって声を変えてみよう
re:Invent 2019 概要
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL
re:Invent 2019 概要
全体のシステム構成について
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL
クライアントサイド
4
ドコモAIエージェントAPIとUnitySDKの関係
サーバーサイド
多目的対話エンジン
音声認識(ASR)
自然言語処理(NLU)
音声合成(TTS)
音声 / テキスト /メタデータを送受信
自然言語処理における対話シナリオ(エージェント)
を編集
エンドユーザー
AgentCraft™
開発者
UnitySDK
UDS
ユーザー/デバイスの登録認証トークン発行
対応プラットフォーム
re:Invent 2019 概要
SDK・サンプルアプリの入手方法
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL
1. ドキュメントサイトからGithubにアクセス
2. Githubのreleaseタグより、ダウンロード
6
UnitySDK(unitypackage)の取得
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL
● ドキュメントサイトからGithubにアクセスし、クローンもしくはダウンロード
7
サンプルアプリの取得
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL 8
サンプルアプリの構成
フォルダ / ファイル名 説明
GetProductionDeviceToken.py ドコモAIエージェントAPI商用環境接続用認証トークン取得スクリプト
GetTrialDeviceToken.py ドコモAIエージェントAPIトライアル環境接続用認証トークン取得スクリプト
LICENSE.txt ライセンスに関する記載
README.md README(接続先情報やVR機器向けのビルド方法について記載)
sample
SpeakSampleApp iOS, Android, Windows, MacOS用サンプルアプリ
SpeakSampleAppForMagicLeap MagicLeap(LuminOS)用サンプルアプリ
SpeakSampleAppForOculus Oculus用サンプルアプリ
AgentcraftTMへの登録・認証用トークン作成
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL
● AgentcraftTMにアクセスし、ログイン
10
AgentcraftTMへの登録
ログイン完了 (初めてのログイン状態)
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL
● エージェントを追加し、名前を入力
11
エージェントの新規作成
2
3
4
1
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL 12
エージェントの新規作成
作成したエージェントを選択しているか確認
● エージェントが作成できているか確認
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL 13
デバイスIDの発行
3
クリックすると、デバイスIDをクリップボードにコピーします
21
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL
● 本チュートリアルでは , ドコモAIエージェントAPIのトライアル環境を利用する場合の方法を
ご紹介します。
● トライアル環境用のトークン発行スクリプト GetTrialDeviceToken.pyを開き, AgentcraftTMで発行したデバイス IDを下記の箇所にペースト
(商用環境の設定の仕方に関してはサンプルアプリの READMEをご覧下さい)
14
デバイストークンの発行
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL
● GetTrialDeviceToken.pyを実行し, 記載のリンクにアクセス
15
デバイストークンの発行
UDSにアクセス
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL
● UDSにアクセスし、ログイン
16
UDS /ユーザー・デバイスID登録
ログイン完了 (初めてのログイン状態)
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL 17
UDS /ユーザー・デバイスID登録
マウスでクリック
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL 18
UDS /ユーザー・デバイスID登録
3
2
1
デバイスID をクリップボードからペースト
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL 19
UDS /ユーザー・デバイスID登録
● デバイスIDの登録完了
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL 20
デバイストークンの発行
● pythonの実行画面に戻り , Enterを入力すると , デバイストークンが発行される
トークンには有効期限があります デバイストークン:1ヶ月 リフレッシュトークン:半年
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL 21
デバイストークンをサンプルアプリに設定
● 取得したデバイストークンを SpeakSDKManager.csに設定
● 音声対話エンジンの接続先も設定
(今回はトライアル環境を利用)
○ SetURL:wss://spf-v2.sebastien.ai/talk○ SetDeviceToken:取得したデバイストークン
※今回はSpeakSDKManager(PC, iOS, Android用)を利用。Oculus, MagicLeapは 対応のサンプルアプリをご利用下さい
まずはサンプルアプリを動かしてみる
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL 23
UnityHubにリスト追加
● 「リストに追加」からサンプルアプリを選択し , 開く
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL 24
サンプルアプリを開く
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL
● AssetsタブからSpeakSDK.unitypackageをインポート
25
Unitypackageのインポート
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL 26
シーンの選択・再生
● ProjectのScenesからmainシーンをダブルクリックし , Playボタンをクリック
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL
● SDKstartをクリックし , 音声対話してみましょう
27
音声対話してみる
「こんにちは」と話しかけてみましょうテキスト対話も可能です
音声対話でCubeを動かそう
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL
Contents
● 音声で命令
○ 「回れ」でCubeを回転させる
○ 「止まれ」でCubeの回転を止める
● 定義コマンド
○ “rotate”
■ “on”:回転
■ “off”:停止
re:Invent 2019 概要
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL
● トピックの選択
30
AgentcraftTMのシナリオ編集
「新規トピック」を選択し、内容を編集
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL
● トピック名の変更
31
AgentcraftTMのシナリオ編集
トピックに名前を入力
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL
● セクション名
32
AgentcraftTMのシナリオ編集 / 「回れ」
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL
● マッチング条件
33
AgentcraftTMのシナリオ編集 / 「回れ」
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL
● メッセージ
34
AgentcraftTMのシナリオ編集 / 「回れ」
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL
● コマンド
35
AgentcraftTMのシナリオ編集 / 「回れ」
JSON形式で入力
{ "rotate" : "on"}
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL
● 保存
36
AgentcraftTMのシナリオ編集 / 「回れ」
[保存]を押して確定
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL
● セクション追加
37
AgentcraftTMのシナリオ編集 / 「止まれ」
[+]を押してセクションを追加
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL
● セクション編集
38
AgentcraftTMのシナリオ編集 / 「止まれ」
編集後の[保存]で確定を忘れずに
JSON形式で入力
{ "rotate" : "off"}
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL
● テスト画面表示
39
シナリオテスト
[トピックのテスト] ボタンをクリック
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL
● ワードを入力してマッチングの確認
40
シナリオテスト
ワードを入力して [Enter] でテスト
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL
● ScrollViewを非表示
41
Unity / シーンにCube追加
チェックを外します
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL
● Cubeを作成
42
Unity / シーンにCube追加
[Create] をクリック1
Cube を選択2
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL
● Cubeの位置・サイズを調整
43
Unity / シーンにCube追加
Transform プロパティ
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL
● SpeakSDKManager.csをダブルクリックで開く
44
スクリプトの編集
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL
● Cubeを回転させるコード
private void Update() { cube.transform.Rotate(0f, yAngle, 0f);
public class SpeakSDKManager : MonoBehaviour { public GameObject cube; private float yAngle = 0f;
45
スクリプトの編集 / SpeakSDKManager.cs
SpeakSDKManager クラスに変数を用意
Update … Cube を回転 (Y軸を中心に回転)
2行追加
1行追加
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL
● 非表示にしたScrollViewに関するコードをコメントアウト
public void Start(){ //mScrollRect = GameObject.Find("ScrollView").GetComponent<ScrollRect>(); //mTextLog = mScrollRect.content.GetComponentInChildren<Text>(); mStartButton = GameObject.Find("SDKStartButton").GetComponent<Button>(); mStopButton = GameObject.Find("SDKStopButton").GetComponent<Button>(); ・
・
・
46
スクリプトの編集 / SpeakSDKManager.cs
2行コメントアウト
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL 47
Cubeオブジェクトとの関連付け
“Canvas”を選択
1Inspector の [Cube] まで “Cube”オブジェクトをドラッグ
2
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL
● OnMetaOutJson.csをダブルクリックで開く
48
スクリプトの編集 / OnMetaOutJson.cs
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL
● ratateの変数を追加
public class onMetaOutJson
{
public string rotate;
public string speaker;
public SystemText systemText;
// 〜 以下省略 〜
}
49
スクリプトの編集 / OnMetaOutJson.cs
1行追加
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL
● onMetaOutメソッドで Cube の回転パラメータを決定
50
スクリプトの編集 / SpeakSDKManager.cs
public void onMetaOut(string mateText) { ・ ・
else if (metaData.systemText.expression != null && metaData.systemText.expression != "") { // スクロールビューにテキストを表示する
LogView(metaData.systemText.expression); }
if (metaData.rotate == "on") { yAngle = 5f; } if (metaData.rotate == "off") { yAngle = 0f; } }
metaDataのパース後に追加
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL
● Playボタンをクリックし , 「回れ」で回転するか , 「止まれ」で停止するか確認して下さい
51
動作確認
対話によって声を変えてみよう
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL
● デフォルトの声をリストから指定して変更することが可能です
53
声の変更
声の変更が可能
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL
● コマンドよりspeaker_paramsパラメータを指定することで対話ごとに変更可能です
54
対話ごとに声を変更したい
(詳細はドキュメントサイトをご参照下さい)
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL 55
対話ごとに声を変更 / 回れ
aoi (女性:かわいい) を指定style_id … “jpn_JP-F-S0105-T001-E01”speaker_id … “jpn_JP-F-S0105-T001-E01-SR0”
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL 56
対話ごとに声を変更 / 「回れ」用コマンド例
{ "rotate" : "on" , "speaker_params" : { "speaker_id" : "jpn_JP-F-S0105-T001-E01-SR0" , "style_id" : "jpn_JP-F-S0105-T001-E01" , "voice_type" : 1 , "power_rate" : 1 , "speech_rate" : 1.15 , “intonation” : 11 , "pitch” : 12 }}
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL 57
対話ごとに声を変更 / 止まれ
sadao (男性:ガテン系) を指定style_id … “jpn_JP-M-S0130-T001-E01”speaker_id … “jpn_JP-M-S0130-T001-E01-SR0”
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL 58
対話ごとに声を変更 / 「止まれ」用コマンド例
{ "rotate" : "off" , "speaker_params" : { "speaker_id" : "jpn_JP-M-S0130-T001-E01-SR0" , "style_id" : "jpn_JP-M-S0130-T001-E01" , "voice_type" : 1 , "power_rate" : 1 , "speech_rate" : 1.15 , "intonation” : 11 , "pitch” : 12 }}
© 2020 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO CONFIDENTIAL
● Playボタンをクリックし , 「回れ」と「止まれ」で声が変わるか確認して下さい
59
動作確認
止まります
回ります