.net core 和 WPF 開發升訊威線上客服系統:呼叫有道翻譯介面實現實時自動翻譯的方法

曹旭升(sheng.c)發表於2022-02-21

業餘時間用 .net core 寫了一個線上客服系統。並在部落格園寫了一個系列的文章,寫介紹這個開發過程。

我把這款業餘時間寫的小系統丟在網上,陸續有人找我要私有化版本,我都給了,畢竟軟體業的初衷就是免費和分享,後來我索性就官方發了一個私有化版直接給別人下載。希望能夠打造: 開放、開源、共享。努力打造 .net 社群的一款優秀開源產品。

2021年下半年,陸續有朋友聯絡我,表示從事外貿行業,希望客服系統能夠實現客服與訪客之間雙向的實時自動翻譯。

一開始我想的比較複雜,拖著沒做這個功能,後來詢問的朋友越來越多,我仔細調研了一下這個需求,發現通過公有云上的介面實現起來,非常的簡單!整個對接實現過程不誇張的說,10 分鐘就完成了。

本文將詳細的介紹百度翻譯介面的註冊、開通、對接全過程,以及 原始碼 ,希望對你有用。

先看實現效果

客服端程式以原文和譯文對照的方式顯示。

訪客端以訪客語言顯示。

以設定預設翻譯所有訪客的訊息,也可以由客服根據不同訪客自行決定是否翻譯。


簡介

升訊威線上客服與營銷系統是基於 .net core / WPF 開發的一款線上客服軟體,宗旨是: 開放、開源、共享。努力打造 .net 社群的一款優秀開源產品。

完整私有化包下載地址

? https://kf.shengxunwei.com/freesite.zip

鐘意的話請給個贊支援一下吧,謝謝~

安裝部署說明書

? https://docs.shengxunwei.com/Post/f7bc8496-14ee-4a53-07b4-08d8e3da6269


有道翻譯的對接使用

有道翻譯註冊認證過程較為簡單,但其所允許的 QPS(每秒請求數量)不詳,翻譯質量較百度略差。

訪問有道智雲,註冊賬戶並認證。

https://ai.youdao.com

建立文字翻譯應用

選擇“自然語言翻譯服務”下的“文字翻譯”,點選“建立應用”按鈕。

在建立應用畫面,勾選“文字翻譯”,接入方式選擇“API”。其它資訊按需填寫。

獲取 應用ID 和 金鑰

在應用總覽畫面中,檢視應用的 應用ID金鑰,將其儲存備用,在隨後的客服系統主程式配置中使用。

使用 C# 呼叫翻譯介面

有道介面說明

文字翻譯API介面提供有道的翻譯服務,包含了中英翻譯和小語種翻譯功能。只需要通過呼叫文字翻譯API,傳入待翻譯的內容,並指定要翻譯的源語言(支援源語言語種自動檢測)和目標語言種類,就可以得到相應的翻譯結果。

文字翻譯API HTTPS地址:

https://openapi.youdao.com/api

傳輸方式 HTTPS
請求方式 GET/POST
字元編碼 統一使用UTF-8 編碼
請求格式 表單
響應格式 JSON
介面呼叫引數
呼叫API需要向介面傳送以下欄位來訪問服務。

欄位名 型別 含義 必填 備註
q text 待翻譯文字 True 必須是UTF-8編碼
from text 源語言 True 參考下方 支援語言 (可設定為auto)
to text 目標語言 True 參考下方 支援語言 (可設定為auto)
appKey text 應用ID True 可在 應用管理 檢視
salt text UUID True uuid,唯一通用識別碼
sign text 簽名 True sha256(應用ID+input+salt+curtime+應用金鑰)
signType text 簽名型別 True v3
curtime text 當前UTC時間戳(秒) true TimeStamp
ext text 翻譯結果音訊格式,支援mp3 false mp3
voice text 翻譯結果發音選擇 false 0為女聲,1為男聲。預設為女聲
strict text 是否嚴格按照指定from和to進行翻譯:true/false false 如果為false,則會自動中譯英,英譯中。預設為false
vocabId text 使用者上傳的詞典 false 使用者指定的詞典 out_id,目前支援英譯中
簽名生成方法如下:
signType=v3;
sign=sha256(應用ID+input+salt+curtime+應用金鑰);
其中,input的計算方式為:input=q前10個字元 + q長度 + q後10個字元(當q長度大於20)或 input=q字串(當q長度小於等於20);

使用good單詞查詢作為示例進行說明:

輸出結果與FROM和TO的值有關:

  1. 當FROM和TO的值都在{zh-CHS, EN}範圍內時
{
  "errorCode":"0",
  "query":"good", //查詢正確時,一定存在
  "translation": [ //查詢正確時一定存在
      "好"
  ],
  "basic":{ // 有道詞典-基本詞典,查詞時才有
      "phonetic":"gʊd",
      "uk-phonetic":"gʊd", //英式音標
      "us-phonetic":"ɡʊd", //美式音標
      "uk-speech": "XXXX",//英式發音
      "us-speech": "XXXX",//美式發音
      "explains":[
          "好處",
          "好的",
          "好",
      ]
  },
  "web":[ // 有道詞典-網路釋義,該結果不一定存在
      {
          "key":"good",
          "value":["良好","善","美好"]
      },
      {...}
  ],
  "dict":{
      "url":"yddict://m.youdao.com/dict?le=eng&q=good"
  },
  "webdict":{
      "url":"http://m.youdao.com/dict?le=eng&q=good"
  },
  "l":"EN2zh-CHS",
  "tSpeakUrl":"XXX",//翻譯後的發音地址
  "speakUrl": "XXX" //查詢文字的發音地址
}
  1. 當FROM和TO的值有在{zh-CHS, EN}範圍外的時候
{
   "errorCode": "0",
   "translation": ["大丈夫です"], //小語種翻譯,一定存在
   "dict":{
       "url":"yddict://m.youdao.com/dict?le=jap&q=%E6%B2%A1%E5%85%B3%E7%B3%BB%E3%80%82"
   },
   "webdict":{
       "url":"http://m.youdao.com/dict?le=jap&q=%E6%B2%A1%E5%85%B3%E7%B3%BB%E3%80%82"
   },
   "l":"zh-CHS2ja",
   "tSpeakUrl":"XXX",//翻譯後的發音地址
   "speakUrl": "XXX" //查詢文字的發音地址
}

升訊威線上客服與營銷系統希望能夠打造: 開放、開源、共享。努力打造 .net 社群的一款優秀開源產品。

完整私有化包下載地址

? https://kf.shengxunwei.com/freesite.zip

鐘意的話請給個贊支援一下吧,謝謝~

安裝部署說明書

? https://docs.shengxunwei.com/Post/f7bc8496-14ee-4a53-07b4-08d8e3da6269

鐘意的話請給個贊支援一下吧,謝謝~

相關文章