本文讲解com.justep.cordova.plugin.iFlytek插件以及如何在Wex5中使用该插件。

1.插件概述

语音听写/语音合成插件,该插件集成了科大讯飞的SDK,提供了语音听写与语音合成的功能。语音合成:将一段文字转换成语音,可根据需要合成出不同音色、语速和语 调的声音,让机器像人一样开口说话。语音听写:将一段语音转换成文本,并把语音中包含的文字信息提取出来,优先识别用户手机特有的联系人。

2.插件使用

首先,我们需要在自己的js文件中引入该插件,即“require(“cordova!com.justep.cordova.plugin.iFlytek”);”然后即可在js中调用相关API。

该插件提供了详细的接口,下面我们就以代码的形式讲述各个接口的能力。

//开始语音听写,需要访问手机麦克风,用户通过麦克风开始录入语音,当用户长时间不录入语音时,会默认判定语音录入结束,即会返回识别的文本。用户可以传入参数控制语音听写的相关设置,现在插件中已经配置好了相关参数,建议传参数为空。
Model.prototype.startListenningClick = function(event){
	alert("请对准麦克风开始说话");
	navigator.speech.startListening({}, 
		function(res) {
			alert("listen:" + 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("故今日之责任,不在他人,而全在我少年。少年智则国智,少年富则国富;少年强则国强,少年独立则国独立;少年自由则国自由;少年进步则国进步;少年胜于欧洲,则国胜于欧洲;少年雄于地球,则国雄于地球。");
};
//暂停语音合成,下次调用恢复接口会继续合成
Model.prototype.pauseSpeakingClick = function(event){
	navigator.speech.pauseSpeaking();
};
//恢复语音合成
Model.prototype.resumeSpeakingClick = function(event){
	navigator.speech.resumeSpeaking();
};
//停止语音合成
Model.prototype.stopSpeakingClick = function(event){
	navigator.speech.stopSpeaking();
};

最后,我们只需要打包的时候勾选该插件,并且填入正确的参数信息即可。

注意:
① 由于科大讯飞的机制,SDK与APPID参数相对应,现在我们已经提供了默认的参数,如果开发者自己申请相关参数,请将插件中的SDK替换掉,否则将无法正常使用。
② 该SDK的使用是在线的,即需要接入网络,语音听写的速度也与网络状态相关,使用该插件请注意网络的接入。