使用Amazon Translate自動翻譯PPT

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

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

Amazon Translate是一項(xiàng)基于神經(jīng)網(wǎng)絡(luò)的機(jī)器學(xué)習(xí)翻譯服務(wù),可提供快速、高質(zhì)量、低成本的語言翻譯功能。使用Amazon Translate時,您只需提交源語言的輸入文本,即可接收到翻譯為目標(biāo)語言的輸出文本。關(guān)于Amazon Translate所支持語種的更多詳細(xì)信息,請參閱支持的語種與語言代碼。

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

解決方案

此腳本需要傳遞三個參數(shù):

·源語言

·目標(biāo)語言

·pptx文件的文件路徑

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

·解析目標(biāo)文件

·提取文本內(nèi)容

·為各文本調(diào)用Amazon Translate API

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

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

$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進(jìn)行交互,該腳本使用到Boto(AWS SDK for Python)。Boto提供多種配置方式,但無論如何選擇,您至少需要設(shè)置AWS憑證與區(qū)域,才能向AWS正常發(fā)出請求。

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

presentation=Presentation(args.input_file_path)

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

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

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

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

除了傳遞文本、源語言與目標(biāo)語言之外,大家還可以使用Amazon Translate提供的Custom Terminology(自定義術(shù)語)功能,此功能將幫助大家根據(jù)實(shí)際需求準(zhǔn)確翻譯各項(xiàng)術(shù)語。為此,我們在調(diào)用API時需要傳遞經(jīng)過預(yù)翻譯的自定義術(shù)語列表。例如,您可以對某些技術(shù)術(shù)語進(jìn)行自定義,將這些術(shù)語及其對應(yīng)的翻譯結(jié)果添加至CSV文件當(dāng)中,而后將其路徑作為可選參數(shù)傳遞給腳本。此腳本會讀取文件并將內(nèi)容導(dǎo)入至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'})

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

presentation.save(output_file_path)

這套腳本非常簡單,也相當(dāng)實(shí)用。

總結(jié)

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

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

立即登錄,閱讀全文
版權(quán)說明:
本文內(nèi)容來自于AWS,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個人觀點(diǎn),不代表快出海對觀點(diǎn)贊同或支持。如有侵權(quán),請聯(lián)系管理員(zzx@kchuhai.com)刪除!
優(yōu)質(zhì)服務(wù)商推薦
更多