Skip to main content

Amazon Translate

Amazon Translate คือบริการแปลภาษาอัตโนมัติที่ใช้ Neural Machine Translation (NMT) ให้ผลลัพธ์การแปลที่เป็นธรรมชาติและแม่นยำสูง บริการนี้รองรับกว่า 75 ภาษาและสามารถแปลข้อความแบบ real-time สำหรับแอปพลิเคชันที่ต้องการผลทันที หรือประมวลผลเอกสารขนาดใหญ่แบบ batch ได้ รองรับรูปแบบเอกสาร Word, PDF, HTML, PowerPoint และ Excel โดยรักษา formatting เดิมไว้

สิ่งที่ทำให้ Amazon Translate แตกต่างจากบริการแปลทั่วไปคือฟีเจอร์ Custom Terminology ที่ช่วยให้คำศัพท์เฉพาะทางของบริษัท เช่น ชื่อแบรนด์ ชื่อสินค้า และ jargon ทางเทคนิค ได้รับการแปลอย่างถูกต้องสม่ำเสมอ และ Active Custom Translation ที่ช่วยปรับแต่งโมเดลการแปลให้เหมาะกับ domain เฉพาะ

AWS Docs: https://docs.aws.amazon.com/translate/latest/dg/what-is.html

สถาปัตยกรรม


ฟีเจอร์หลัก

Real-time Translation

แปลข้อความแบบ synchronous ผ่าน TranslateText API เหมาะสำหรับการแปลข้อความสั้นๆ ใน user interface, chat messages, product descriptions และสถานการณ์ที่ต้องการผลทันที รองรับข้อความสูงสุด 10,000 ตัวอักษรต่อ request

Batch Translation

ประมวลผลเอกสารจำนวนมากใน S3 แบบ asynchronous สามารถแปลหลายภาษาพร้อมกันในงานเดียว รองรับไฟล์ plain text, HTML, Word (.docx), PowerPoint (.pptx), Excel (.xlsx) และ PDF

Document Translation with Formatting

แปลเอกสาร Word, PDF, HTML โดยรักษา layout และ formatting เดิมไว้ เช่น bold, italic, bullet points, tables และ hyperlinks ทำให้เอกสารที่แปลแล้วพร้อมใช้งานได้ทันที

Custom Terminology

สร้าง glossary เฉพาะทางเพื่อควบคุมว่าคำหรือวลีเฉพาะต้องแปลออกมาเป็นอะไร เหมาะสำหรับ:

  • ชื่อแบรนด์ที่ไม่ต้องการแปล เช่น "iPhone" → "iPhone"
  • คำศัพท์เทคนิคที่มีคำแปลเฉพาะ เช่น "load balancer" → "ตัวกระจายโหลด"
  • คำที่บริษัทกำหนดคำแปลมาตรฐาน เช่น "account" → "บัญชีผู้ใช้"

Active Custom Translation (ACT)

ปรับแต่งโมเดลการแปลด้วย parallel data (คู่ข้อความต้นทาง-ปลายทาง) ของตัวเอง ทำให้การแปลสอดคล้องกับ tone, style และ domain ของบริษัทมากขึ้น เหมาะสำหรับองค์กรที่ต้องการ translation quality สูงสุด

Formality Control

ควบคุมระดับความเป็นทางการของภาษาปลายทาง รองรับ FORMAL (ทางการ) และ INFORMAL (ไม่เป็นทางการ) สำหรับภาษาที่รองรับ เช่น German, French, Italian, Spanish, Japanese, Korean และ Portuguese

Profanity Masking

