我正在尝试让hololens(1)识别自定义的语音关键字。使用Unity和MRTK。它可以识别预定义的关键字(例如:“选择”),但是无法识别我的自定义关键字(我们称其为“关键字”)。
我弹出了一个工具提示(如果它识别出一个关键字)以提供反馈,以及我放置在其中用于调试目的的音频反馈(又称:如果识别出任何关键字,请发出提示音)。它适用于“选择”,但不适用于“关键字”。
我希望此关键字在全球范围内得到认可。
- 已选择麦克风功能。
- 关键字在配置文件部分中定义。 (输入>语音>添加新的语音命令)
- 输入动作处理程序,语音输入处理程序和自定义代码“ SpeechManager.cs”均执行相同的操作。可以识别“选择”(弹出并播放提示音),但是不能识别“关键字”。
- 未选中“需要关注”。
-
我尝试了几种不同的关键字,以确保我没有选择难以识别的关键字。
using UnityEngine; using microsoft.MixedReality.Toolkit.Input; using microsoft.MixedReality.Toolkit; public class SpeechManager : MonoBehaviour,IMixedRealitySpeechHandler { void Start() { //Debugging "play sound" declarations deleted as not important for this example script. CoreServices.InputSystem?.RegisterHandler<IMixedRealitySpeechHandler>(this); } void IMixedRealitySpeechHandler.OnSpeechKeywordRecognized(SpeechEventData eventData) { PlaySound(1); //DEBUG AUDIO FEEDBACK if (eventData.Command.Keyword == "keyword") { PlaySound(2); //DEBUG AUDIO FEEDBACK } else if (eventData.Command.Keyword == "select") { PlaySound(3); //DEBUG AUDIO FEEDBACK } } }
应该发生什么:
说“选择”:触发了PlaySound(1)和PlaySound(3)。
说出“关键字”:触发了PlaySound(1)和PlaySound(2)。
实际发生的事情:
“选择”:触发了PlaySound(1)*
“关键字”什么也没有发生
'*是的,不会触发PlaySound(3),但这是一个完全独立的问题,我不太担心,因为语音输入处理程序和输入动作处理程序都可以识别“选择”。一次一个问题!