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版本的appid

3、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

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