我是C编程的新手,我想统一开发一款游戏,其中包括一些语音检测功能,以响应游戏者的选择。关于如何实现这一点的任何想法。谢谢;
对于所谓的语音转文本,您可以将KeywordRecognizer或PhraseRecognizer用作UnityEngine.Windows.Speech的一部分。这是一个示例(在右侧的“编辑器检查器”窗格中填充单词):
using System;
using System.Text;
using UnityEngine;
// Put this check around any part you want to hide on other systems.
#if UNITY_STANDALONE_WIN
using UnityEngine.Windows.Speech;
#endif
public class KeywordScript : MonoBehaviour
{
[SerializeField] string[] keywords;
KeywordRecognizer recognizer;
void Start()
{
recognizer = new KeywordRecognizer(keywords);
recognizer.OnPhraseRecognized += OnPhraseRecognized;
recognizer.Start();
}
void OnPhraseRecognized(PhraseRecognizedEventArgs args)
{
print(args.text);
print(args.confidence);
}
}
至少请注意,在我们的项目中,某些用户在根据特定的操作系统详细信息使此功能正常工作时遇到问题;当您考虑各种OS语言设置时,它也会变得更加棘手。最重要的是,单词通常根本无法正确理解,但这在某种程度上还取决于您要过滤多少个命令单词。如果您的单词数很少,并且允许较高的错误容忍度,则在这方面可能会获得良好的结果。
还要注意,该库仅适用于Windows,因此您可能需要其他方法,例如Android或iOS。