| 
 | 
	
 
 
  Windows phone 8 这个新平台带给我们的惊喜还是很多的,其中内建支持中文语音命令,这点让人印象深刻.  
  我们可以通过编码为WP8程序添加语音交互的功能.比如场景如下:  
  拿人人客户端举例:用户可以任意界面长按home,然后对着手机说:"人人 发状态"那么这种场景下如果微博内部进行了处理,便可以相应并进入状态发布页面。如此是很棒的用户体验。那么我们要如何处理呢?  
  下面我们来模拟下这个场景(事实上人人客户端确实支持语音命令:-))  
  实现    
  1、配置语音控制文件  
   
  需要配置如下xml文件:  
 
 
 
 
 
 
 
人人 
 人人 发状态  
 
 
 人人 发状态  
 {Action}  
 正在 {Action}...  
 
 
 
 
 发状态  
 状态  
 
 
   
  我们分别看下文件中的结点对应的含义:  
  首先xml:lang这里由于我们要识别中文命令,那么需要将语言设置为zh-cn  
   
  CommandPrefix:命令的前缀 语音命令由前缀和具体命令组成  
  Example: 命令的例子,这个将出现在如下界面表示能识别的语音的例子  
  Command:一个command标签代表一个识别的命令  
  ListenFor:这个里面使用了{Action} Action在后面的PhraseList里面有定义,表明要识别  
  的命令为下面之一 
  FeedBack:这个是用户说完话之后系统说给用户的一段话  
  Navigate Target 故名思议,就是识别命令后要导航的程序内的目的地址(注意下由于我们的配置文件是xml类型所以当导航参数多的时候需要对&进行转义)  
  ParaseList:前面提到的要识别的命令,我们可以在其中加入任何想识别的文字比如走你  
   
  对这个文件的简单解释就到这里,这种配置文件的结构,我们在客户端内,只需要将VoiceCommand的处理方式和Second Tile保持一致即可  
   
  2、添加此文件到工程中(这步简单不用说了)  
  3、在客户端内添加初始化命令的代码  
 
 
 
await VoiceCommandService.InstallCommandSetsFromFileAsync(new Uri("ms-appx:///Voice.xml",UriKind.Absolute)); 
  此处有一点需要注意,这里需要使用上面格式的绝对路径,否则报错,具体原因是因为Uri类型问题(有兴趣的朋友可以自己找下先关文档)  
   
  另附上msdn对此处的文档:  
  http://msdn.microsoft.com/zh-cn/library/windowsphone/develop/jj206959(v=vs.105).aspx 
   
  如此我们便轻松添加语音控制到我们的程序,对于更高的业务需求本文没有涉及,只是让大家简单的了解下windows phone 8 的语音控制  
  如有问题欢迎与我留言交流,或者加入QQ群:182659848  
   
   
   |   
 
 
 
 | 
  
 | 
 | 
 | 
| 
 | 
 |