无法引用UnityEngine.Windows.Speech

时间:2017-02-16 21:49:19

标签: c# visual-studio unity3d

我正在尝试在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的任何想法?

1 个答案:

答案 0 :(得分:0)

要使用KeyWordRecognizer,您必须在顶部添加UnityEngine.Windows.Speech。您这样做但KeyWordRecognizer仍未被识别。

可能的问题是您使用的是旧版本的Unity。您必须在其他地方使用Unity 5.4.0及更高版本才能使用KeyWordRecognizer

Unity 5.4.0 Release Note

  

Windows:添加了语音识别API   UnityEngine.Windows.Speech。所有

都支持这些API

此外,现在很容易找出添加了哪个版本的Unity API。这是您下次遇到此问题时的参考。

只需搜索并找到API,然后继续使用版本号直到您当前的Unity版本。数字变化10,如550,540,530 ....

可用

enter image description here

不可用

enter image description here