กรองคำหยาบและคำไม่เหมาะสมในผลลัพธ์การแปล โดยแทนที่ด้วย grawlix character (เช่น $#@!) เหมาะสำหรับแอปพลิเคชันที่ต้องการ family-friendly content

Do-Not-Translate Tags

ใช้ HTML/XML tags ใน text เพื่อกำหนดส่วนที่ไม่ต้องการแปล เช่น ชื่อแบรนด์ รหัสสินค้า หรือ technical terms โดยใส่ tag <span translate="no"> ครอบข้อความนั้น

Auto Language Detection

ตรวจจับภาษาต้นทางโดยอัตโนมัติ ไม่จำเป็นต้องระบุภาษาต้นทางในทุก request เหมาะสำหรับระบบที่รับ user input หลายภาษา


การติดตั้งและการตั้งค่า

1. เปิดใช้งานผ่าน AWS Console

  1. เข้า AWS Console และค้นหา "Amazon Translate"
  2. บริการพร้อมใช้งานทันที ทดลองใช้ในหน้า Real-time Translation ใน Console ได้เลย
  3. สำหรับ Custom Terminology ให้ไปที่ "Terminology" ใน Console

2. ติดตั้ง boto3

pip install boto3

3. IAM Permissions ที่จำเป็น

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"translate:TranslateText",
"translate:TranslateDocument",
"translate:StartTextTranslationJob",
"translate:GetTextTranslationJob",
"translate:ListTextTranslationJobs",
"translate:ImportTerminology",
"translate:GetTerminology",
"translate:ListTerminologies",
"translate:CreateParallelData",
"comprehend:DetectDominantLanguage"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": ["s3:GetObject", "s3:PutObject"],
"Resource": "arn:aws:s3:::my-translation-bucket/*"
}
]
}

4. ตัวอย่างการตั้งค่า boto3

import boto3

translate = boto3.client(
service_name='translate',
region_name='ap-southeast-1'
)

วิธีใช้งาน

Real-time Translation

import boto3

translate = boto3.client('translate', region_name='ap-southeast-1')

# แปลข้อความจากภาษาไทยเป็นอังกฤษ
response = translate.translate_text(
Text="สวัสดีครับ ยินดีต้อนรับสู่ร้านค้าของเรา สินค้าทุกชิ้นลดราคา 50%",
SourceLanguageCode='th',
TargetLanguageCode='en'
)

print(f"Original: {response['SourceLanguageCode']}")
print(f"Translation: {response['TranslatedText']}")
# Translation: Hello, welcome to our store. All products are 50% off.

# แปลพร้อม Auto Language Detection
response = translate.translate_text(
Text="Bonjour, comment allez-vous?",
SourceLanguageCode='auto', # ตรวจจับภาษาอัตโนมัติ
TargetLanguageCode='th'
)
print(f"Detected Language: {response['SourceLanguageCode']}") # fr
print(f"Thai: {response['TranslatedText']}")

แปลพร้อม Custom Terminology

# สร้าง Custom Terminology ก่อน
import csv
import io

# สร้าง terminology data ในรูปแบบ CSV
terminology_csv = """en,th
TrueMoney,ทรูมันนี่
PromptPay,พร้อมเพย์
LINE Pay,ไลน์เพย์
merchant,ร้านค้า
transaction,รายการ"""

# อัปโหลด terminology
translate.import_terminology(
Name='fintech-terms',
MergeStrategy='OVERWRITE',
TerminologyData={
'File': terminology_csv.encode('utf-8'),
'Format': 'CSV'
}
)

# แปลโดยใช้ Custom Terminology
response = translate.translate_text(
Text="The merchant can receive payments via TrueMoney and PromptPay.",
SourceLanguageCode='en',
TargetLanguageCode='th',
TerminologyNames=['fintech-terms'] # ใช้ terminology ที่สร้างไว้
)
print(response['TranslatedText'])
# ร้านค้าสามารถรับการชำระเงินผ่านทรูมันนี่และพร้อมเพย์

Formality Control

# แปลแบบทางการ
formal_response = translate.translate_text(
Text="Could you help me with my order?",
SourceLanguageCode='en',
TargetLanguageCode='de', # German
Settings={
'Formality': 'FORMAL'
}
)

# แปลแบบไม่เป็นทางการ
informal_response = translate.translate_text(
Text="Could you help me with my order?",
SourceLanguageCode='en',
TargetLanguageCode='de',
Settings={
'Formality': 'INFORMAL'
}
)

