スクリーンショット_2019-06-04_12

UnityとWatsonを使ってサクッと音声認識させてみる

はじめまして、株式会社ロボットでエンジニアをやらせてもらってるiwaseです。

ちょっと前にWatsonとUnityを使って音声認識を触っていたのでまとめてみました。

画像1


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を部分をコピーしておきます。

画像2

次に

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を貼り付けます。

画像3

後は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();
       }
    }
}

これで実行すると実際に自分の話した言葉がゲーム画面に表示されるようになると思います。


画像4


UnityとWatsonを使ってサクッと音声認識させてみる #2

この記事が気に入ったらサポートをしてみませんか?