查看: 794|回复: 2

[外翻] 基于Windows 10 IoT Core 的语音识别

[复制链接]

该用户从未签到

3

主题

23

积分

1

支持

IoT物联网技术组

Rank: 6Rank: 6

积分
23

发表于 2016-12-9 21:35:35 | 显示全部楼层 |阅读模式

马上注册,享受积分奖励和更多功能,让您轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 小白961218 于 2016-12-9 21:39 编辑

QQ图片20161209195247.jpg

      基于树莓派2和Windows 10 IoT Core ,用一些简单的SRGS Grammar(英文)制作一个简单的家庭设备自动化概念的样本。



需要的硬件:
      1.树莓派2
      2.一个USB接口的麦克风
      3.绿色和红色的LED灯各一个
      4.一个单通道的继电器
      5.通用型电灯



需要的软件
    untitled.png Microsoft Visual Studio 2015


连线
     1.两个LED灯分别接GPIO引脚5和引脚6
     2.继电器接GPIO引脚13
     3.继电器的3.3V接口接树莓派的3.3V接口
     4.继电器的GND接树莓派的GND
     5.电灯接继电器
     6.USB型麦克风接树莓派的USB接口
QQ图片20161209195402.jpg


原理
     这个设备可以通过语音识别对连接在树莓派上的不同设备进行打开与关闭的操作。在这个小型设备上我连接了一个绿色的LED灯和一个红色的LED灯以及用一个单通道继电器连接了一个电灯。如果你说“打开红灯”,它就会打开连接着引脚5的红灯;“打开绿灯”,它就会打开连接着引脚6的绿灯;“打开电灯”,它就会打开连接着引脚13的电灯。


代码部分
关于win10上的语音识别代码,你应该:
   1.创建和初始化语音识别对象
   2.添加和编译约束语法文件  如何创建语音识别语法(英文)
   3.开始一个连续的语音识别会话
   4.用处理器处理语音识别结果
以下是我的语法文件(SRGS grammar file)
[XML] 纯文本查看 复制代码
<?xml version="1.0" encoding="utf-8" ?>
<grammar
  version="1.0"
  xml:lang="en-US"
  root="automationCommands"
  xmlns="http://www.w3.org/2001/06/grammar"
  tag-format="semantics/1.0">

  <rule id="root">
    <item>
      <ruleref uri="#automationCommands"/>
      <tag>out.command=rules.latest();</tag>
    </item>
  </rule>

  <rule id="automationCommands">
    <item>
      <item> turn </item>
      <item>
        <ruleref uri="#commandActions" />
        <tag> out.cmd=rules.latest(); </tag>
      </item>
      <one-of>
        <item>
          <ruleref uri="#locationActions" />
          <tag> out.target=rules.latest(); </tag>
        </item>
        <item>
          <ruleref uri="#colorActions" />
          <tag> out.target=rules.latest(); </tag>
        </item>
      </one-of>
      <item>
        <ruleref uri="#deviceActions" />
        <tag> out.device=rules.latest(); </tag>
      </item>
    </item>
  </rule>

  <rule id="commandActions">
    <one-of>
      <item>
        on <tag> out="ON"; </tag>
      </item>
      <item>
        off <tag> out="OFF"; </tag>
      </item>
    </one-of>
  </rule>

  <rule id="locationActions">
    <one-of>
      <item>
        bedroom <tag> out="BEDROOM"; </tag>
      </item>
      <item>
        porch <tag> out="PORCH"; </tag>
      </item>
    </one-of>
  </rule>

  <rule id="colorActions">
    <one-of>
      <item>
        red <tag> out="RED"; </tag>
      </item>
      <item>
        green <tag> out="GREEN"; </tag>
      </item>
    </one-of>
  </rule>

  <rule id="deviceActions">
    <one-of>
      <item>
        light <tag> out="LIGHT"; </tag>
      </item>
      <item>
        led <tag> out="LED"; </tag>
      </item>
    </one-of>
  </rule>
</grammar> 


当语音识别系统基于你所提供的语法文件成功识别语音时,系统会调用处理器处理的结果。在处理器中我们可以根据需要识别的语音设置标签,标签会成为我们创建的语法文件的一部分,你可以看见在语法文件中有一些具体的标签,这些标签会在识别结果中出现,我们可以检查这些标签是否出现,将这个应用程序写入特定的GPIO,我们可以决定干什么。


演示视频
https://www.youtube.com/watch?v=MN18Uo_063g


更多关于代码
https://github.com/krvarma/RPiVoice

(Via:hackster)

签到天数: 397 天

连续签到: 1 天

[LV.9]以坛为家II

2

主题

432

积分

0

支持

发表于 2016-12-9 22:57:57 来自手机 | 显示全部楼层
膜拜,感觉应该可以做一个pci的板卡,作为家庭语音控制中心

来自:Lumia 650 Win10新机-智机社区客户端
[你知道吗]:

该用户从未签到

0

主题

13

积分

0

支持

发表于 2016-12-11 16:31:04 | 显示全部楼层
膜拜大神,感谢分享
[你知道吗]:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

  • WP10论坛

    智机社区
  • WP10软件

    应用推荐
  • APK云端转制

    APK云端转制
  • 智机网微博
    [email protected]
  • 智机网微信

    微信公众号
         

网站地图| 小黑屋|京ICP证150706号|京B2-20160045| 京公网安备11010802018258号

Powered by Discuz! X3.2 / Copyright 2010-2017 © 智机网 WFUN.COM Inc. All rights reserved.

快速回复 返回顶部 返回列表