【发布时间】:2021-04-11 05:43:49
【问题描述】:
我正在尝试统一创建一个语音识别游戏。我不明白的是,当我使用诸如“左”或“前进”之类的词时,它很容易检测到它。但是当只使用一个字母时,即使我按照相同的方法进行检测,它也根本没有检测到它。游戏只需要使用单个字母。有人知道如何通过统一的语音识别来检测字母吗?
以下是我使用的代码:
private KeywordRecognizer keywordRecognizer;
private Dictionary<string, Action> actions = newDictionary<string,Action>();
void Update{
actions.Add("Left", Left);//this works
actions.Add("A", Alpha);//this doesn't
keywordRecognizer = new KeywordRecognizer(actions.Keys.ToArray());
keywordRecognizer.OnPhraseRecognized += RecognizedSpeech;
keywordRecognizer.Start();
}
private void RecognizedSpeech(PhraseRecognizedEventArgs speech){
Debug.Log(speech.text);
actions[speech.text].Invoke();
word = speech.text;
results.text = "You said: <b>" + word + "</b>";
}
private void Left(){
transform.Translate(-1, 0, 0);
}
private void Alpha(){
transform.Translate(1, 0, 0);
}
【问题讨论】:
-
这可能需要训练语音识别系统,对此不确定。
-
在任务栏中搜索 Windows 语音识别。
标签: c# unity3d voice-recognition