uniapp結合小程序第三方插件「WechatSI」實現語音識別功能,進而實現終端控制

最近在用soket實現終端控制器的功能,而後就想用語音控制,這樣顯得更AIjavascript

WechatSImanifest.json中配置:vue

在vue中插入以下展現代碼:java

<view class="voice-content">語音識別內容:<text class="text holy-font">{{currentText}}</text></view>

  

若是須要按住按鈕說話,鬆開回調:json

<button class="echo-btn cuIcon-voice" :class="isSpeaking?'orange':'green'" @touchstart="streamRecord" @touchend="streamRecordEnd"></button>

  

接下來就是js使用方法:this

              streamRecord: function() {
				voicManager.start({
					lang: 'zh_CN',
				})
				uni.vibrateShort();
				this.isSpeaking = true;
			},
			streamRecordEnd: function() {
				voicManager.stop();
				uni.vibrateShort();
				this.isSpeaking = false;
			},
			initRecord: function() { //有新的識別內容返回,則會調用此事件
				// voicManager.onRecognize = (res) => {
				// 	let text = res.result
				// 	this.currentText=text;
				// } 
				// 識別結束事件
				voicManager.onStop = (res) => {
					console.log(res)
					let text = res.result
					if (text == '') { // 用戶沒有說話,能夠作一下提示處理...
						return
					}
					this.currentText = text;
					// 這裏獲得完整識別內容就能夠去翻譯了
					this.translateTextAction();
				}
			}
			// translateTextAction: function() {
			// 	let lfrom = 'zh_CN';
			// 	let lto = 'en_US';
			// 	voicPlugin.translate({
			// 		lfrom: lfrom,
			// 		lto: lto,
			// 		content: this.data.currentText,
			// 		tts: true, // 須要合成語音
			// 		success: (resTrans) => { // 翻譯能夠獲得 翻譯文本,翻譯文本的合成語音,合成語音的過時時間
			// 			let text = resTrans.result;
			// 			this.translateText=text;
			// 			// this.setData({
			// 			// 	translateText: text,
			// 			// }); // 獲得合成語音讓它自動播放出來
			// 			// wx.playBackgroundAudio({
			// 			// 	dataUrl: resTrans.filename,
			// 			// 	title: '',
			// 			// });
			// 		}
			// 	})
			// },

  

實現的效果以下:翻譯

另:結合利用soket通訊推送消息,可實現語音控制大屏展現項目blog

相關文章
相關標籤/搜索