Kinect 2.0&Speech 11 中文语音控制相关代码
下载 Speech 11 中文语言包
Microsoft Speech Platform - Runtime Languages (Version 11)
查找中文语言的RecognizerInfo
-
private static RecognizerInfo TryGetKinectRecognizer()
-
{
-
IEnumerable<RecognizerInfo> recognizers;
-
// This is required to catch the case when an expected recognizer is not installed.
-
// By default - the x86 Speech Runtime is always expected.
-
try
-
{
-
recognizers = SpeechRecognitionEngine.InstalledRecognizers();
-
}
-
catch (COMException)
-
{
-
return null;
-
}
-
foreach (RecognizerInfo recognizer in recognizers)
-
{
-
string value;
-
recognizer.AdditionalInfo.TryGetValue("Kinect", out value);
-
if ("True".Equals(value, StringComparison.OrdinalIgnoreCase) && "en-US".Equals(recognizer.Culture.Name, StringComparison.OrdinalIgnoreCase))
-
{
-
//return recognizer;
-
}
-
if ("zh-CN".Equals(recognizer.Culture.Name, StringComparison.OrdinalIgnoreCase))
-
{
-
return recognizer;
-
}
-
}
-
return null;
-
}
构建中文指令
-
RecognizerInfo ri = TryGetKinectRecognizer();
-
this.speechEngine = new SpeechRecognitionEngine(ri.Id);
-
var directions = new Choices();
-
directions.Add(new SemanticResultValue("前", "FORWARD"));
-
directions.Add(new SemanticResultValue("前进", "FORWARD"));
-
directions.Add(new SemanticResultValue("前移", "FORWARD"));
-
directions.Add(new SemanticResultValue("后", "BACKWARD"));
-
directions.Add(new SemanticResultValue("后退", "BACKWARD"));
-
directions.Add(new SemanticResultValue("后移", "BACKWARD"));
-
directions.Add(new SemanticResultValue("左", "LEFT"));
-
directions.Add(new SemanticResultValue("右", "RIGHT"));
-
var gb = new GrammarBuilder { Culture = ri.Culture };
-
gb.Append(directions);
-
var g = new Grammar(gb);
-
this.speechEngine.LoadGrammar(g);
官方Demo下载