转载请说明出处!
作者:kqw攻城狮
出处:个人站 | CSDN
效果图
- 示例源码
地址:http://download.csdn.net/detail/q4878802/9023825
步骤:
1. 下载SDK
前面文章有,就不在复述了。这里要选择离线命令词的服务以后,重新加载,因为需要下载离线命令词识别的资源文件
地址:http://blog.csdn.net/q4878802/article/details/47762169
2. 集成方法
前面文章有,就不在复述了。
地址:http://blog.csdn.net/q4878802/article/details/47778629
3. 正题,开始集成
1. 添加权限
这里用到的唤醒功能不是所有的权限都用到的,具体用到了哪些权限,可以看上面的链接,用到哪写权限就加哪些权限,这个为了快速方便测试,把讯飞用到的权限都加上了。
|
|
2. 初始化appid
我是将appid的初始化放在的Applicaiton下,具体可以下载源码
|
|
3. 工具类
|
|
4. 构建语法文件的工具类
|
|
5. 命令词识别工具类
|
|
这里的识别引擎设置的是SpeechConstant.TYPE_LOCAL,这种是本地识别引擎,只走本地识别,不走网络,如果换成SpeechConstant.TYPE_MIX,就是混合引擎,这种引擎方式,当本地没有识别到语法,返回20005错误码的时候,会直接请求语义接口,如果你语义开通了对应的场景,会走网络把你的语音转为语义,如果没有开通对应的场景,会把语音转为文字。
6. 测试类
|
|
7. 界面布局
|
|
8. BNF语法文件
|
|
在构建语法的时候,我们不是必要在assets目录下创建一个xxx.bnf文件,构建的时候我们只要能够拿到满足BNF语法文件的字符串就行,至于这个文件内容,你存在哪都无所谓,在程序里写死、存sp、数据库、自己程序维护都OK,只要满足BNF的语法就行。
BNF语法开发指南
下载地址:http://download.csdn.net/detail/q4878802/9023791
最后
- 如果你直接用我的Demo,我用的是测试版的离线包,只有35天的试用期,而且装机量只有3个,如果大家都用,很可能是不能正常运行的
- 如果是参考我的demo自己写一个,千万不要忘记替换appid和资源文件。