您好,登錄后才能下訂單哦!
這篇文章給大家介紹怎么在微信小程序中利用同聲傳譯實現(xiàn)語音識別功能,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
// app.json { ... "plugins": { ... "WechatSI": { "version": "0.3.4", // 這是同聲傳譯的版本(也可以在微信公眾平臺添加的同聲傳譯查看最新版本) "provider": "wx069ba97219f66d99" // 這是同聲傳譯的ID } } }
如果你是使用 Hbuildex 進行開發(fā)小程序的話,需要在 manifest.json 文件的源碼視圖中進行添加修改。
在源碼視圖中找到 mp-weixin,然后按照以下代碼進行添加修改
// manifest.json /* 小程序特有相關(guān) */ "mp-weixin": { "appid": "xxxxxxxxxx", // 這是你小程序的AppId ... "plugins": { "WechatSI": { "version": "0.3.4", // 這是同聲傳譯的版本(也可以在微信公眾平臺添加的同聲傳譯查看最新版本) "provider": "wx069ba97219f66d99" // 這是同聲傳譯的ID } } }
做完以上步驟之后,就可以根據(jù)官方文檔進行開發(fā)了
下面就是我的功能實現(xiàn)代碼了
// index.vue 在這里我的頁面布局只寫了語音按鈕(簡化了) <template> <div @click="yuyin" class="yuyin-icon"> <img :src="baseUrlImg+'/yuyin.png'" alt="" class="img" /> </div> </template> <script> export default { data() { return { // 這是搜索框中的內(nèi)容 search_word: '' } }, methods: { // 語音點擊事件 yuyin: function() { var that = this // 向用戶發(fā)起授權(quán)請求 uni.authorize({ scope: 'scope.record', // 獲取錄音功能,也就是麥克風權(quán)限 success: (res) => { // 用戶授權(quán)使用麥克風權(quán)限調(diào)用語音搜索事件函數(shù) that.plugin() }, // 用戶沒有授權(quán)使用麥克風權(quán)限執(zhí)行以下代碼 fail(res) { // 顯示模態(tài)彈窗提示用戶沒有開啟麥克風權(quán)限 uni.showModal({ content: '檢測到您未開啟麥克風權(quán)限,請保持麥克風權(quán)限為開啟狀態(tài)', confirmText: '去開啟', showCancel: false, success: (res) => { console.log(res) if(res.confirm) { // 調(diào)起客戶端小程序設(shè)置界面,返回用戶設(shè)置的操作結(jié)果 uni.openSetting({ success: (res) => { console.log(res) if(res.authSetting['scope.record'] == false) { that.plugin() } } }) } else { uni.navigateBack({ delta: 1 }) } } }) } }) } // 語音搜索 plugin () { var that = this var plugin = requirePlugin('WechatSI') var manager = plugin.getRecordRecognitionManager() // 設(shè)置錄音的參數(shù) manager.start({ duration: 5000, // 時間 lang: "zh_CN" // 語言 }) // 開始錄音 manager.onStart = function(res) { console.log("成功開始錄音識別", res) if(res.msg == 'Ok') { // 提示用戶正在錄音 uni.showToast({ title: '正在識別語音...', duration: 5000, icon: 'loading' }) } } // 錄音結(jié)束 manager.onStop = function(res) { // 提示用戶正在跳轉(zhuǎn)到搜索頁面(因為我做的時候,在跳轉(zhuǎn)這塊會有1~2秒的時間,所以我設(shè)置了一個提示框) uni.showToast({ title: '正在跳轉(zhuǎn)...', duration: 1500, icon: 'success' }) // 將識別的語音翻譯成文本 plugin.translate({ lfrom: 'en_US', lto: 'zh_CN', content: res.result, success: function(res) { if(res.retcode == 0) { // (iphone是這樣,Android不清楚)語音識別有時會在末尾添加符號 if(res.result.charAt(res.result.length - 1) == '。' || res.result.charAt(res.result.length - 1) == '.') { res.result = res.result.substr(0, res.result.length - 1); } // 將翻譯后的內(nèi)容放到搜索框中 that.search_word = res.result // 執(zhí)行搜索功能的代碼 that.searchName() } else { console.log('翻譯失敗', res) } }, fail: function(res) { console.log('網(wǎng)絡(luò)失敗', res) // 當用戶說話聲音小或者用戶沒有說話就會報這兩個錯誤 if(res.retcode == -10001 || res.retcode == -10002) { uni.showToast({ title: '沒有聽清您說什么', duration: 1000, icon: 'error' }) } } }) } // 打印錯誤信息 manager.onError = function(res) { console.error('error msg', res.msg) } } } } </script>
關(guān)于怎么在微信小程序中利用同聲傳譯實現(xiàn)語音識別功能就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。