现在市面上很多语音识别的SDK,类似百度,讯飞等等,但是接这些SDK需要对接的文档还是蛮繁杂的,而且有部分功能还是收费的。其实,微软早就有基于window平台的语音识别模块,而且unity已经把这个模块集成到引擎中去了,这一篇讲一下unity是怎样实现关键词识别的,代码如下:
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using UnityEngine;
using UnityEngine.Windows.Speech;
public class KeywordScript : MonoBehaviour {
[SerializeField]
private string[] m_Keywords;
private KeywordRecognizer m_Recognizer;
void Start()
{
//创建关键词列表
m_Keywords = new[] {"红色","蓝色" };
//创建一个语音识别引擎
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());
}
void OnDestroy()
{
//释放资源
m_Recognizer.Dispose();
}
}
有问题可以留言,可以关注我的公众号,定时推送各种技术,回复关键词“window语音识别”即可获取工程源码