日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

python調用有道智云API實現文件批量翻譯

瀏覽:82日期:2022-07-08 16:04:57

最近工作過程中,需要對一批文件進行漢譯英的翻譯,對單個文檔手工復制、粘貼的翻譯方式過于繁瑣,考慮到工作的重復性和本人追求提高效率、少動手(懶),想通過調用已有的接口的方法,自己實現一個批量翻譯工具,一勞永逸。在網上找了幾款翻譯API,通過對比翻譯的結果和學習成本,選擇了有道智云的服務,自己開發(fā)了一個批量翻譯的小軟件。詳細記錄一下使用和開發(fā)過程,后面的小伙伴們有相關需求,可以參考。

批量文檔翻譯工具的使用

我這里開發(fā)批量文檔翻譯工具使用python作為開發(fā)工具,功能如下:

     1)通過文件夾選擇多個文檔;

     2)可以將多個文檔的翻譯結果存到目標文件夾下。

話不多說,看圖↓↓↓↓↓

python調用有道智云API實現文件批量翻譯

部分翻譯結果展示(涉及工作內容的保密性,這里用荷塘月色作為樣例):

python調用有道智云API實現文件批量翻譯

開發(fā)過程

下面開始詳細介紹調用有道智云API接口的步驟和軟件開發(fā)的過程:

1、個人開發(fā)者賬號注冊

首先,需要注冊個人的開發(fā)者賬號。

在官網點擊注冊,然后填寫個人資料。即可完成注冊,官網地址:http://ai.youdao.com/gw.s#/

python調用有道智云API實現文件批量翻譯

2、 創(chuàng)建應用和實例

注冊成功并登錄后個人中心頁面如下圖,有道智云提供了自然語言翻譯、文字識別、語音合成、語音測評等服務接口。 這些服務接口都是通過以實例的方式運行的,通過應用進行管理的。需要分別創(chuàng)建實例、創(chuàng)建應用,通過應用獲取應用ID和應用密鑰等信息。

python調用有道智云API實現文件批量翻譯

我這里用到的是自然語言翻譯服務,首先,需要分別創(chuàng)建一個應用、創(chuàng)建一個自然語音翻譯的實例;其次,需要將實例綁定到應用上。最后,就可以通過應用的應用ID、應用密鑰調用自然語音翻譯api接口了。有道平臺會對不同的實例、應用的使用情況進行記錄、分析、收費。剛剛注冊的體驗者會有免費體驗字數和50元的體驗金哦(加客服貌似還會有額外的50元的)。

創(chuàng)建實例的步驟:

根據使用需求,選擇對應服務(“自然語言翻譯”/“文字識別OCR”/“語音合成TTS”/“語音識別ASR”/“智能語音評測”/“多平臺編輯器”)->“創(chuàng)建實例”,按步驟完成實例創(chuàng)建。

python調用有道智云API實現文件批量翻譯

創(chuàng)建應用并綁定實例(應用接口分為三種:API、安卓、ios接口):

點擊“應用管理”->“我的應用”->“創(chuàng)建應用”,填寫應用名稱等相關信息,選擇接入方式,并綁定我們所創(chuàng)建的實例,完成應用創(chuàng)建。我們這里用到的是API方式接入,安卓、ios接口需要根據提示填寫相應的信息,詳見官網新手指南。

python調用有道智云API實現文件批量翻譯

應用創(chuàng)建成功后,可獲取應用ID(appKey)和應用密鑰等信息,這些信息是調用API接口必不可少的參數。

3、接口調用及代碼實現

1)API接口介紹

下面介紹API接口的調用方法

文本翻譯API HTTPS地址:https://openapi.youdao.com/api

調用規(guī)則:在調用集成文本翻譯API時,需遵循以下規(guī)則。

規(guī)則 描述 傳輸方式 HTTPS 請求方式 GET/POST 字符編碼 統(tǒng)一使用UTF-8 編碼 請求格式 表單 響應格式 JSON

調用傳參:調用API需要向接口發(fā)送以下字段來訪問服務。

