1,Windows10平台下Unity3d的语音识别——关键字识别
Unity3d软件中的语音识别,包含了关键字识别、语法识别和听写识别,本篇先介绍Win10平台下Unity3d关键字识别从Unity 5.4.0开始,Unity引擎添加了windows语音识别API (UnityEngine.Windows.Speech)来识别语音输入。这些api支持所有类型的windows平台(windows editor、windows independent和window.
Unity3d软件中的语音识别,包含了关键字识别、语法识别和听写识别,本篇先介绍Win10平台下Unity3d关键字识别
从Unity 5.4.0开始,Unity引擎添加了windows语音识别API (UnityEngine.Windows.Speech)来识别语音输入。这些api支持所有类型的windows平台(windows editor、windows independent和windows Store),但只支持windows 10操作系统,支持中文语音识别。
关键点:
名称空间:UnityEngine.Windows.Speech
Unity3d支持:Unity 5.4.0或更高版本
操作系统支持:Windows 10
Unity3d软件中的语音识别
语音识别API可分为两大类:
短语识别
Keyword Recognizer(关键字识别)
Grammar Recognizer(语法识别)
听写识别
Dictation Recognizer(听写识别)
注意:不能同时使用短语识别和语音听写识别。在同一时间内间个实例中,应用程序中只有一个识别是激活的。
短语识别
短语识别用于识别用户所说的特定短语。
Windows Store构建的发布设置:
如果您想为windows store构建应用程序,那么可以启用麦克风功能来利用应用程序的语音输入。
在Unity编辑器中设置 (Edit -> Project Settings -> Player)
选择 “Windows Store”标签
检查麦克风(Publishing Settings -> Capabilities)
短语识别可以分为两种类型:关键词识别和语法识别
关键词识别
关键字识别用于监听给定字符串数组。让我们看看如何实现关键字识别器。
Step 1: 定义字符串数组
Step 2: 订阅和处理OnPhraseRecognized事件。当给定短语被识别时,将调用此事件。.
Step 3: 开始关键字识别
下面给出了实现关键字识别的完整脚本。将此脚本复制到项目中,可以挂在任何游戏物体上。
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using UnityEngine.Windows.Speech;
public class KeyWordRecognizerBehaviour : MonoBehaviour {
KeywordRecognizer keywordRecognizer;
// keyword array
public string[] Keywords_array;
// Use this for initialization
void Start () {
// Change size of array for your requirement
Keywords_array = new string[2];
Keywords_array [0] = "hello";
Keywords_array [1] = "how are you";
// instantiate keyword recognizer, pass keyword array in the constructor
keywordRecognizer = new KeywordRecognizer(Keywords_array);
keywordRecognizer.OnPhraseRecognized += OnKeywordsRecognized;
// start keyword recognizer
keywordRecognizer.Start ();
}
void OnKeywordsRecognized(PhraseRecognizedEventArgs args)
{
Debug.Log ("Keyword: " + args.text + "; Confidence: " + args.confidence + "; Start Time: " + args.phraseStartTime + "; Duration: " + args.phraseDuration);
// write your own logic
}
}
可以同时有多个关键字识别器,但它们不监听普通关键字
如果您在项目中使用多个关键字识别器,那么您可以使用PhraseRecognitionSystem类用一行代码停止并重新启动所有关键字识别。
// shut down phrase recognition system. All keyword recognizer will be stopped
PhraseRecognitionSystem.Shutdown();
// restore all recognizer in the previous state
PhraseRecognitionSystem.Restart();
更多推荐
所有评论(0)