UnityからIBM Watson APIを使う

Taiji
7 min readApr 18, 2020

--

みなさんこんにちは、IBM Developer AdvocateのTaijiです。
今回は、やや今更感ありますがUnityからWatsonを使う方法を解説したいと思います。
と、言ってもIBMからWatsonのSDKが公開されてますので、そちらを利用するだけですぐに使うことができます。

実は、以前はAsset StoreからWatson SDKをインストールできたのですが、現在はストアから消えてしまったので、GitHubから直接取得する必要があります。

本記事における動作環境

・Surface Go/Windows10 Pro
・Unity version 2019.3.10f1

IBM Watson

IBMが提供するAIの総称です。IBM Cloudを通じて利用できるものに、Web API多種と機械学習系の開発プラットフォーム、ツールなどがあります。
詳細はこちらをご覧ください。

事前準備

IBM Cloudアカウント登録 ※クレジットカード不要、無償で使えます
Unity (Unity Hub)インストール ※ Unity Hubから特定バージョンのUnityをインストールします
IBM Watson SDK for Unityダウンロード ※Readme.mdの内容を確認してください

Watson APIを作成

今回は数あるWatson APIの中から、自然言語音声認識APIのSpeech to Textを使ってみたいと思います。
IBM Cloudへログインし、Watson Speech to Textのサービスを作成します。

IBM Cloudへログインしたら、カタログからWatson Speech to Textを選択します。カタログへ遷移後、左側のペインから、サービス -> AIと絞り込むとWatsonのサービス群が表示されます。

Speech to Textサービスの作成画面へ遷移したら、リージョン(データセンターの場所)を選択し、サービス名に任意の名前を付与し(デフォルトのままでもOK)作成ボタンを押せば完了です。

サービスが作成されたら、Credential情報(資格情報)を確認してください。後ほど、ここに記載されているAPIキーとURLを使います。

Unityプロジェクトを開く

ダウンロード(またはClone)したWatson SDK for UnityのExamplesの配下から、試したいAPIのUnityファイルを開きます。
今回はSpeech to Textを試すので、ExampleStreeming.unityを選択し開きます。

UnityからWatson APIの呼び出しを設定

Unityにプロジェクトが開かれたら、ヒエラルキーパネルからExampleStreemingを選択し、インスペクターパネルのサービスURLとIam Apikeyに、先ほど確認したSpeech to TextのURLとAPIキーをそれぞれ入力します。

音声認識させる言語の設定

同じく、インスペクターパネルのパラメーターの部分に

ja-JP_BroadbandModel

を設定します。

なお、ExampleStreaming のスクリプトActiveメソッド内の

_service.RecognizeModel = (string.IsNullOrEmpty(_recognizeModel) ? "en-US_BroadbandModel" : _recognizeModel);

の部分はパラメーターが見つからなかった場合にデフォルトで適用されるモデルになります。必要に応じてお好みの言語に設定してください。

yamachan さん、ご指摘ありがとうございました。

動作確認

UnityでExampleStreemingを実行します。
画面が起動したら準備OKです。好きな言葉を発声してしてみてください。
画面に文字が表示されれば、無事WatsonのSpeech to Textとつながったということです。

これは、裏で自然言語解析(Natural Language Understanding)が働いて、音声認識した言葉を自然言語の文章としてテキスト変換しているものになります。

まとめ

いかがでしたでしょうか?Watson APIをUnityから簡単に呼び出せることが試せたのではないでしょうか。
今回はSpeech to Textを試しましたが、他にもたくさんのWatson APIがありますので、ぜひ色々試してみてくださいね。

Call for Code

ところでみなさん、Call for Codeをご存じでしょうか?
2018年からDavid Clark Cause、IBM、米国赤十字、米国国連、Linux Foundationなどを筆頭に立ち上げたCodeの力で世の中の問題に立ち向かうというGlobal Initiativeです。

この中で、毎年自然災害をソリューションする世界規模のバーチャルハッカソン(Global Challenge)を開催してきました。
今年のテーマは気候変動とCOVID-19です。
Global Challengeで優秀賞に選ばれたチームには多大なる賞金にとどまらず、そのソリューションを実サービスとして全世界へ展開するチャンスが与えられます。
こんな時期ですから、みなさんのコーディング力を地球のため、人類のために活かしてみませんか?

今回学んだUnityとWatsonの連携方法を活用して、新しいサービスを生み出してみてはいかがでしょうか?
そしてぜひ、そのサービスをCall for CodeのGlobal Challengeへ応募してみてください!

参考記事:
■Call for Codeへ参加しよう (IBM Champion 榎本さんのブログ)
https://qiita.com/motuo/items/0f36ee0e9ac9a8713262

■Call for Code 2020 Slack登録方法 (IBM Developer Advocate 戸倉彩のDeck)
https://speakerdeck.com/ayatokura/call-for-code-slack

それでは!

--

--

Taiji
Taiji

Written by Taiji

Datadog Senior Developer Advocate | Ex-OutSystems Dev Community Advocate | Ex-IBM Dev Advocate | Microsoft MVP | 筑波大学、名城大学非常勤講師 | 記事は個人の見解であり、所属する組織とは関係ありません。

Responses (2)