你不需要 System.Speech.dll ,它有很多问题,因为它使用Mono . 只需导入 UnityEngine.Windows.Speech 命名空间就可以了 . 这需要Unity 5.4.0b2及更高版本才能在Windows上运行 .
[SerializeField]
private string[] m_Keywords;
private KeywordRecognizer m_Recognizer;
void Start()
{
m_Recognizer = new KeywordRecognizer(m_Keywords);
m_Recognizer.OnPhraseRecognized += OnPhraseRecognized;
m_Recognizer.Start();
}
private void OnPhraseRecognized(PhraseRecognizedEventArgs args)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat("{0} ({1}){2}", args.text, args.confidence, Environment.NewLine);
builder.AppendFormat("\tTimestamp: {0}{1}", args.phraseStartTime, Environment.NewLine);
builder.AppendFormat("\tDuration: {0} seconds{1}", args.phraseDuration.TotalSeconds, Environment.NewLine);
Debug.Log(builder.ToString());
}
这仅适用于Windows,因为您的目标是Window-64位 . 对于其他平台,请参阅this post .