※この記事は以下の記事の続きとなります。
MRTK + Azure + Oculus で音声認識を頑張る①
また、ここからは以下の記事を参考にUnityを構築していきます。
最低限の環境構築
ここは本題とは離れているので、最低限の部分は割愛します。
・MRTK3 の導入 ※全部入れると重くなるので最低限をDLしてください
・ProjectSettingsの各種設定
多分必要?と思われる設定としては、
Audioの設定にある「Spatializer Plugin」「Ambisonic Decoder Plugin」に
「Oculus」を追加することかと思われます。
この設定は、OpenXRを使う場合であってもXRインテグレーションで「OpenXR」ではなく
一度「Oculus」にチェックを入れてあげることで設定できるようになります。
設定し終わったら「OpenXR」に戻しておきます。(ここはお好みでしょうか)
AzureSDKをDL
先ほどの記事の追加内容に記載のあった、AzureSDKをDLして適用します。
2, Microsoft.CognitiveServices.Speech.xxx.unitypackage をDLしてインポートする
https://aka.ms/csspeech/unitypackage
「HelloWorld.cs」の書き換えコードを追加
自分は別のファイルを新しく作りました。
一旦コピペして、MRTKと今の環境に合わせるため
以下の部分を修正します。
1.usingの追加
using TMPro;
using Microsoft.MixedReality.Toolkit.UX;
2.格納するTextとボタン設定の変更
public TextMeshProUGUI outputText;
[SerializeField] PressableButton startRecoButton;
3.ボタンの設定を変えたことによるエラー(二箇所)の修正
//121行目あたり
startRecoButton.OnClicked.AddListener(ButtonClick);
//145行目あたり
//こちらは合っているか不明ですが、動いているので・・・ごにょ
startRecoButton.enabled = !waitingForReco && micPermissionGranted;
csをObjに貼り付けて実装する
「Subscription Key」は、Azureの該当プロジェクトにあるキーをコピーして使います。
「サブスクリプション ID」ではないのでご注意ください。
apkにしたのち、実機で動作を確認する
Linkでチェックしたのですが、音声がうまく認識できませんでした。
(それを理解するのに1日くらいかかってました)
・実機でないと認識しないこと
・ボタンを離した後に音声認識されること
この2点にご注意ください。
最後に
まとめると2回で終わったわけですが、10月ごろから悩みながら
ようやく実装ができるようになりました。
(12月前半はまったく触れていませんでしたが)
Androidへの処理も考慮しなければならないという、難しい点が
SDKを流用すれば簡単にできる点は素敵だなと思います。
何より、同じ悩みを抱えていた先達、回答いただいた先達に
心からの感謝を。