WatBot は、Android 上で実行され、IBM Cloud (アプリとサービスを構築、実行、管理するためのオープンスタンダード、クラウドプラットフォーム) 上の Watson Assistant サービスを使用する、IBM Watson を利用した ChatBot です。
注:このアプリは Watson Assistant V1 API を使用します
リポジトリのクローンを作成し、コードを Android Studio にインポートします。
git clone https://github.com/VidyasagarMSC/WatBot.git
ステップごとの最新の手順については、このブログ投稿を確認してください。
アプリを構成するには、Watson Assistant サービスのパスワード、 URL 、およびワークスペース IDを取得する必要があります。
MainActivityクラスで、 sendMessage()という名前のメソッドを見つけます。作成したアシスタント サービスの[管理]タブで、 [ツールの起動] > [スキル] をクリックし、スキルの横にある 3 つの縦のドットをクリック > API 詳細の表示 > ワークスペース ID、ユーザー名、およびパスワードを確認します。 API キーを使用して TODO を直接読み取りたい場合は、コードのコメントを解除し、プレースホルダーを API キーの値に置き換えます。
API キーと URL は、「管理」タブまたはサービス認証情報の下にあります。
Assistant assistantservice = new Assistant("2018-02-16");
//If you like to use USERNAME AND PASSWORD
//Your Username: "apikey", password: "<APIKEY_VALUE>"
assistantservice.setUsernameAndPassword("apikey", "<API_KEY_VALUE>");
//TODO: Uncomment this line if you want to use API KEY
//assistantservice.setApiKey("<API_KEY_VALUE>");
//Set endpoint which is the URL. Default value: https://gateway.watsonplatform.net/assistant/api
assistantservice.setEndPoint("<ASSISTANT_URL>");
InputData input = new InputData.Builder(inputmessage).build();
//WORKSPACES are now SKILLS
MessageOptions options = new MessageOptions.Builder().workspaceId("<WORKSPACE_ID>").input(input).context(context).build();
MessageResponse response = assistantservice.message(options).execute();
assistantservice.setUsernameAndPassword("apikey", "<ASSISTANT_PASSWORD>");
ワークスペース IDを取得し、以下のコードに追加します。
MessageOptions options = new MessageOptions.Builder("<Workspace_ID>").input(input).context(context).build();
グラドルエントリー
compile 'com.ibm.watson.developer_cloud:assistant:6.11.0'
MainActivity.java の 95 行目で、パスワードと URL プレースホルダーを TTS サービス資格情報に置き換えます。
textService.setUsernameAndPassword("apikey", "<TEXT_TO_SPEECH_APIKEY>");
textService.setEndPoint("<TEXT_TO_SPEECH_URL>");
メッセージをタップすると、テキストが音声 (Voice.EN_US_LISAVOICE) で聞こえるようになります。コード内で音声フォーマットを変更できます (Line 120 0f MainActivity.java)。
注: TTS に必要な Gradle エントリはすでに build.gradle ファイルに含まれています
compile 'com.ibm.watson.developer_cloud:text-to-speech:6.11.0'
compile 'com.ibm.watson.developer_cloud:android-sdk:0.5.0'
注: STT に必要な gradle エントリはすでに build.gradle ファイルに含まれています
compile 'com.ibm.watson.developer_cloud:speech-to-text:6.11.0'
compile 'com.ibm.watson.developer_cloud:android-sdk:0.5.0'
上記の手順をすべて実行した場合は、Wat(son)Bot と楽しくチャットできるはずです。
** ボットは Watson Assistant サービス (インテント、エンティティ、ダイアログ) と通信することに注意してください。**
スピーカーラベル
注:話者ラベル機能は、米国英語、日本語、スペイン語で利用できるベータ機能です。
発言者ラベルは、複数の参加者によるやり取りでどの個人がどの単語を話したかを識別します。 (誰がいつ話したかをラベル付けすることは、話者ダイアライゼーションと呼ばれることもあります。)この情報を使用して、コールセンターへの連絡など、オーディオ ストリームの個人ごとのトランスクリプトを作成できます。あるいは、これを使用して、会話ロボットやアバターとのやり取りをアニメーション化することもできます。最高のパフォーマンスを得るには、少なくとも 1 分の長さの音声を使用してください。
有効にするには、Android Studio の下部タブにある TODO をクリックするか、MainActivity.java ファイルで TODO を検索し、行のコメントを解除します。以下に示すように、logcat に出力が表示されるはずです。
SPEECHRESULTS: {
"confidence": 0.5,
"final": false,
"from": 1.59,
"speaker": 0,
"to": 1.82
}