上期,咱們在《「醫院 LBS 位置服務」插件:輸出LBS室內位置能力,爲改善就醫服務提供解決方案》一文中介紹了「醫院 LBS 位置服務」小程序插件的意義、使用場景以及使用方法。json
今天咱們爲你們推薦的插件是「微信同聲傳譯」,若是你想在小程序中擁有快速實現語音轉文字、文本翻譯、語音合成等能力,那麼「微信同聲傳譯插件」是你的不二選擇。接下來,咱們將從使用場景到使用方法,爲你做出詳細的介紹。小程序
今天咱們說到的「微信同聲傳譯」插件,是由微信智聆語音團隊、微信翻譯團隊與公衆平臺聯合推出的同傳開放接口,可經過語音轉文字、文本翻譯、語音合成接口,爲開發者賦能。值得一提的是,在原有功能的基礎上,插件還新增了對粵語語音識別的支持。segmentfault
經過這個插件,插件使用者能夠輕鬆實現語音讀取識別、文本轉語音和中英文文本轉換,避免這類需求的重複開發工做。微信
小程序「面對面翻譯」便使用了插件中的接口能力,並將其開源以幫助開發者快速開發,有興趣的讀者能夠體驗小程序 👇app
「面對面翻譯」小程序碼ide
把「微信同聲傳譯」插件放在小程序裏,既能夠將口語轉爲文字,也能夠幫助用戶判斷髮音是否標準純正,是最佳聽衆和英語學習道路上的良師益友。學習
這時能夠把「微信同聲傳譯」插件應用到翻譯小程序裏,說中文,譯英文,不再怕出國交流難。ui
只要在小程序裏有「微信同聲傳譯」插件,用戶就能夠按住按鈕說話,語音轉文字,發送彈幕!this
「微信同聲傳譯」的功能強大,使用起來卻十分簡單:spa
1.申請使用插件。在「小程序管理後臺 - 設置 - 第三方服務 - 插件管理」中查找插件名稱「微信同聲傳譯」(目前最新版本:0.2.2,appid:wx069ba97219f66d99),並申請使用。
2.引入插件代碼後修改配置文件 JSON:
// app.json { ... "plugins": { ... "WechatSI": { "version": "0.2.2", "provider": "wx069ba97219f66d99" } }
3.接下來,在 index.js
引入插件,獲取全局惟一的語音識別管理器 recordRecoManager
。
// index.jsconst plugin = requirePlugin("WechatSI")const manager = plugin.getRecordRecognitionManager()
若是你但願作到的效果是按住某個按鈕,開始識別語音,鬆開按鈕就結束識別,那你須要進行如下步驟的操做。
<view catchtouchstart="streamRecord" catchtouchend="endStreamRecord">中文view>
// index.jsPage({ data: {}, streamRecord: function() { manager.start({ lang: 'zh_CN', }) }, streamRecordEnd: function() { manager.stop() } })
<view>語音識別內容:{{currentText}}view>
// page.jsPage({ data: { currentText: '', }, initRecord: function() { //有新的識別內容返回,則會調用此事件 manager.onRecognize = (res) => { let text = res.result this.setData({ currentText: text, }) } // 識別結束事件 manager.onStop = (res) => { let text = res.result if(text == '') { // 用戶沒有說話,能夠作一下提示處理... return } this.setData({ currentText: text, }) // 獲得完整識別內容就能夠去翻譯了 this.translateTextAction() } }, translateTextAction: function() {}, onLoad: function() { this.initRecord() } })
<view>翻譯結果:{{translateText}}view>
// page.jsPage({ data: { currentText: '', translateText: '', }, translateTextAction: function() { let lfrom = 'zh_CN' let lto = 'en_US' plugin.translate({ lfrom: lfrom, lto: lto, content: this.data.currentText, tts: true, // 須要合成語音 success: (resTrans)=>{ // 翻譯能夠獲得 翻譯文本,翻譯文本的合成語音,合成語音的過時時間 let text = resTrans.result this.setData({ translateText: text, }) // 獲得合成語音讓它自動播放出來 wx.playBackgroundAudio({ dataUrl: resTrans.filename, title: '', }) }, }) }, })
plugin.translate
獲得的語音文件具備過時時間,能夠下載到本地使用。
若是像「面對面翻譯」小程序同樣須要存比較多歷史記錄的話,也能夠選擇過時以後調用 plugin.textToSpeech
接口再去從新合成一次。
plugin.textToSpeech({ lang: 'zh_CN', content: '我想從新進行語音合成', success: resTrans => { // 能夠從新獲得語音合成文件和過時時間 }, })
若是你想了解更多「微信同聲傳譯」插件詳情,歡迎訪問開發者社區插件版塊相應頁面(建議電腦訪問):
🔗https://mp.weixin.qq.com/wxop...
手機端用戶也能夠掃碼訪問 👇
內容來自:微信開放社區《小程序·小故事》欄目
原做者:謝滔、黃嘉敏
任何問題,歡迎前往微信開放社區: https://developers.weixin.qq.com
瞭解更多小程序開發相關內容,歡迎微信掃描下方二維碼關注微信極客WeGeek公衆號,共築微信生態。