一个用于讯飞离线命令词识别的BNF语法文件
小技巧: 把自己的语音先用在线ASR方式识别出来(在线方式识别率高), 然后把识别出来的结果通过离线TTS转成标准普通话, 再做离线命令词识别, 效果好的很! :P
在讯飞提供的样例上进行了扩充, 加入了控制家电的功能, 实测可用.
讯飞BNF的语法格式可参考:http://bbs.xfyun.cn/forum.php?mod=viewthread&tid=7595
#BNF+IAT 1.0 UTF-8;
!grammar call;
!slot <want>;
!slot <dialpre>;
!slot <dialsuf>;
!slot <contact>;
!slot <turnOn>;
!slot <machine>;
!start <callstart>;
<callstart>:[<want>]<dial>|[<want>]<control>;
<dial>:<dialpre><contact>[<dialsuf>];
<control>:<turnOn><machine>|<turnOff><machine>;
<want>:我想|我要|请|帮我|我想要|请帮我;
<dialpre>:打电话给!id(10001)|打给!id(10001)|拨打!id(10001)|拨打电话给!id(10001)|呼叫!id(10001)|
打一个电话给!id(10001)|打个电话给!id(10001)|给|拨通!id(10001)|
接通!id(10001)|呼叫!id(10001)|呼叫给!id(10001)|打!id(10001);
<dialsuf>:打电话!id(10001)|打个电话!id(10001)|打一个电话!id(10001)|
拨打电话!id(10001)|拨电话!id(10001)|拨个电话!id(10001)|呼个电话!id(10001)|
的电话!id(10001)|的号码!id(10001)|的手机!id(10001)|
的办公电话!id(10001)|的移动号码!id(10001)|的联通号码!id(10001)|
的电信号码!id(10001)|客服电话!id(10001);
<contact>:六一|我;
<turnOn>:打开|开一下|开启|启动;
<turnOff>:关闭|关一下|关掉|停止;
<machine>:水泵|电脑;