首先先配置好权限

注意:不能同时支持讯飞语音识别和百度语音识别,只可二选一

 

百度语音识别

在manifest.json文件“App模块配置”项的“Speech(语音输入,只能选一个)”下,勾选“百度语音识别”项,并输入从百度开放平台申请的参数:

  • appid:
    百度语音开放平台申请的AppID
  • apikey:
    百度语音开放平台申请的API Key
  • secretkey:
    百度语音开放平台申请的Secret Key

请到百度语音开放平台申请:https://console.bce.baidu.com/ai/

 

讯飞语音识别

在manifest.json文件“App模块配置”项的“Speech(语音输入,只能选一个)”下,勾选“讯飞语音识别”项:

注意:讯飞语音识别有识别次数限制,建议优先使用百度语音识别。

配置完成后Ctrl+S保存提交App云端打包生效。

 

不管你用哪一个,记住,都是有次数限制的,讯飞,uniapp官网支持,所以并不需要配置什么,但是你最好还是自己上讯飞官网申请创建一个语音识别应用,不然到时候你云打包的时候,真的不知道他在读什么鸟语,我猜测是次数用完限制了,不啰嗦,上代码

var receiver = plus.android.implements('com.iflytek.cloud.SynthesizerListener', {
					onEvent: function(name) {
						console.log("onEvent");
					},
					onSpeakBegin: function() {
						console.log("开始阅读");
					},
					onSpeakPaused: function() {
						console.log(" 暂停播放 ");
					},
					onSpeakResumed: function() {
						console.log("继续播放");
					},
					onBufferProgress: function(percent, beginPos, endPos, info) {
						console.log("合成进度" + percent);
					},
					onSpeakProgress: function(percent, beginPos, endPos) {
						console.log("播放进度" + percent);
					},
					onCompleted: function(error) {
						console.log("播放完毕");
					}
				});
				
				var main = plus.android.runtimeMainActivity();
				
				var SpeechUtility = plus.android.importClass('com.iflytek.cloud.SpeechUtility');
				//这里的appid填你自己申请的
				SpeechUtility.createUtility(main, "appid=xxxxx");
				
				var SynthesizerPlayer = plus.android.importClass('com.iflytek.cloud.SpeechSynthesizer');
				
				var play = SynthesizerPlayer.createSynthesizer(main, null);
				 // 开始合成
				play.startSpeaking('生活就是海洋', receiver);

注意:如果要本地测试的话,一定要打自定义基座,不然无效

 

 

有兴趣可以关注一下公众号,会不定期分享一些东西,也欢迎各位投稿分享!谢谢

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