现在的位置: 首页 > 综合 > 正文

基于Kinect for Windows SDK beta开发语音命令,实现语音控制游戏

2013年12月06日 ⁄ 综合 ⁄ 共 3546字 ⁄ 字号 评论关闭

微软在2009年6月2日的E3大展上。正式公布的XBOX360体感周边外设。Natal彻底颠覆了游戏的单一操作。使人机互动的理念更加彻底的展现出来。 它是一种3D体感摄影机(开发代号“Project Natal”),同时它导入了即时动态捕捉、影像辨识、麦克风输入、语音辨识、社群互动等功能。微软的Natal不需要使用任何控制器;它是依靠相机捕捉三维空间中玩家的运动。Kinect 的出现不仅带来了一种新的游戏操控体验,由之引发的让机器“读懂人”的交互方式,也正在引领人机交互技术的新一轮变革。

微软在今年的6月16日正式发布了Kinect for Windows SDK beta, 让开发人员可以在Windows上开发出和XBOX上一样的互动程序。

 

Kinect for Windows SDK的下载地址:

http://research.microsoft.com/en-us/um/redmond/projects/kinectsdk/download.aspx

Kinect SDK目前只支持Windows 7,分为x86和x64两个版本。开发工具方面还需要.NET Framework 4.0和Visual Studio 2010 (最低Express版本)的支持。

Kinect SDK的视频开发教程:

http://channel9.msdn.com/Series/KinectSDKQuickstarts?sort=recent#tab_sortBy_recent

Kinect SDK的开发指南:

http://research.microsoft.com/en-us/um/redmond/projects/kinectsdk/guides.aspx

Kinect SDK的官方论坛:

http://social.msdn.microsoft.com/Forums/en-US/kinectsdk/threads

硬件设备的需求是:Kinect for Xbox 360 sensor和Xbox 360 Kinect AC Adapter/ Power Supply。

 

 

KINECT为Xbox
360 ®传感器™音频组件,是一个四元麦克风阵列。
一个阵列提供了超过一个麦克风一些显着的优势,包括更先进的声学回音消除和噪音抑制,能够使用波束形成算法,它允许作为一种可操纵的定向麦克风阵列功能。
一个自然的用户界面(NUI)的一个关键方面是语音识别。 Kinect感应器的麦克风阵列语音识别基于应用程序是一个出色的输入设备。它提供了更好的音质比类似的单麦克风和耳机比使用更方便。讲话的示例显示了如何使用Kinect感应器的麦克风阵列与Microsoft.Speech
API,来识别语音命令。
对于如何实行有管理的应用程序捕获音频流从Kinect感应器的麦克风阵列的一个例子,Windows
® SDK测试的Kinect的网站上看到的“RecordAudio演练”。
对于如何实现一个C
+ +应用程序中捕获音频流从Kinect感应器的麦克风阵列的例子,见“MicArrayEchoCancellation演练,”的“AudioCaptureRaw演练”和“MFAudioFilter演练SDK Beta版网站”。
试图编译语音应用程序之前,你必须先安装以下内容:
•微软语音平台
- 软件开发工具包(SDK),版本10.2(X86版)
•微软语音平台
- 服务器运行时,版本10.2(X86版)
微软研究院(MSR)KINECT
SDK运行时只有x86的,所以你必须讲话运行x86版本下载。
•适用于Windows运行0.9版语言包,KINECT
(从微软语音平台的Windows
SDK的Beta版Kinect的声学模型)

注意:在Microsoft
®开发人员网络(MSDN ®)的在线文档的Microsoft.Speech API是有限的。
相反,你应该是指与微软语音平台SDK中包含的HTML帮助文件(CHM)。这是位于Program
Files \ Microsoft语音平台SDK \ Docs文件。
计划基本知识
语音是安装为Windows
SDK测试版\用户\ PUBLIC \文件Kinect的\微软研究院KinectSDK样品\音频\演讲\ CS目录。
语音是一个C#控制台应用程序是在一个文件中,Program.cs的实施。
重要RecordAudio目标x86平台。这个SDK不支持x64或任何CPU平台的目标。
基本的程序流程如下:
1。创建一个对象来表示Kinect感应器的麦克风阵列。
2。创建一个语音识别的对象,并指定一个语法。
3。响应命令。

使用语音
1。构建应用程序。
2。按Ctrl
+ F5运行该应用程序。
3。面对Kinect感应器,并说“红”,“绿色”或“蓝”。

语音识别打印每个命令的通知,包括以下内容:
•最适合的口语命令命令集的成员。
•一个信​​心,估计值。
该命令是否被承认或拒绝不是命令集的一部分。

语音识别引擎打印的通知,如果它承认命令,与信心的措施,是发动机的这个词是正确认识的概率的估计。一个例子是显示在下面的示例输出,其中所说的话是“红”“蓝”和“黄色”。
使用:微软服务器的语音识别语言
- KINECT(EN - US)
认识。说:“红”,“绿色”或“蓝”。按ENTER键停止
语音推测:红色
语音认可:红色
语音假设:蓝色
语音认可:蓝色
假设的语音:绿色
语音拒绝

写入文件:RetainedAudio_4.wav
小号
停止识别...

本文件的其余部分将引导您通过应用。
注意:此文件包含代码示例,其中大部分已编辑的简洁性和可读性。特别是,最常规的错误校正代码已被删除。完整的代码,看到的语音样本。超链接在本演练中显示的MSDN网站上的参考内容。
创建和配置一个音频源对象
KinectAudioSource对象表示Kinect感应器的麦克风阵列。在幕后,它使用的MSRKinectAudio微软DirectX
®媒体对象(DMO),SDK Beta版网站上的“MicArrayEchoCancellation演练”中详细描述。
大多数样本是在主要实施。第一步是创建和配置KinectAudioSource的,如下:
static
void Main(string[] args)

{

  using (var source = new KinectAudioSource())

  {

    source.FeatureMode = true;

    source.AutomaticGainControl = false;

    source.SystemMode = SystemMode.OptibeamArrayOnly;

    ...

  }

  ...

}
你配置KinectAudioSource通过设置各种属性,这直接映射到MSRKinectAudio
DMO的属性键。
有关详细信息,请参阅参考文档。语音应用程序配置KinectAudioSource如下:
•功能模式启用。
•自动增益控制(AGC)被禁用。
AGC必须禁用语音识别。
•系统模式设置为自适应波束没有声学回声消除(AEC)。
在这种模式下,作为一个单一的方向性麦克风的麦克风阵列功能,是指音频信号源的数度范围内。
创建一个语音识别引擎
语音创建一个语音识别引擎,如下:
static
void Main(string[] args)

{

  using (var source = new KinectAudioSource())

  {

    ...

    RecognizerInfo ri = SpeechRecognitionEngine.InstalledRecognizers()

                         .Where(r => r.Id == RecognizerId)

                         .FirstOrDefault();

    using (var sre = new SpeechRecognitionEngine(ri.Id))

    {

      ...

    }

  }

  ...

}
SpeechRecognitionEngine.InstalledRecognizers是一个静态方法,返回系统上的语音识别引擎的列表。语音使用语言集成查询(LINQ)获得列表中的第一识别的ID作为一个RecognizerInfo对象,并返回结果。发言,然后使用RecognizerInfo.Id创建一个SpeechRecognitionEngine对象。
指定的命令
讲话使用命令识别承认三个语音命令:“红”,“绿色”和“蓝色”您指定这些命令的创建和加载一个包含被认可的话,如下的语法。

static void Main(string[] args)

{

  using (var source = new KinectAudioSource())

  {

    ...

抱歉!评论已关闭.