Cordova插件(語音識別--科大訊飛)

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 ,以及指定對應的安卓版本[email protected]

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章