郝二偉
(中國(guó)人民解放軍31006 部隊(duì),北京 100840)
翻譯軟件的功能都是將源語言轉(zhuǎn)換為目標(biāo)語言,其目的是為廣大用戶工作或生活中消除語言障礙,提供高質(zhì)量的語種翻譯服務(wù)。在大數(shù)據(jù)和人工智能技術(shù)迅速發(fā)展的背景下,眾多互聯(lián)網(wǎng)公司面向廣大用戶提供了翻譯、地圖、語言識(shí)別等多種云服務(wù),翻譯軟件的功能也越來越強(qiáng)大,翻譯質(zhì)量不斷提高。目前國(guó)內(nèi)外市場(chǎng)上涌現(xiàn)了許多優(yōu)秀的翻譯軟件,如谷歌翻譯、百度翻譯、網(wǎng)易有道翻譯等。在翻譯軟件的幫助下,人們文化和語言之間的溝通交流變得簡(jiǎn)單高效,人們可以更好的學(xué)習(xí)世界各地先進(jìn)的文化技術(shù)。[1]百度翻譯開放平臺(tái)是百度公司面向廣大軟件開發(fā)者提供開放服務(wù)的在線平臺(tái)。[2]百度翻譯開放平臺(tái)提高的專業(yè)化翻譯服務(wù)涵蓋:通用翻譯API、定制化翻譯API、語音翻譯SDK、拍照翻譯SDK 等,并且還在持續(xù)更新。目前,通用翻譯API 支持28種語言的語種檢測(cè)和互譯,覆蓋中、英、日、韓、西、法、泰、阿、俄、葡、德、意、荷、芬、丹等。任何第三方應(yīng)用或網(wǎng)站都可以通過使用百度提供通用翻譯API,為用戶提供實(shí)時(shí)優(yōu)質(zhì)的多語言翻譯服務(wù),提升用戶體驗(yàn)。通用翻譯API 標(biāo)準(zhǔn)版可免費(fèi)使用,不限字符量,并且沒有訪問頻次限制。
JAVA 語言是目前主流開發(fā)語言,在互聯(lián)網(wǎng)軟件開發(fā)中得到廣泛的應(yīng)用。[3]本文以JAVA 語言為例,研究基于百度翻譯平臺(tái)通用翻譯API 的在線翻譯軟件實(shí)現(xiàn)技術(shù)。
百度翻譯開放平臺(tái)通用翻譯API 采用全流程網(wǎng)上自助申請(qǐng)的模式。用戶點(diǎn)擊百度翻譯開放平臺(tái)網(wǎng)站(https://api.fanyi.baidu.com)上方的“登錄”按鈕,通過百度賬號(hào)登錄,在產(chǎn)品服務(wù)頁面點(diǎn)擊“立即使用”,按照頁面提示信息注冊(cè)成為開發(fā)者,即可獲得APPID 和密鑰信息。同一百度賬號(hào)或手機(jī)號(hào)碼僅能申請(qǐng)一組APPID 和密鑰信息,該APPID 和密鑰信息可用于多項(xiàng)服務(wù)調(diào)用。已注冊(cè)開發(fā)者的用戶,可在產(chǎn)品服務(wù)頁面點(diǎn)擊“立即使用”或者在管理控制臺(tái)開通通用翻譯API 服務(wù)。
通用翻譯API 通過HTTP 接口對(duì)外提供多語種互譯服務(wù)。軟件開發(fā)人員只需要通過調(diào)用通用翻譯API,傳入待翻譯的內(nèi)容,并指定要翻譯的源語言(支持源語言語種自動(dòng)檢測(cè))和目標(biāo)語言種類,就可以得到相應(yīng)的翻譯結(jié)果。
請(qǐng)求方式可使用GET 或POST 方式,字符編碼統(tǒng)一采用UTF-8編碼格式。輸入?yún)?shù)如表1所示:

表1 輸入?yún)?shù)
返回結(jié)果是JSON 格式,參數(shù)說明如表2所示:

表2 參數(shù)說明
根據(jù)API 文檔說明,在線翻譯軟件采用JAVA 語言,實(shí)現(xiàn)軟件與百度翻譯平臺(tái)通用翻譯API 的接口調(diào)用。軟件通過HTTP 方式,向通用翻譯API 提交待翻譯的文本和目標(biāo)語言等請(qǐng)求。通用翻譯API 向軟件返回基于JSON 數(shù)據(jù)格式的翻譯結(jié)果。軟件對(duì)獲取到的JSON 數(shù)據(jù)進(jìn)行解析,從而得到翻譯結(jié)果。
軟件向百度翻譯平臺(tái)通用翻譯API 提交待翻譯的文本。主要代碼如下:
public class TransApi {
private static final String TRANS_API_HOST = "http://api.fanyi.baidu.com/api/trans/vip/translate";
private String appid;
private String securityKey;
public TransApi(String appid,String securityKey) {
this.appid = appid;
this.securityKey = securityKey;
}
public String getTransResult(String query,String from,String to) {
Map<String,String> params = buildParams(query,from,to);
return HttpGet.get(TRANS_API_HOST,params);
}
private Map<String,String> buildParams(String query,String from,String to) {
Map<String,String> params = new HashMap<String,String>();
params.put("q",query);
params.put("from",from);
params.put("to",to);
params.put("appid",appid);
// 隨機(jī)數(shù)
String salt = String.valueOf(System.currentTimeMillis());
params.put("salt",salt);
// 簽名
String src = appid + query + salt + securityKey;
params.put("sign",MD5.md5(src));
return params;
}
}
軟件對(duì)獲取到的JSON 數(shù)據(jù)進(jìn)行解析,得到翻譯結(jié)果。主要代碼如下:
public class Main {
private static final String APP_ID = "201910300003****";
private static final String SECURITY_KEY ="iRBibqaHjXuq***";
public static void main(String[]args) {
TransApi api = new TransApi(APP_ID,SECURITY_KEY);
String query = "今天是個(gè)好日子";
String json = api.getTransResult(query,"auto","en");
Gson gson = new Gson();
Result result = gson.fromJson(json,Result.class);
System.out.println(result.getTrans_result().get(0).getDst());
}
}
以輸入“今天是個(gè)好日子”為例,百度通用翻譯API 返回的JSON 數(shù)據(jù)為{"from":"zh","to":"en","trans_result":[{"src":"u4ecau5929u662fu4e2au597du65e5u5b50","dst":"Today is a good day"}]}。從中可以看到,dst 參數(shù)中即為英文翻譯結(jié)果。
網(wǎng)上各大云服務(wù)商提供了眾多API 開發(fā)接口,為互聯(lián)網(wǎng)程序開發(fā)提供了極大便利,提高了軟件開發(fā)效率和質(zhì)量。本文利用百度云的通用翻譯API,設(shè)計(jì)了基于JAVA 和JSON 技術(shù)的在線翻譯軟件,研究了在線翻譯軟件實(shí)現(xiàn)技術(shù)。這種在線翻譯軟件開發(fā)解決方案,基于百度的后臺(tái)服務(wù),具有功能強(qiáng)大、翻譯速度快,翻譯質(zhì)量高等特點(diǎn)。