我正在尝试在Unity中使用语音识别功能,但当我尝试使用它时,Visual Studio无法识别它。
这是我的代码:
using UnityEngine;
using System;
using System.Text;
using System.Collections;
using System.Collections.Generic;
using UnityEngine.Windows.Speech;
using System.Linq;
public class VoiceRecog : MonoBehaviour {
private KeywordRecognizer m_Recognizer;
public KeywordRecognizer keywordRecognizer;
protected Dictionary<string, System.Action> keywords = new Dictionary<string, System.Action>();
void Start() {
Debug.Log("In the Start() of VoiceRecog");
keywords.Add("go", () =>
{
GoCalled();
});
keywordRecognizer = new KeywordRecognizer(keywords.Keys.ToArray());
keywordRecognizer.OnPhraseRecognized += KeywordRecognizerOnPhraseRecognized;
}
void KeywordRecognizerOnPhraseRecognized(PhraseRecognizedEventArgs args) {
Debug.Log("in 2nd function");
System.Action keywordAction;
if (keywords.TryGetValue(args.text, out keywordAction)) {
keywordAction.Invoke();
}
}
void GoCalled() {
Debug.Log("You just Said Go.");
}
}
Unity没有采用KeyWordRecognizer类型。我想因为它没有引入UnityEngine.Windows.Speech。
关于为什么没有引入Unityengine的任何想法?
答案 0 :(得分:0)
要使用KeyWordRecognizer
,您必须在顶部添加UnityEngine.Windows.Speech
。您这样做但KeyWordRecognizer
仍未被识别。
可能的问题是您使用的是旧版本的Unity。您必须在其他地方使用Unity 5.4.0及更高版本才能使用KeyWordRecognizer
。
Windows:添加了语音识别API UnityEngine.Windows.Speech。所有
都支持这些API
此外,现在很容易找出添加了哪个版本的Unity API。这是您下次遇到此问题时的参考。
只需搜索并找到API,然后继续使用版本号直到您当前的Unity版本。数字变化10,如550,540,530 ....
可用强>:
不可用: