UnityとWatsonを使ってサクッと音声認識させてみる
はじめまして、株式会社ロボットでエンジニアをやらせてもらってるiwaseです。
ちょっと前にWatsonとUnityを使って音声認識を触っていたのでまとめてみました。
IBM Watson とは
WatsonはIBMが開発した質問応答システム・意思決定支援システムです。https://www.ibm.com/watson/jp-ja/what-is-watson.html
環境
MacBook Pro (15-inch, 2018)
Unity 2018.1.1
準備
IBM Cloud Account を作成します。
https://cloud.ibm.com/registration
作成したら IBM Speech to Textサービスのページに行き、サービス名とロケーションを入力し右下の作成ボタンを選択します。
https://cloud.ibm.com/catalog/services/speech-to-text
作成ボタンを押すと自動でページが切り替わるので、左のメニューからサービス資格情報のAPI鍵とURLを部分をコピーしておきます。
次に
IBM Watson Unity SDK を新規Unity プロジェクトにインポートします。
https://github.com/watson-developer-cloud/unity-sdk
※2019/6/01 Asset Storeからはダウンロードできなくなっていました。
インポートしたプロジェクトにある unity-sdk-master/Examples/ServiceExamples/ExampleStreaming.unity
を開き、ここに先ほどコピーしたAPIとURLを貼り付けます。
後はExampleStreaming の中のen-US_BroadbandModelの部分をja-JP_BroadbandModelに書き換えれば日本語対応になり完成です。
public bool Active
{
get { return _service.IsListening; }
set {
if (value && !_service.IsListening)
{
_service.RecognizeModel = (string.IsNullOrEmpty(_recognizeModel) ? "ja-JP_BroadbandModel" : _recognizeModel);
_service.DetectSilence = true;
_service.EnableWordConfidence = true;
_service.EnableTimestamps = true;
_service.SilenceThreshold = 0.01f;
_service.MaxAlternatives = 0;
_service.EnableInterimResults = true;
_service.OnError = OnError;
_service.InactivityTimeout = -1;
_service.ProfanityFilter = false;
_service.SmartFormatting = true;
_service.SpeakerLabels = false;
_service.WordAlternativesThreshold = null;
_service.StartListening(OnRecognize, OnRecognizeSpeaker);
}
else if (!value && _service.IsListening)
{
_service.StopListening();
}
}
}
これで実行すると実際に自分の話した言葉がゲーム画面に表示されるようになると思います。
UnityとWatsonを使ってサクッと音声認識させてみる #2
この記事が気に入ったらサポートをしてみませんか?