利用Wex5平台集成讯飞语音听写功能并生成可以运行的App,需要引用cordova插件。
源码:
<?xml version="1.0" encoding="UTF-8"?>
<div xmlns="http://www.w3.org/1999/xhtml" xid="window" class="window" component="$UI/system/components/justep/window/window" design="device:m;">
<div component="$UI/system/components/justep/model/model" xid="model"><div component="$UI/system/components/justep/data/data" autoLoad="true" xid="yyData" idColumn="yy"><column label="语音" name="yy" type="String" xid="xid1"></column>
<data xid="default1">[{}]</data></div></div>
<textarea component="$UI/system/components/justep/textarea/textarea" class="form-control" xid="textarea" style="height:100px;"></textarea>
<div component="$UI/system/components/justep/button/buttonGroup" class="btn-group btn-group-justified" tabbed="true" xid="buttonGroup1"><a component="$UI/system/components/justep/button/button" class="btn btn-link" label="开始语音听写" xid="startListenning" onClick="startListenningClick">
<i xid="i1"></i>
<span xid="span1">开始语音听写</span></a></div>
<div component="$UI/system/components/justep/button/buttonGroup" class="btn-group btn-group-justified" tabbed="true" xid="buttonGroup2">
<a component="$UI/system/components/justep/button/button" class="btn btn-link" label="取消听写" xid="cancleListenning" onClick="cancleListenningClick">
<i xid="i2"></i>
<span xid="span2">取消听写</span></a> </div>
<div component="$UI/system/components/justep/button/buttonGroup" class="btn-group btn-group-justified" tabbed="true" xid="buttonGroup3" style="border-bottom:1px solid #666666;">
<a component="$UI/system/components/justep/button/button" class="btn btn-link" label="暂停听写" xid="stopListenning" onClick="stopListenningClick">
<i xid="i3"></i>
<span xid="span3">暂停听写</span></a> </div>
<div component="$UI/system/components/justep/button/buttonGroup" class="btn-group btn-group-justified" tabbed="true" xid="buttonGroup4">
<a component="$UI/system/components/justep/button/button" class="btn btn-link" label="开始语音合成" xid="startSpeaking" onClick="startSpeakingClick">
<i xid="i4"></i>
<span xid="span4">开始语音合成</span></a> </div>
<div component="$UI/system/components/justep/button/buttonGroup" class="btn-group btn-group-justified" tabbed="true" xid="buttonGroup5">
<a component="$UI/system/components/justep/button/button" class="btn btn-link" label="暂停语音合成" xid="pauseSpeaking" onClick="pauseSpeakingClick">
<i xid="i5"></i>
<span xid="span5">暂停语音合成</span></a> </div>
<div component="$UI/system/components/justep/button/buttonGroup" class="btn-group btn-group-justified" tabbed="true" xid="buttonGroup6">
<a component="$UI/system/components/justep/button/button" class="btn btn-link" label="恢复语音合成" xid="resumeSpeaking" onClick="resumeSpeakingClick">
<i xid="i6"></i>
<span xid="span6">恢复语音合成</span></a> </div>
<div component="$UI/system/components/justep/button/buttonGroup" class="btn-group btn-group-justified" tabbed="true" xid="buttonGroup7">
<a component="$UI/system/components/justep/button/button" class="btn btn-link" label="停止语音听写" xid="stopSpeaking" onClick="stopSpeakingClick">
<i xid="i7"></i>
<span xid="span7">停止语音听写</span></a> </div></div>
js源码:
define(function(require) {
var $ = require("jquery");
var justep = require("$UI/system/lib/justep");
require("cordova!com.justep.cordova.plugin.iFlytek");
var Model = function() {
this.callParent();
};
// 开始语音听写,需要访问手机麦克风,用户通过麦克风开始录入语音,当用户长时间不录入语音时,会默认判定语音录入结束,即会返回识别的文本。用户可以传入参数控制语音听写的相关设置,现在插件中已经配置好了相关参数,建议传参数为空。
Model.prototype.startListenningClick = function(event) {
var me = this;
justep.Util.hint("请对准麦克风开始说话");
navigator.speech.startListening({}, function(res) {
me.comp('textarea').val(JSON.stringify(res));
});
};
// 取消听写,将不会返回识别结果
Model.prototype.cancleListenningClick = function(event) {
navigator.speech.cancelListening();
};
// 停止听写,会将识别的结果返回
Model.prototype.stopListenningClick = function(event) {
navigator.speech.stopListening();
};
// 开始语音合成,其中第一个参数为必传参数,即需要识别的文本,第二个参数为可选参数,可以通过该参数调节发音人的音量,发音人的音调,语速,以及方言。
Model.prototype.startSpeakingClick = function(event) {
navigator.speech.startSpeaking(this.comp('textarea').val());
};
// 暂停语音合成,下次调用恢复接口会继续合成
Model.prototype.pauseSpeakingClick = function(event) {
navigator.speech.pauseSpeaking();
};
// 恢复语音合成
Model.prototype.resumeSpeakingClick = function(event) {
navigator.speech.resumeSpeaking();
};
// 停止语音合成
Model.prototype.stopSpeakingClick = function(event) {
navigator.speech.stopSpeaking();
};
return Model;
});
打包的时候勾选插件,把参数复制填上,勾选插件的时候,里面有提示参数,复制上去即可。
(插件参数需要到讯飞官网申请!http://www.xfyun.cn/)
以上工作做完后,即可生成App。生成App的方法请参考另一个帖子:http://blog.csdn.net/weixin_36725553/article/details/53185375