MRTK2手动启用关键词语音识别及SpeechHandler开关方法咨询
访问Mixed Reality Speech Commands Profile手动启动选项及代码切换语音输入的方法
一、Unity编辑器中访问手动启动设置选项
- 打开你的Unity项目,找到MRTK的配置文件(一般是
DefaultMixedRealityToolkitConfigurationProfile,或者你自定义的配置文件) - 展开Input选项卡,定位到Speech模块,点击模块对应的「Speech Commands Profile」(即你说的「Mixed Reality Speech Commands Profile」)
- 在弹出的Speech Commands Profile面板里,找到Speech Recognition Settings区域,这里就能看到「Manual Activation Behavior」相关选项,直接在这里设置手动启动的触发逻辑即可(比如绑定按键、手势等)
二、代码层面切换语音输入状态
MRTK2里没有和CoreServices.InputSystem.EyeGazeProvider.IsEyeTrackingEnabled完全对应的语音开关属性,你可以用以下两种方式实现:
- 方式一:通过
SpeechInputHandler组件控制全局语音输入
// 获取场景中的SpeechInputHandler实例 var speechHandler = UnityEngine.Object.FindObjectOfType<SpeechInputHandler>(); if (speechHandler != null) { speechHandler.IsEnabled = false; // 禁用语音输入 // speechHandler.IsEnabled = true; // 启用语音输入 }
- 方式二:直接操作底层语音识别服务
var speechProvider = CoreServices.InputSystem.InputSystemProfile.SpeechInputProvider; if (speechProvider != null) { speechProvider.Disable(); // 关闭语音识别 // speechProvider.Enable(); // 开启语音识别 }
如果需要单独控制某条语音命令的启用状态,可以遍历SpeechInputHandler的SpeechCommands列表,修改单个命令的IsEnabled属性。
内容的提问来源于stack exchange,提问作者BR14N
相关产品推荐
相关产品推荐