字段名 類型 含義 必填 備注 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 翻譯結果發(fā)音選擇 false 0為女聲,1為男聲。默認為女聲 strict text 是否嚴格按照指定from和to進行翻譯:true/false false 如果為false,則會自動中譯英,英譯中。默認為false

簽名生成方法如下:signType=v3;sign=sha256(應用ID+input+salt+curtime+應用密鑰);其中,input的計算方式為:input=q前10個字符 + q長度 + q后10個字符(當q長度大于20)或 input=q字符串(當q長度小于等于20);

返回結果格式:返回的結果是json格式,具體說明如下:

字段名 類型 含義 備注 errorCode text 錯誤返回碼 一定存在 query text 源語言 查詢正確時,一定存在 translation Array 翻譯結果 查詢正確時,一定存在 basic text 詞義 基本詞典,查詞時才有 web Array 詞義 網絡釋義,該結果不一定存在 l text 源語言和目標語言 一定存在 dict text 詞典deeplink 查詢語種為支持語言時,存在 webdict text webdeeplink 查詢語種為支持語言時,存在 tSpeakUrl text 翻譯結果發(fā)音地址 翻譯成功一定存在,需要應用綁定語音合成實例才能正常播放 否則返回110錯誤碼 speakUrl text 源語言發(fā)音地址 翻譯成功一定存在,需要應用綁定語音合成實例才能正常播放 否則返回110錯誤碼 returnPhrase Array 單詞校驗后的結果 主要校驗字母大小寫、單詞前含符號、中文簡繁體

當返回的結果errorCode為 0 時說明調用成功,不為0時,則會出現不同含義的錯誤碼。詳細含義可查閱官方開發(fā)文檔。

2)批量文檔翻譯開發(fā)

批量翻譯demo使用python3實現,為了方便測試,我用tkinter做了簡單的界面,用來讀取待翻譯文檔,指定結果存儲路徑,為了最大化簡化開發(fā)過程,降低測試的時間成本,目前只實現了讀取.txt類型文件的方法。

整個demo分為三個文件,mainwindow.py,translate.py和translatetool.py,mainwindow為UI部分的代碼,translate中實現了批量讀取文檔并翻譯保存的邏輯,translatetool為根據示例代碼改造后的翻譯方法,需調用其他平臺API時,亦可封裝相應方法,增加了項目的擴展性。

mainwindow的元素如下:

root=tk.Tk()root.title('netease youdao translation test')frm = tk.Frame(root)frm.grid(padx=’50’, pady=’50’)btn_get_file = tk.Button(frm, text=’選擇待翻譯文件’, command=get_files)btn_get_file.grid(row=0, column=0, ipadx=’3’, ipady=’3’, padx=’10’, pady=’20’)text1 = tk.Text(frm, width=’40’, height=’10’)text1.grid(row=0, column=1)btn_get_result_path=tk.Button(frm,text=’選擇翻譯結果路徑’,command=set_result_path)btn_get_result_path.grid(row=1,column=0)text2=tk.Text(frm,width=’40’, height=’2’)text2.grid(row=1,column=1)btn_sure=tk.Button(frm,text='翻譯',command=translate_files)btn_sure.grid(row=2,column=1)

其中translate_files()方法最終調用了translate類的translate_files()方法:

def translate_files(): if translate.file_paths: translate.translate_files() tk.messagebox.showinfo('提示','搞定') else : tk.messagebox.showinfo('提示','無文件')

類translate定義如下:

import osfrom translatetool import connectclass Translate(): def __init__(self,name,file_paths,result_root_path,trans_type): self.name=name self.file_paths=file_paths# 待翻譯文件路徑 self.result_root_path=result_root_path# 翻譯結果存儲路徑 self.trans_type=trans_type # 翻譯過程:讀取文件-掉用有道api-解析返回信息-保存 def translate_files(self): for file_path in self.file_paths: file_name=os.path.basename(file_path) file_content=open(file_path,encoding=’utf-8’).read() trans_reult=self.translate_use_netease(file_content) resul_file=open(self.result_root_path+’/result_’+file_name,’w’).write(trans_reult) def translate_use_netease(self,file_content): result=’,’.join(connect(file_content,’zh-CH’,’EN’)) # 翻譯API返回結果為一個數組 return result

