Cordova插件(语音识别--科大讯飞)
cordova-plugin-IFlyspeech科大讯飞的语音听说读写的cordova插件最近在做一个hybrid webapp的时候需要用到语音识别的功能,网上找到科大讯飞的语音cordova插件,因为还没开始使用这个插件,先总结一下在配置科大讯飞当前cordova版本过程中,碰到的问题。网上插件配置的教程很多,也综合下自己的总结:1. 插件安装命令:cordova plugin add
cordova-plugin-IFlyspeech
科大讯飞的语音听说读写的cordova插件
最近在做一个hybrid webapp的时候需要用到语音识别的功能,网上找到科大讯飞的语音cordova插件,因为还没开始使用这个插件,先总结一下在配置科大讯飞当前cordova版本过程中,碰到的问题。
网上插件配置的教程很多,也综合下自己的总结:
1. 插件安装命令:
cordova plugin add https://github.com/Edc-zhang/cordova-plugin-IFlyspeech
(注意:建议不要使用上面的命令安装插件,因为需要手动去改插件里面的appid和sdk包, 所以先手动下载zip包到本地,需要修改一些配置文件,添加科大讯飞的appid)
2. 登录科大讯飞开放平台:
要使用科大讯飞的cordova插件,需要:
1、在科大讯飞开放平台官网:http://www.xfyun.cn/ 注册帐号登录,进入控制台,创建新应用(注意ios、android是需要分别创建应用的,也就是分别有一个对应的appid,我这里只是创建了一个android的应用,要在iOS中使用需要再创建一个iOS的应用)
2、添加所需要的新服务,我这里是语音听写服务。
未经过审核情况下, 每个appid每天有500次识别的限额,建议提交app给讯飞审核,审核通过后每天有20000次的限额,审核基本都会通过。
3、完成以上操作后,下载ios、android不同版本的sdk到本地。
一、解压之前在github上面下载的zip包,分别找到
ios目录:cordova-plugin-IFlyspeech-master/src/ios
android目录:cordova-plugin-IFlyspeech-master/src/android/libs
然后将讯飞上面下载的sdk ios路径:lib/iflyMSC.framework
android路径:libs分别替换到github插件解压的文件夹里面
二、替换插件文件夹里面的appid
1、Android:修改
cordova-plugin-IFlyspeech-master/plugin.xml文 件内容,
搜索【android:name=”IFLYTEK_APPKEY”】,
将对应的android:value=”改为申请的android版本的appid”2、Android:修改
cordova-plugin-IFlyspeech-master/src/android/res/values/strings.xml文件内容
搜索【app_id】将对应的值改为申请的android版本的appid3、ios:修改
cordova-plugin-IFlyspeech-master/src/ios/CDVSpeech.m文件内容
搜索【#define SPEECH_APP_ID】,将对应的值改为申请的ios版本的appid
完成后再执行cordova添加插件命令即可: cordova plugin add
插件(cordova-plugin-IFlyspeech-master)本地路径
(注意:这里添加本地插件时可能会出错,下面列举下我添加本地插件时碰到的问题及解决方法:)
添加本地插件时可能出现的错误:
1. 添加cordova plugin add (插件路径的时候),出现:
Error: Invalid package.json (XXX插件的路径) needs a valid package.json.
这里的意思是说,插件目录里面缺少一个package.json文件。
看了网上创建自定义插件的方法,可以创建package.json 文件
一、安装plumam
npm isntall -g plugman
二、安装完之后,就可以创建plugin
plugman create --name --plugin_id --plugin_version [--path ] [--variable NAME=VALUE]
参数说明:
pluginName: 插件名称,eg:toast
pluginID: 插件id, eg: org.my.toast
version: 版本号, eg: 0.0.1
variable NAME=VALUE: 扩展参数,如说明或者作者
eg:
创建插件
plugman create –name helloPlugin –plugin_id helloPlugin
–plugin_version 0.0.1
此命令会在当前目录创建一个helloPlugin插件
进入插件目录
cd helloPlugin
plugin.xml
增加Android平台plugman platform add --platform_name android
plugin.xml
增加iOS平台plugman platform add --platform_name ios
在有plugin.xml的目录里面,命令创建package.json文件
plugman createpackage.json
(然而这里创建的packa.json文件并没有解决报错问题)
三、当你的插件开发完成之后,添加到项目中
只需向平常添加插件的时候一样在控制台跳转到你的项目目录中,再运行如下命令:(add 后面为插件所在目录)
cordova plugin add (插件所在的目录)
四、其他命令
删除插件:
cordova plugin remove XXXXX(你的plugin_id)。
______________________________________________________________________________________
最后还是在Google找到了解决方案,出现 Error: Invalid package.json (XXX插件的路径) needs a valid package.json.的原因是当前cordova的版本过高,是cordova7.0版本,但是该插件需要的cordova版本是cordova6.0版本,所有需要给cordova版本降级。
npm install -g cordova@6
降级后重新添加android/iOS platform ,以及指定对应的安卓版本android@6.1.2
cordova platform rm android
cordova platform add android@6.1.2
重新添加本地的插件
在项目目录下:
cordova plugin add (本地插件的目录)
成功添加和安装上插件
现在可以开始调用插件进行语音识别:
//参数1: 成功回调方法
//参数2:失败回调方法(ios没有失败回调方法)
//参数3: 是否显示对话框,默认true
//参数4:是否生成标点符号 ,默认true
xunfeiListenSpeaking.startListen(function(data){
//data即是返回的文字
},null,true,true);
参考网页资料:
http://www.cnblogs.com/dinglinjie/p/7458548.html
http://www.cnblogs.com/LVBingo/p/6865978.html
http://www.cnblogs.com/li-you/p/6672111.html
https://github.com/Cloudoki/ImageDetectionCordovaPlugin/issues/11
更多推荐
所有评论(0)