项目需求:根据极光推送的消息,语音播出内容。
项目环境:
问题描述:^讯飞语音插件是一个比较老的插件,package.json文件都没有。好像cordova7.0以上安装插件就要求要有package.json文件。
当然,使用cordova6.0直接安装是没有任何问题的,不过像我这样喜新厌旧的人,是不会妥协的。
没有package.json文件我就给你创建不就好了,网上看了下,创建package.json还挺简单。在插件的根目录内执行命
npm install -g plugman
plugman createpackagejson /path/to/your/plugin // 这个是插件的全路径
创建成功,安装插件,也没有报错了。但是run android的时候,还是报错Error: ENOENT: no such file or directory, open..../config.xml
网上找了很多资料,说是android7.0引入资源文件的路径改了,还有plugin.xml引入.jar文件的标签也换了。
android7.0的目录结构跟android6.0的目录结构不一样了,都整合在app目录下了。所以上图的assets和libs都要放到app下才对,插件的plugin.xml文件修改为
完整的plugin.xml如下
cordova-plugin-xunfeiListenSpeaking
5b6d3768
本示例为讯飞语音Android平台开发者提供语音听写、语法识别、语义理解和语音合成等代码样例,旨在让用户能够依据该示例快速开发出基于语音接口的应用程序。
科大讯飞作为中国最大的智能语音技术提供商,在智能语音技术领域有着长期的研究积累,并在中文语音合成、语音识别、口语评测等多项技术上拥有国际领先的成果。科大讯飞是我国唯一以语音技术为产业化方向的“国家863计划成果产业化基地”…
iFLYTEK is a national key software enterprise dedicated to the research of intelligent speech and language technologies, development of software and chip products, provision of speech information services, and integration of E-government systems. The intelligent speech technology of iFLYTEK, the core technology of the company, represents the top level in the world.
\t上传内容为:\n\t#ABNF 1.0 gb2312;\n\tlanguage zh-CN;\n\tmode voice;\n\troot $main;\n\t$main = $place1 到$place2 ;\n\t$place1 = 北京 | 武汉 | 南京 | 天津 | 东京;\n\t$place2 = 上海 | 合肥;
\t您可以说:\n\t今天的天气怎么样?\n\t北京到上海的火车?\n\t有什么好吃的?\n\t上海外滩有哪些酒店?\n\n\t更多语义请登录:\n\thttp://osp.voicecloud.cn/ \n\t配置您的专属语义吧!
请开始说话…
开始音频流识别
上传联系人
上传用户词表
上传成功
词表下载失败或内容为空
下载成功
iat_show
显示听写界面
结果动态修正
取消语音
- 本地合成
- 在线合成
- local
- cloud
- 小燕—女青、中英、普通话
- 小宇—男青、中英、普通话
- 凯瑟琳—女青、英
- 亨利—男青、英
- 玛丽—女青、英
- 小研—女青、中英、普通话
- 小琪—女青、中英、普通话
- 小峰—男青、中英、普通话
- 小梅—女青、中英、粤语
- 小莉—女青、中英、台湾普通话
- 小蓉—女青、中、四川话
- 小芸—女青、中、东北话
- 小坤—男青、中、河南话
- 小强—男青、中、湖南话
- 小莹—女青、中、陕西话
- 小新—男童、中、普通话
- 楠楠—女童、中、普通话
- 老孙—男老、中、普通话
- xiaoyan
- xiaoyu
- catherine
- henry
- vimary
- vixy
- xiaoqi
- vixf
- xiaomei
- xiaolin
- xiaorong
- xiaoqian
- xiaokun
- xiaoqiang
- vixying
- xiaoxin
- nannan
- vils
- 正常
- 高兴
- 悲伤
- 生气
- neutral
- happy
- sad
- angry
- 通话
- 系统
- 铃声
- 音乐
- 闹铃
- 通知
- 0
- 1
- 2
- 3
- 4
- 5
缓冲进度为%d%%,播放进度为%d%%
- 普通话
- 粤语
- 河南话
- 英语
- mandarin
- cantonese
- henanese
- en_us
"[word]\napple\nbanana\norange"
"The quick brown fox jumps over the lazy dog."
"知,痴,是"
"磁铁,率领,脆弱,动手,古筝"
"一座座雪峰插入云霄,峰顶银光闪闪,大大小小的湖泊,像颗颗宝石镶嵌在彩带般的沟谷中。"
- 英语
- 汉语
- en_us
- zh_cn
- 单字
- 词语
- 句子
- read_syllable
- read_word
- read_sentence
- plain
- complete
- 有标点
- 无标点
- 1
- 0
- 开启
- 关闭
这样,重新安装插件再platform android,然后 run android 就ok啦。
讯飞cordova插件使用笔记
在需要使用的页面声明
declare var xunfeiListenSpeaking: any;
播放语音
xunfeiListenSpeaking.startSpeak(success => {
// 读完‘666’会进入这里,可以在这里写个循环读个不停
console.log("播放成功");
}, err => {
// 报错会进到这里
console.log("err", err);
}, '666');
// 其中 ‘666’ 就是播放的内容
停止播放
xunfeiListenSpeaking.stopSpeak(); // 停止播放,本次播放结束
暂停播放
xunfeiListenSpeaking.pauseSpeaking(); // 暂时停止播放
恢复播放
xunfeiListenSpeaking.resumeSpeaking(); // 恢复那个暂停的播放
总结:由于对cordova插件的封装不了解,在给cordova插件升级这一块来说,真是巨难。自己网上找了好多资料,还把极光插件装了又卸载,就是为了看看他装上了,paltforms/android 的目录结构,并根据极光推送插件的plugin.xml来调整讯飞插件的plugin.xml。cordova6.0也装过,也是为了看看android6.0和android7.0目录结构的区别。对于老手来说,可能一眼就看穿,可是对于我,老天保佑,我特么的终于给装上了。我不是在写代码,我是在写bug...
最后附上参考链接,不过感觉用这个插件的人好少。。。。
1、在cordova Android7.0.0 以下版本集成最新插件
^https://www.jianshu.com/p/23b117ca27a6
2、cordova plugin.xml详解
^https://www.jianshu.com/p/92dd69ae7d8f
3、cordova 中文网文档
^http://cordova.axuer.com/docs/zh-cn/latest/guide/cli/index.html
4、讯飞cordova插件git地址
^https://github.com/Edc-zhang/cordova-plugin-IFlyspeech