調用有道API主要方法為connect(),根據API的簽名信息等要求組成data并發(fā)送請求,解析返回的json:

# input輸入待翻譯字段,fromlanguage待翻譯的語言,tolanguage翻譯成的目標語言# 返回翻譯的字段def connect(inputtext,fromlanguage,tolanguage): q=inputtext data = {} data[’from’] = fromlang data[’to’] = tolang data[’signType’] = ’v3’ curtime = str(int(time.time())) data[’curtime’] = curtime salt = str(uuid.uuid1()) signStr = APP_KEY + truncate(q) + salt + curtime + APP_SECRET sign = encrypt(signStr) data[’appKey’] = APP_KEY data[’q’] = q data[’salt’] = salt data[’sign’] = sign print(data) response = do_request(data) print(response.content) j = json.loads(str(response.content, encoding='utf-8'))['translation'] return j

完整demo代碼地址:https://github.com/LemonQH/BatchFileTraslationProgram/tree/master

得益于API的學習成本之低,接口調用部分的開發(fā)過程十分順利,僅有一個小插曲,最開始調用API總是返回錯誤碼206(即時間戳錯誤),最后發(fā)現是我的系統(tǒng)時間比標準時間慢了十分鐘 - - #

總結

對于我此次的需要翻譯的文檔需求來說,有道智云贈送的字數和賬戶額度,已經夠用了,但是如果想長期的使用下去,還是要付費的。最后發(fā)現,有道智云在個人主頁中還提供了按小時統(tǒng)計當日實例調用次數和查詢字符數和按天統(tǒng)計歷史天數內實例的調用次數和字符數,對有需求的小伙伴,還可以記錄查看自己接口的翻譯量、實時調用量等狀態(tài)。

如上是我整個demo的開發(fā)過程。整體來說從注冊到調用有道智云API的過程還是比較順利的,而且每一步都有官方的詳細文檔可以參照。以至于主要開發(fā)時間都分配給了tkinter排版(順便吐槽下tkinter的“好用” :p)。

