使用Amazon Translate自動翻譯PPT

來源: AWS
作者:Lidio Ramalho & Rafael Werneck
時間:2020-09-30
17487
本文介紹了一套基于腳本的自動翻譯解決方案,能夠使用Amazon Translate將演示文稿中的文本翻譯成多種語言。

作為身在巴西的解決方案架構師,我們經常需要將技術內容從英語翻譯成其他語言。人工翻譯無疑需要耗費大量時間,特別是在處理PowerPoint演示文稿時,分散在頁面內各個區(qū)域的文字真的會讓編輯慣了正常純文本文檔的朋友們抓狂。為了解決這個問題,我們編寫了一套腳本,能夠使用Amazon Translate翻譯微軟PowerPoint文件。本文將向大家介紹這套翻譯腳本的具體工作方式。

Amazon Translate是一項基于神經網絡的機器學習翻譯服務,可提供快速、高質量、低成本的語言翻譯功能。使用Amazon Translate時,您只需提交源語言的輸入文本,即可接收到翻譯為目標語言的輸出文本。關于Amazon Translate所支持語種的更多詳細信息,請參閱支持的語種與語言代碼。

我們的翻譯腳本使用Python編寫而成,且需要依賴開源庫以解析演示文稿。

解決方案

此腳本需要傳遞三個參數:

·源語言

·目標語言

·pptx文件的文件路徑

然后腳本將依次執(zhí)行以下功能:

·解析目標文件

·提取文本內容

·為各文本調用Amazon Translate API

·將API返回的翻譯文本結果保存為新文件

以下命令將把演示文稿中的文本由英語翻譯為西班牙語:

$python pptx-translator.py en pt example.pptx

Translating example.pptx from en to pt...

Slide 1 of 7

Slide 2 of 7

Slide 3 of 7

Slide 4 of 7

Slide 5 of 7

Slide 6 of 7

Slide 7 of 7

Saving example-pt.pptx...

為了與Amazon Translate進行交互,該腳本使用到Boto(AWS SDK for Python)。Boto提供多種配置方式,但無論如何選擇,您至少需要設置AWS憑證與區(qū)域,才能向AWS正常發(fā)出請求。

為了處理我們提供的演示文稿,該腳本還用到python-pptx,一個發(fā)布在GitHub上的開源庫。在提供演示文稿路徑作為輸入時,該庫將返回一個Presentation對象,詳見以下代碼:

presentation=Presentation(args.input_file_path)

Presentation對象當中包含演示文稿中的每一張幻燈片,以及各幻燈片中使用的框體圖形與文本段落。您可以遍歷所有段落,并為每段文本調用Amazon Translate API。Amazon Translate提供兩種不同翻譯處理模式:實時翻譯與異步批處理翻譯。此腳本使用實時翻譯模式,這意味著在一段文本之上調用Amazon Translate,然后同步獲得相應的翻譯結果,具體參見以下代碼:

for paragraph in shape.text_frame.paragraphs:

    for index, paragraph_run in enumerate(paragraph.runs):

        response = translate.translate_text(

                Text=paragraph_run.text,

                SourceLanguageCode=source_language_code,

                TargetLanguageCode=target_language_code,

                TerminologyNames=terminology_names)

接下來,您可以使用API返回的翻譯文本替換原始文本,具體代碼如下:

paragraph.runs[index].text=response.get('TranslatedText')

該腳本不僅能夠替換可見的演示文稿文本,還能夠替換對應注釋。此外,這套腳本還提供用于更新語言標識符的字典。為了使微軟PowerPoint能夠檢查其中的拼寫正確性,您需要指定正確的語言信息,具體參見以下代碼:

paragraph.runs[index].font.language_id=LANGUAGE_CODE_TO_LANGUAGE_ID[target_language_code]

除了傳遞文本、源語言與目標語言之外,大家還可以使用Amazon Translate提供的Custom Terminology(自定義術語)功能,此功能將幫助大家根據實際需求準確翻譯各項術語。為此,我們在調用API時需要傳遞經過預翻譯的自定義術語列表。例如,您可以對某些技術術語進行自定義,將這些術語及其對應的翻譯結果添加至CSV文件當中,而后將其路徑作為可選參數傳遞給腳本。此腳本會讀取文件并將內容導入至Amazon Translate,具體參見以下代碼:

with open(terminology_file_path, 'rb') as f:

    translate.import_terminology(

            Name=TERMINOLOGY_NAME,

            MergeStrategy='OVERWRITE',

            TerminologyData={'File': bytearray(f.read()), 'Format': 'CSV'})

在所有幻燈片翻譯完成之后,即可使用以下代碼將結果另存為新的文件:

presentation.save(output_file_path)

這套腳本非常簡單,也相當實用。

總結

本文介紹了一套基于腳本的自動翻譯解決方案,能夠使用Amazon Translate將演示文稿中的文本翻譯成多種語言。

Original URL:https://aws.amazon.com/cn/blogs/machine-learning/translating-presentation-files-with-amazon-translate/

立即登錄,閱讀全文
版權說明:
本文內容來自于AWS,本站不擁有所有權,不承擔相關法律責任。文章內容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權,請聯(lián)系管理員(zzx@kchuhai.com)刪除!
優(yōu)質服務商推薦
更多
掃碼登錄
打開掃一掃, 關注公眾號后即可登錄/注冊
加載中
二維碼已失效 請重試
刷新
賬號登錄/注冊
個人VIP
小程序
快出海小程序
公眾號
快出海公眾號
商務合作
商務合作
投稿采訪
投稿采訪
出海管家
出海管家