Я пытаюсь поэкспериментировать с программой распознавания голоса в единстве. Я использую UnityEngine.Windows.Speech.KeywordRecognizer. Однако всякий раз, когда я запускаю программу, я получаю следующую ошибку:
MissingMethodException: попытка доступа к
недостающий метод. UnityEngine.Windows.Speech.KeywordRecognizer..ctor
(System.String [] ключевые слова, UnityEngine.Windows.Speech.ConfidenceLevel
минимальная уверенность) (при
/Users/builduser/buildslave/unity/build/Runtime/Export/Windows/Speech.cs:221)
UnityEngine.Windows.Speech.KeywordRecognizer..ctor (System.String []
ключевые слова) (в
/Users/builduser/buildslave/unity/build/Runtime/Export/Windows/Speech.cs:201)
VoiceRecognition.Start () (в разделе «Ресурсы / VoiceRecognition.cs: 23)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Windows.Speech;
using UnityEngine.UI;
public class VoiceRecognition : MonoBehaviour
{
public string[] keywords = { "right", "left", "up", "down" };
public ConfidenceLevel confidence = ConfidenceLevel.Low;
public float speed = 1;
public Text results;
public Image target;
private KeywordRecognizer recognizer;
protected string word = "right";
private void Start()
{
if (keywords != null)
{
recognizer = new KeywordRecognizer(keywords, confidence); #Source of error
recognizer.OnPhraseRecognized += Recognizer_OnPhraseRecognized;
recognizer.Start();
}
}
private void Recognizer_OnPhraseRecognized(PhraseRecognizedEventArgs args)
{
word = args.text;
results.text = "You said: <b>" + word + "</b>";
}
#Code to move image
private void Update()
{
var x = target.transform.position.x;
var y = target.transform.position.y;
switch (word)
{
case "up":
y += speed;
break;
case "down":
y -= speed;
break;
case "left":
x -= speed;
break;
case "right":
x += speed;
break;
}
target.transform.position = new Vector3(x, y, 0);
}
private void OnApplicationQuit()
{
if (recognizer != null && recognizer.IsRunning)
{
recognizer.OnPhraseRecognized -= Recognizer_OnPhraseRecognized;
recognizer.Stop();
}
}
}
Я ожидал, что смогу переместить изображение, когда пользователь говорит «вправо», «влево», «вверх» или «вниз», но я продолжаю получать исключение MissingMethodException, и мое изображение продолжает двигаться в одном направлении независимо от того, о чем я говорю.