以上就是python調用有道智云API實現文件批量翻譯的詳細內容,更多關于python 文件批量翻譯的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
美女在线视频一区| 黄色免费成人| 亚洲图片久久| 欧美在线看片| 精品国产乱码久久久久久1区2匹| 日韩欧美综合| 日韩欧美午夜| 久久香蕉精品| 国产精品亚洲欧美日韩一区在线 | 亚洲女同一区| 四虎4545www国产精品| 伊人久久亚洲热| 日韩国产欧美在线播放| 国产高潮在线| 日韩午夜av在线| a日韩av网址| 久久国产尿小便嘘嘘| 蜜桃视频免费观看一区| 欧美亚洲精品在线| 蜜臀av性久久久久蜜臀aⅴ四虎 | 欧美aa在线观看| 欧美丝袜一区| 成人亚洲一区二区| 日本不卡一二三区黄网| 欧美国产极品| 婷婷亚洲五月| 久久亚洲风情| 美女视频免费精品| 日av在线不卡| 亚洲欧美久久久| 免费不卡中文字幕在线| 日韩在线短视频| 丝袜诱惑一区二区| 亚洲黄色中文字幕| 日韩精品专区| 中文字幕系列一区| 国产精品视区| 夜鲁夜鲁夜鲁视频在线播放| 国产成人精品999在线观看| 久久亚洲黄色| av日韩中文| 不卡在线一区| 桃色av一区二区| 高清精品久久| 日韩三区在线| 国产精品99久久免费观看| 色婷婷精品视频| 综合色一区二区| 久久字幕精品一区| 亚洲精品在线观看91| 国产欧美综合一区二区三区| 国产欧美高清| 91嫩草亚洲精品| 欧美精品二区| 理论片午夜视频在线观看| 日韩欧美1区| 国产极品久久久久久久久波多结野| 综合亚洲视频| 免费一级欧美在线观看视频| 亚洲精品亚洲人成在线观看| 国产欧洲在线| 亚久久调教视频| 成人免费网站www网站高清| 国产欧美一区二区三区国产幕精品| 免费亚洲婷婷| 国产一区日韩欧美| 91精品韩国| 中文字幕日韩欧美精品高清在线| 亚洲一区二区三区四区电影| 福利在线免费视频| 国产精品乱战久久久| 日本三级亚洲精品| 欧美成a人国产精品高清乱码在线观看片在线观看久 | 久久精品亚洲欧美日韩精品中文字幕| 国产一区成人| 午夜亚洲福利| 久久国产日本精品| 国产精品hd| 首页亚洲欧美制服丝腿| 久久伦理在线| 国产欧美丝祙| 国产乱码精品| 国产精品一区三区在线观看| 亚洲精品观看| 国产精品**亚洲精品| 日韩久久精品网| 综合国产视频| 中文字幕在线高清| 蜜桃传媒麻豆第一区在线观看| 高清一区二区三区av| 国产精品99视频| 色黄视频在线观看| 日韩中文字幕| 欧美.日韩.国产.一区.二区| 亚洲高清久久| 91精品国产自产精品男人的天堂| 久久国产精品毛片| 首页亚洲欧美制服丝腿| 亚洲一区二区三区免费在线观看| 丝袜a∨在线一区二区三区不卡| 97成人超碰| 国产精品tv| 美女视频黄免费的久久| 在线看片不卡| 国产精久久久| 一区三区视频| 日韩成人综合| 精品国内亚洲2022精品成人| 免费人成精品欧美精品| 亚洲91精品| 日韩国产91| 六月婷婷一区| 午夜精品影视国产一区在线麻豆| 亚洲在线观看| 色婷婷色综合| 精品日韩一区| 久久久久亚洲| 成人美女视频| sm捆绑调教国产免费网站在线观看| 啪啪国产精品| 国产精品115| 久久免费国产| 欧美在线资源| 久久精品免费一区二区三区| 国产日韩欧美三区| 激情国产在线| 你懂的国产精品永久在线| 国产精品午夜一区二区三区| 日本成人在线视频网站| 91欧美极品| 99精品网站| 国产精品一区二区中文字幕| 麻豆91精品| 亚洲欧美在线综合| 国产精品久久久亚洲一区| 日韩免费小视频| 欧美aa一级| 国产视频一区二区在线播放| 日欧美一区二区| 日韩中文影院| 欧美交a欧美精品喷水| 国产日韩专区| 私拍精品福利视频在线一区| 日韩视频一区| 久久国产尿小便嘘嘘| 日韩精品免费视频一区二区三区| 国产精品久久久久久久久久10秀| 国产亚洲欧美日韩精品一区二区三区| 国产亚洲观看| 久草免费在线视频| 成人污污视频| 高清一区二区三区av| 日韩国产网站| 亚洲激情中文在线| 蜜桃视频在线观看一区二区| 久久最新视频| 久久精品国产99| 成人在线免费观看网站| 日韩精品一卡| 日本v片在线高清不卡在线观看| 精品视频99| 免费看av不卡| 亚洲天堂免费| 精品视频国内| 伊人成人网在线看| **爰片久久毛片| 日韩在线短视频| 日韩欧美在线精品| www.com.cn成人| 欧美日韩一区二区三区不卡视频| 鲁鲁在线中文| 香蕉久久国产| 大香伊人久久精品一区二区| 蜜臀av国产精品久久久久| 国户精品久久久久久久久久久不卡 | 日韩国产网站| 国产日韩欧美一区二区三区 | 欧美1级日本1级| 蜜桃视频在线观看一区| 国产一区二区三区不卡视频网站 | 狠狠久久伊人中文字幕| 国产一级久久| 亚洲va中文在线播放免费| 亚洲欧洲av| 欧美不卡视频| 日韩在线免费| 日韩综合一区| 久久爱www成人| 久久国内精品自在自线400部| 日韩高清中文字幕一区| 日韩欧美在线中字| 岛国av在线网站| 成人在线超碰| 免费日韩一区二区三区| 无码日韩精品一区二区免费| 欧美日韩国产探花| 性欧美69xoxoxoxo| 欧美影院三区| 中文字幕一区久| 91青青国产在线观看精品|