最近在用soket實現終端控制器的功能,然后就想用語音控制,這樣顯得更AI
WechatSI在manifest.json中配置:

在vue中插入如下展示代碼:
<view class="voice-content">語音識別內容:<text class="text holy-font">{{currentText}}</text></view>
如果需要按住按鈕說話,松開回調:
<button class="echo-btn cuIcon-voice" :class="isSpeaking?'orange':'green'" @touchstart="streamRecord" @touchend="streamRecordEnd"></button>
接下來就是js使用方法:
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通信推送消息,可實現語音控制大屏展示項目
