最近在用soket實現終端控制器的功能,而後就想用語音控制,這樣顯得更AIjavascript
WechatSI在manifest.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