print(f"Formal: {formal_response['TranslatedText']}")
print(f"Informal: {informal_response['TranslatedText']}")

Do-Not-Translate Tags

# ใช้ tags เพื่อป้องกันการแปลคำเฉพาะ
text_with_tags = """
Our product <span translate="no">iPhone 15 Pro</span> is now available.
Contact <span translate="no">[email protected]</span> for more info.
"""

response = translate.translate_text(
Text=text_with_tags,
SourceLanguageCode='en',
TargetLanguageCode='th',
Settings={
'Profanity': 'MASK' # กรองคำหยาบด้วย
}
)
print(response['TranslatedText'])
# สินค้าของเรา iPhone 15 Pro พร้อมวางจำหน่ายแล้ว
# ติดต่อ [email protected] สำหรับข้อมูลเพิ่มเติม

Batch Translation

# แปลเอกสารจำนวนมากแบบ batch
response = translate.start_text_translation_job(
JobName='product-catalog-translation',
InputDataConfig={
'S3Uri': 's3://my-content/products-en/',
'ContentType': 'text/html' # หรือ text/plain, application/vnd.openxmlformats
},
OutputDataConfig={
'S3Uri': 's3://my-content/products-translated/'
},
DataAccessRoleArn='arn:aws:iam::123456789:role/TranslateRole',
SourceLanguageCode='en',
TargetLanguageCodes=['th', 'ja', 'zh', 'ko', 'vi'], # แปลหลายภาษาพร้อมกัน
TerminologyNames=['brand-terms'],
JobDetails={
'TranslationJobType': 'BATCH'
}
)

job_id = response['JobId']
print(f"Batch job started: {job_id}")

# ตรวจสอบสถานะ
result = translate.get_text_translation_job(JobId=job_id)
print(f"Status: {result['TextTranslationJobProperties']['JobStatus']}")
print(f"Progress: {result['TextTranslationJobProperties']['JobDetails']}")

Document Translation (รักษา formatting)

# แปลเอกสาร Word โดยรักษา formatting
with open('product-brochure.docx', 'rb') as f:
document_content = f.read()

response = translate.translate_document(
Document={
'Content': document_content,
'ContentType': 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
},
SourceLanguageCode='en',
TargetLanguageCode='th',
TerminologyNames=['brand-terms']
)

# บันทึกเอกสารที่แปลแล้ว
with open('product-brochure-th.docx', 'wb') as f:
f.write(response['TranslatedDocument']['Content'])
print("Document translated successfully!")

ราคา (ประมาณการในบาท)

อัตราแลกเปลี่ยน: 1 USD = 35 บาท

ฟีเจอร์ราคา (USD)ราคา (บาท)หมายเหตุ
Standard Translation$15.00/1M chars525 บาท/1M ตัวอักษรReal-time + Batch
Active Custom Translation$60.00/1M chars2,100 บาท/1M ตัวอักษรโมเดลที่ปรับแต่งแล้ว
Custom Terminologyฟรีฟรีรวมในราคา translation
Parallel Data (ACT)$0.03/1M chars1.05 บาท/1M ตัวอักษรสำหรับ training data

Free Tier: 2,000,000 ตัวอักษร/เดือน ใน 12 เดือนแรก

ตัวอย่างการคำนวณ:

  • แปลรายละเอียดสินค้า 100,000 รายการ เฉลี่ย 500 ตัวอักษร/รายการ = 50M ตัวอักษร

  • ค่าใช้จ่าย = 50 × $15 = $750 (~26,250 บาท)

  • แปลเป็น 5 ภาษาพร้อมกัน = 50M × 5 = 250M ตัวอักษร

  • ค่าใช้จ่าย = 250 × $15 = $3,750 (~131,250 บาท)


