2018年02月21日
■[Unity] IBM の Watson を Unity から使う方法

IBM の Watson を Unity から使う方法を解説します。
Watson は米国のクイズ番組に出て、クイズ王に勝った事で話題になった AI です。
クイズ王に勝ったコンピューター | 日経 xTECH(クロステック)
http://tech.nikkeibp.co.jp/it/pc/article/trend/20110418/1031323/
Watson では何が出来るかはこの辺りが参考になります。
IBM Watson: Watson とは? - Japan
GitHub に Unity で使う時のコードが公開されていますが Asset Store でも配布されているのでそちらの方がお手軽で良いでしょう。ドキュメント部分を参照する為に観るのは良いと思います。
watson-developer-cloud/unity-sdk: Unity SDK to use the IBM Watson services.
なお、この SDK は現時点では Unity の WebGL ビルドには未対応です。
前準備
Watson のサービスを使用するには IBM Cloud というサービスのアカウントを作成する必要が有ります。
アカウントをまだ持っていない場合にはこちらのページからアカウント作成して下さい。
まずは試してみるという段階では無料で使えるライト(Lite)アカウントで問題有りません。その後、必要に応じて他のプランを検討しましょう。
ライトアカウントで出来る事についてはこちらを参照。
IBM Cloudライト・アカウント (Bluemix) - Japan
https://www.ibm.com/cloud-computing/jp/ja/bluemix/lite-account/
IBM Watson Unity SDK のインストール
Asset Store にて、 「IBM Watson Unity SDK」で検索してインストールして下さい。
IBM Watson Unity SDK で利用可能なサービス一覧はこちら(GitHub の README.mdに記載)。一部、 Deprecated (非推奨)のサービスも有るみたいです。
テキスト→音声変換サービスを使う
ここでは Text to Speech (テキスト→音声変換)サービスの使い方を解説します。
[デモページ]
Text to Speech Demo
[サービス情報]
Text to Speech - IBM Cloud
https://console.bluemix.net/catalog/services/text-to-speech/
こちらのページ経由でサーバにプロジェクトを作成します。「Get started free」ボタンを押して、プロジェクトを作成して下さい。
Watson Text to Speech
アカウント情報と Web API の URL を設定
IBM Watson Unity SDK のインストール済みの Unity エディタでの作業に戻ります。
Text to Speech のサンプルコードは以下のパスに存在します。
Assets/Watson/Examples/ServiceExamples/Scripts/ExampleTextToSpeech.cs
しかし、このプログラムには以下の様に username / password / url が記述されていません。
public class ExampleTextToSpeech : MonoBehaviour { private string _username = null; private string _password = null; private string _url = null;
これらの情報を確認する為に IBM Cloud のページに戻ります。
まず、 こちらのページを開きます。
すると先程作成したプロジェクトが表示されるのでクリックします。
左側のメニューから「サービス資格情報」を選択した後に「資格情報を表示」をクリックします。
ここに記載されている情報を ExampleTextToSpeech.cs に記述します( ExampleTextToSpeech.cs 記載されているものと並び順が違うので注意!!)。
public class ExampleTextToSpeech : MonoBehaviour { private string _username = "xxxxxxxxxxxx"; private string _password = "xxxxxxx"; private string _url = "https://xxxxxxxxx";
Herarchy に GameObject を作成し、この ExampleTextToSpeech.cs を追加します。
これで作業は完了です。 Play ボタンを押すとプログラム中に記述したテキストが Watson で音声に変換され再生されます。
なお、途中までは上手くスピーチが再生されましたが途中で以下のエラーが発生しました。
ログを読むと「 Lite プランでは使えない」との事。サンプルの後の方の処理は Lite (無料)プランでは使えない様です。
[02/21/2018 09:55:16][RESTConnector.ProcessRequestQueue()][ERROR] URL: https://stream.watsonplatform.net/text-to-speech/api/v1/customizations, ErrorCode: 400, Error: 400 Bad Request, Response: { "code": 400, "code_description": "Bad Request", "error": "This feature is not available for the Bluemix Lite plan. Please upgrade to a paid plan to activate this feature: https://console.bluemix.net/catalog/services/text-to-speech" }
Text to Speech の使い方のドキュメントはこちらに有ります。
unity-sdk/Scripts/Services/TextToSpeech/v1 at develop · watson-developer-cloud/unity-sdk
https://github.com/watson-developer-cloud/unity-sdk/tree/develop/Scripts/Services/TextToSpeech/v1
- 16 https://t.co/5r3CX0maKh
- 15 https://t.co/FLMiUGsYie
- 6 https://socialmediascanner.eset.com
- 6 https://www.google.co.jp/
- 5 http://b.hatena.ne.jp/
- 5 https://t.co/ZYxjn1KAnP
- 3 http://search.minakoe.jp/rsss/rsss.asp?qry=domain:hatena&qry=domain:hatena&multi=1
- 3 http://www.google.co.uk/url?sa=t&source=web&cd=1
- 2 http://b.hatena.ne.jp/ctop/it
- 2 http://b.hatena.ne.jp/entrylist/it/技術ブログ