「微信同聲傳譯」小程序插件:快速實現語音轉文字、文本翻譯、語音合成等能力

上期,咱們在《「醫院 LBS 位置服務」插件:輸出LBS室內位置能力,爲改善就醫服務提供解決方案》一文中介紹了「醫院 LBS 位置服務」小程序插件的意義、使用場景以及使用方法。json

今天咱們爲你們推薦的插件是「微信同聲傳譯」,若是你想在小程序中擁有快速實現語音轉文字、文本翻譯、語音合成等能力,那麼「微信同聲傳譯插件」是你的不二選擇。接下來,咱們將從使用場景到使用方法,爲你做出詳細的介紹。小程序

「微信同聲傳譯」插件能作什麼?

今天咱們說到的「微信同聲傳譯」插件,是由微信智聆語音團隊、微信翻譯團隊與公衆平臺聯合推出的同傳開放接口,可經過語音轉文字、文本翻譯、語音合成接口,爲開發者賦能。值得一提的是,在原有功能的基礎上,插件還新增了對粵語語音識別的支持segmentfault

經過這個插件,插件使用者能夠輕鬆實現語音讀取識別、文本轉語音和中英文文本轉換,避免這類需求的重複開發工做。微信

小程序「面對面翻譯」便使用了插件中的接口能力,並將其開源以幫助開發者快速開發,有興趣的讀者能夠體驗小程序 👇app

clipboard.png

「面對面翻譯」小程序碼ide

「微信同聲傳譯」插件的使用場景

場景一:英語口語、聽力左右開弓,沒有外教也能學好英語!

把「微信同聲傳譯」插件放在小程序裏,既能夠將口語轉爲文字,也能夠幫助用戶判斷髮音是否標準純正,是最佳聽衆和英語學習道路上的良師益友。學習

場景二:出國旅遊,英語蹩腳怎麼辦?

這時能夠把「微信同聲傳譯」插件應用到翻譯小程序裏,說中文,譯英文,不再怕出國交流難。ui

場景三:看劇時想要吐槽!但是手裏有零食,打字不方便怎麼辦?

只要在小程序裏有「微信同聲傳譯」插件,用戶就能夠按住按鈕說話,語音轉文字,發送彈幕!this

如何接入「微信同聲傳譯」插件?

「微信同聲傳譯」的功能強大,使用起來卻十分簡單:spa

1、添加插件

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()

2、語音輸入

若是你但願作到的效果是按住某個按鈕,開始識別語音,鬆開按鈕就結束識別,那你須要進行如下步驟的操做。

<view  catchtouchstart="streamRecord" catchtouchend="endStreamRecord">中文view>
// index.jsPage({
  data: {},
  streamRecord: function() {
    manager.start({
      lang: 'zh_CN',
    })
  },
  streamRecordEnd: function() {
    manager.stop()
  }
})

3、綁定錄音回調事件

<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()
  }
})

4、文本翻譯

<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: '',
        })
      },
    })
  },
})

5、語音合成

plugin.translate 獲得的語音文件具備過時時間,能夠下載到本地使用。

若是像「面對面翻譯」小程序同樣須要存比較多歷史記錄的話,也能夠選擇過時以後調用 plugin.textToSpeech 接口再去從新合成一次。

plugin.textToSpeech({
    lang: 'zh_CN',
    content: '我想從新進行語音合成',
    success: resTrans => {      // 能夠從新獲得語音合成文件和過時時間
    },
})

若是你想了解更多「微信同聲傳譯」插件詳情,歡迎訪問開發者社區插件版塊相應頁面(建議電腦訪問):

🔗https://mp.weixin.qq.com/wxop...

手機端用戶也能夠掃碼訪問 👇

clipboard.png

內容來自:微信開放社區《小程序·小故事》欄目
原做者:謝滔、黃嘉敏
任何問題,歡迎前往微信開放社區: https://developers.weixin.qq.com

瞭解更多小程序開發相關內容,歡迎微信掃描下方二維碼關注微信極客WeGeek公衆號,共築微信生態。
clipboard.png

相關文章
相關標籤/搜索