เหมาะสำหรับ

  • E-Commerce ระหว่างประเทศ ที่ต้องการแปลรายละเอียดสินค้า รีวิว และ customer support สำหรับตลาดหลายประเทศ
  • บริษัทข้ามชาติ ที่ต้องการแปลเอกสารภายใน นโยบาย และสื่อสารข้ามภาษาทั่วองค์กร
  • แพลตฟอร์มแชทและ Customer Support ที่ต้องการสื่อสารข้ามภาษาแบบ real-time
  • สื่อและเนื้อหาดิจิทัล สำหรับ localization เนื้อหาสู่ตลาดต่างประเทศ
  • Game Developers สำหรับ localize เกม, UI text และ in-game content
  • หน่วยงานราชการและองค์กรระหว่างประเทศ สำหรับแปลเอกสารทางการ

ใช้ร่วมกับ AWS Services

AWS Serviceการผสานรวม
Amazon S3เก็บไฟล์ input/output สำหรับ batch translation
AWS Lambdaแปลข้อความแบบ real-time เมื่อมี trigger
Amazon Comprehendตรวจจับภาษาก่อนส่งให้ Translate
Amazon Transcribeแปลภาษา transcript จากเสียง
Amazon Pollyอ่านออกเสียงข้อความที่แปลแล้ว
Amazon DynamoDBcache ผลการแปลที่ใช้บ่อยเพื่อลดต้นทุน
Amazon CloudFrontserve translated content ด้วย low latency
Amazon Kendraสร้าง multilingual search engine

Use Case ตัวอย่าง

1. ระบบ Multilingual E-Commerce

แพลตฟอร์ม marketplace ระหว่างประเทศรับ listing สินค้าจากผู้ขายจีนและญี่ปุ่นกว่า 50,000 รายการต่อวัน ระบบ Lambda trigger ทำงานทันทีเมื่อมีสินค้าใหม่ถูกอัปโหลด โดยเรียก Translate API แปลชื่อสินค้า รายละเอียด และ specifications เป็น 6 ภาษา ได้แก่ อังกฤษ ไทย เวียดนาม อินโดนีเซีย มาเลเซีย และฟิลิปปินส์ Custom Terminology ถูกสร้างขึ้นสำหรับแต่ละ category สินค้า เช่น electronics, fashion, beauty เพื่อให้คำศัพท์เฉพาะทางถูกต้อง ผลลัพธ์ถูก cache ใน DynamoDB ลดต้นทุนการแปลซ้ำ ระบบประมวลผล translation ได้กว่า 300,000 ตัวอักษร/วินาที

2. ระบบ Real-time Customer Support หลายภาษา

บริษัทท่องเที่ยวออนไลน์มีลูกค้าจาก 20+ ประเทศ ระบบ live chat ใช้ Translate แปลข้อความระหว่าง customer support agent ภาษาไทยกับลูกค้าต่างชาติแบบ real-time Agent พิมพ์ภาษาไทย ลูกค้าเห็นภาษาของตัวเอง และในทางกลับกัน ลดต้นทุนการจ้าง multilingual agent ลง 60% และลด response time จากเฉลี่ย 8 นาทีเหลือ 2 นาที เนื่องจาก agent ไม่ต้องรอนักแปล

3. ระบบ Content Localization สำหรับ E-Learning

บริษัท e-learning มีบทเรียนกว่า 5,000 หัวข้อเป็นภาษาอังกฤษ ต้องการขยายสู่ตลาด Southeast Asia ระบบ batch translation ประมวลผลเนื้อหาทั้งหมดเป็น 6 ภาษาในเวลาไม่กี่วัน เอกสาร Word และ PowerPoint ถูกแปลพร้อมรักษา formatting และ layout เดิม Active Custom Translation ถูกใช้เพื่อให้การแปล technical content ด้าน programming และ data science มีคุณภาพสูง จากนั้น Polly สร้าง audio narration จากบทเรียนที่แปลแล้ว ทำให้บริษัทสามารถเปิดตัวใน 6 ประเทศพร้อมกัน แทนที่จะต้องทำทีละภาษาเป็นเวลาหลายปี