Vertex AI Translation 和光學字元辨識 (OCR) 服務結合後,可提供名為「文件翻譯」的文件處理功能。
Document Translate 可直接翻譯格式化文件,例如 PDF 檔案。相較於純文字翻譯,這項功能可保留翻譯文件的原始格式和版面配置,協助您保留大部分的原始脈絡,例如段落分隔。
本頁面將引導您透過互動式體驗,使用 Google Distributed Cloud (GDC) 實體隔離方案的文件處理功能,在翻譯文件時保留格式。
支援的格式
文件翻譯支援下列輸入檔案類型和相關輸出檔案類型:
輸入 | 文件 MIME 類型 | 輸出內容 |
---|---|---|
application/pdf |
PDF、DOCX | |
DOC | application/msword |
DOC、DOCX |
DOCX | application/vnd.openxmlformats-officedocument.wordprocessingml.document |
DOCX |
PPT | application/vnd.ms-powerpoint |
PPT、PPTX |
PPTX | application/vnd.openxmlformats-officedocument.presentationml.presentation |
PPTX |
XLS | application/vnd.ms-excel |
XLS、XLSX |
XLSX | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet |
XLSX |
原始和掃描 PDF 文件的翻譯
文件翻譯支援原始和掃描的 PDF 檔案,包括翻譯成由右至左語言或從由右至左語言翻譯。此外,文件翻譯功能會保留檔案中的超連結、字型大小和字型顏色。
事前準備
如要開始使用文件處理功能,您必須擁有名為 dt-project
的專案。專案的自訂資源必須如以下範例所示:
apiVersion: resourcemanager.gdc.goog/v1
kind: Project
metadata:
labels:
atat.config.google.com/clin-number: CLIN_NUMBER
atat.config.google.com/task-order-number: TASK_ORDER_NUMBER
name: dt-project
namespace: platform
此外,您必須啟用 Vertex AI Translation 和 OCR 預先訓練 API,並具備適當的憑證。建議您安裝 Vertex AI Translation 和 OCR 用戶端程式庫,方便呼叫 API。如要進一步瞭解必要條件,請參閱「設定翻譯專案」。
翻譯儲存空間 bucket 中的文件
如要翻譯儲存在 bucket 中的文件,請使用 Vertex AI Translation API。
本節說明如何翻譯值區中的文件,並將結果儲存至另一個輸出值區路徑。回應也會傳回位元組串流。 您可以指定 MIME 類型,如果沒有指定,文件翻譯會根據輸入檔案的副檔名判斷。
文件翻譯功能支援自動偵測儲存在 bucket 中的文件語言。如果您未指定原文語言代碼,Document Translate 就會為您偵測語言。輸出內容的 detectedLanguageCode
欄位會顯示偵測到的語言。
如要翻譯儲存空間值區中的文件,請按照下列步驟操作:
- 設定物件儲存空間的 gcloud CLI。
在
dt-project
命名空間中建立儲存空間 bucket。使用Standard
儲存空間類別。您可以在
dt-project
命名空間中部署Bucket
資源,藉此建立 Storage bucket:apiVersion: object.gdc.goog/v1 kind: Bucket metadata: name: dt-bucket namespace: dt-project spec: description: bucket for document vision service storageClass: Standard bucketPolicy: lockingPolicy: defaultObjectRetentionDays: 90
將 bucket 的
read
和write
權限授予 Vertex AI Translation 服務使用的服務帳戶 (ai-translation-system-sa
)。您可以按照下列步驟,使用自訂資源建立角色和角色繫結:
在
dt-project
命名空間中部署Role
資源,即可建立角色:apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: dvs-reader-writer namespace: dt-project rules: - apiGroups: - object.gdc.goog resources: - buckets verbs: - read-object - write-object
在
dt-project
命名空間中部署RoleBinding
資源,即可建立角色繫結:apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: dvs-reader-writer-rolebinding namespace: dt-project roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: dvs-reader-writer subjects: - kind: ServiceAccount name: ai-translation-system-sa namespace: ai-translation-system
將文件上傳至您建立的儲存空間 bucket。詳情請參閱「在專案中上傳及下載儲存空間物件」。
對 Vertex AI Translation 預先訓練的 API 提出要求:
curl
請按照下列步驟提出
curl
要求:儲存下列
request.json
檔案:cat <<- EOF > request.json { "parent": "projects/PROJECT_ID", "source_language_code": "SOURCE_LANGUAGE", "target_language_code": "TARGET_LANGUAGE", "document_input_config": { "mime_type": "application/pdf", "s3_source": { "input_uri": "s3://INPUT_FILE_PATH" } }, "document_output_config": { "mime_type": "application/pdf" }, "enable_rotation_correction": "true" } EOF
更改下列內容:
PROJECT_ID
:您的專案 ID。SOURCE_LANGUAGE
:文件使用的語言。請參閱支援的語言清單和對應的語言代碼。TARGET_LANGUAGE
:要將文件翻譯成的語言。請參閱支援的語言清單和對應的語言代碼。INPUT_FILE_PATH
:儲存空間值區中的文件檔案路徑。
根據文件修改
mime_type
值。提出要求:
curl -vv --data-binary @- -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT:443/v3/projects/PROJECT_ID/locations/PROJECT_ID:translateDocument < request.json
更改下列內容:
在文件中翻譯
本節說明如何將文件內嵌在 API 要求中傳送。您必須加入內嵌文件翻譯的 MIME 類型。
文件翻譯功能支援自動偵測語言,並翻譯內嵌文字。如果您未指定原文語言代碼,Document Translate 會為您偵測語言。輸出內容的 detectedLanguageCode
欄位會顯示偵測到的語言。
對 Vertex AI Translation 預先訓練的 API 提出要求:
curl
請按照下列步驟提出 curl
要求:
提出要求:
echo '{"parent": "projects/PROJECT_ID","source_language_code": "SOURCE_LANGUAGE", "target_language_code": "TARGET_LANGUAGE", "document_input_config": { "mime_type": "application/pdf", "content": "'$(base64 -w 0 INPUT_FILE_PATH)'" }, "document_output_config": { "mime_type": "application/pdf" }, "enable_rotation_correction": "true"}' | curl --data-binary @- -H "Content-Type: application/json" -H "Authorization: Bearer TOKEN" https://ENDPOINT/v3/projects/PROJECT_ID/locations/PROJECT_ID:translateDocument
更改下列內容:
批次翻譯文件
批次翻譯可讓您透過單一要求,將多個檔案翻譯成多種語言。每項要求最多可傳送 100 個檔案,總內容大小上限為 1 GB 或 1 億個 Unicode 碼位,以先達到者為準。您可以為每種語言指定特定翻譯模型。
詳情請參閱 batchTranslateDocument
。
翻譯多份文件
以下範例包含多個輸入設定。每個輸入設定都是儲存空間 bucket 中檔案的指標。
對 Vertex AI Translation 預先訓練的 API 提出要求:
curl
請按照下列步驟提出 curl
要求:
將下列要求主體儲存在名為
request.json
的檔案中:{ "source_language_code": "SOURCE_LANGUAGE", "target_language_codes": ["TARGET_LANGUAGE", ...], "input_configs": [ { "s3_source": { "input_uri": "s3://INPUT_FILE_PATH_1" } }, { "s3_source": { "input_uri": "s3://INPUT_FILE_PATH_2" } }, ... ], "output_config": { "s3_destination": { "output_uri_prefix": "s3://OUTPUT_FILE_PREFIX" } } }
更改下列內容:
提出要求:
curl -X POST \ -H "Authorization: Bearer TOKEN" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://ENDPOINT:443/v3/projects/PROJECT_ID/locations/PROJECT_ID:batchTranslateDocument"
更改下列內容:
回應會包含長時間執行作業的 ID:
{
"name": "projects/PROJECT_ID/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.translation.v3.BatchTranslateDocumentMetadata",
"state": "RUNNING"
}
}
翻譯及轉換原始 PDF 檔案
以下範例會翻譯原始 PDF 檔案,並轉換為 DOCX 檔案。您可以指定多個不同檔案類型的輸入,不一定要是原始 PDF 檔案。不過,如果轉換要求包含掃描的 PDF 檔案,系統會拒絕要求,且不會進行翻譯。系統只會翻譯原始 PDF 檔案,並轉換為 DOCX 檔案。舉例來說,如果加入 PPTX 檔案,系統會翻譯並以 PPTX 檔案形式傳回。
如果經常翻譯掃描和原始 PDF 檔案,建議將這兩類檔案分別歸入不同儲存空間。這樣一來,當您要求批次翻譯和轉換時,可以排除含有掃描 PDF 檔案的 bucket,不必排除個別檔案。
對 Vertex AI Translation 預先訓練的 API 提出要求:
curl
請按照下列步驟提出 curl
要求:
將下列要求主體儲存在名為
request.json
的檔案中:{ "source_language_code": "SOURCE_LANGUAGE", "target_language_codes": ["TARGET_LANGUAGE", ...], "input_configs": [ { "s3_source": { "input_uri": "s3://INPUT_FILE_PATH_1" } }, { "s3_source": { "input_uri": "s3://INPUT_FILE_PATH_2" } }, ... ], "output_config": { "s3_destination": { "output_uri_prefix": "s3://OUTPUT_FILE_PREFIX" } }, "format_conversions": { "application/pdf": "application/vnd.openxmlformats-officedocument.wordprocessingml.document" } }
更改下列內容:
提出要求:
curl -X POST \ -H "Authorization: Bearer TOKEN" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://ENDPOINT:443/v3/projects/PROJECT_ID/locations/PROJECT_ID:batchTranslateDocument"
更改下列內容:
回應會包含長時間執行作業的 ID:
{
"name": "projects/PROJECT_ID/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.translation.v3.BatchTranslateDocumentMetadata",
"state": "RUNNING"
}
}
使用詞彙表
您可以加入詞彙表,處理特定領域的專有術語。如果指定字彙表,就必須指定原文語言。以下範例使用詞彙表。您最多可以指定 10 種目標語言,並為每種語言提供專屬的字彙表。
如果為部分目標語言指定字彙表,系統不會為未指定的語言使用任何字彙表。
對 Vertex AI Translation 預先訓練的 API 提出要求:
curl
請按照下列步驟提出 curl
要求:
將下列要求主體儲存在名為
request.json
的檔案中:{ "source_language_code": "SOURCE_LANGUAGE", "target_language_codes": ["TARGET_LANGUAGE", ...], "input_configs": [ { "s3_source": { "input_uri": "s3://INPUT_FILE_PATH" } } ], "output_config": { "s3_destination": { "output_uri_prefix": "s3://OUTPUT_FILE_PREFIX" } }, "glossaries": { "TARGET_LANGUAGE": { "glossary": "projects/GLOSSARY_PROJECT_ID" }, ... } }
更改下列內容:
提出要求:
curl -X POST \ -H "Authorization: Bearer TOKEN" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://ENDPOINT:443/v3/projects/PROJECT_ID/locations/PROJECT_ID:batchTranslateDocument"
更改下列內容:
回應會包含長時間執行作業的 ID:
{
"name": "projects/PROJECT_ID/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.translation.v3.BatchTranslateDocumentMetadata",
"state": "RUNNING"
}
}