การแปลด้วย AI ในตัว

เผยแพร่เมื่อวันที่ 12 พฤศจิกายน 2024

ใช้ Translation API ใน Chrome เพื่อแปลข้อความในเบราว์เซอร์โดยใช้โมเดล AI ในเครื่อง

เว็บไซต์ของคุณอาจนำเสนอเนื้อหาเว็บไซต์ในหลายภาษาอยู่แล้วเพื่อให้ผู้ชมทั่วโลกเข้าถึงได้ เมื่อใช้ เครื่องมือสำหรับนักแปล ผู้ใช้สามารถร่วมให้ข้อมูลในภาษาแรกได้ ตัวอย่างเช่น ผู้ใช้สามารถเข้าร่วมแชทสนับสนุนเป็นภาษาแรกได้ และเว็บไซต์สามารถแปลเป็นภาษาที่ตัวแทนฝ่ายสนับสนุนใช้ก่อนที่จะส่งออกจากอุปกรณ์ของผู้ใช้ ซึ่งจะมอบประสบการณ์การใช้งานที่ราบรื่น รวดเร็ว และครอบคลุมสำหรับผู้ใช้ทุกคน

โดยทั่วไปแล้ว การแปลเนื้อหาบนเว็บต้องใช้บริการระบบคลาวด์ ขั้นแรก ระบบจะอัปโหลดเนื้อหาต้นทางไปยังเซิร์ฟเวอร์ ซึ่งจะทำการแปลเป็นภาษาเป้าหมาย จากนั้นระบบจะดาวน์โหลดข้อความที่ได้และแสดงต่อผู้ใช้ การใช้การแปลในไคลเอ็นต์จะช่วยประหยัดเวลาในการเดินทางไปมาของเซิร์ฟเวอร์และค่าใช้จ่ายในโฮสติ้งบริการแปล

ความพร้อมใช้งาน

แม้ว่าระบบจะทราบภาษาเป้าหมายที่เลือกเสมอ แต่ในบางสถานการณ์ ระบบอาจไม่รู้จักภาษาต้นทาง เช่น เนื้อหาที่ผู้ใช้สร้างขึ้น ในกรณีดังกล่าว ข้อเสนอ API สำหรับนักแปลจะรวมทั้ง Translation API และ Language Detector API ที่พร้อมให้ใช้งานในช่วงทดลองใช้จากต้นทางด้วย ลงชื่อสมัครใช้ช่วงทดลองใช้จากต้นทางทั้ง 2 รายการเพื่อใช้ API เหล่านี้ร่วมกัน

การตรวจหาองค์ประกอบ

หากต้องการตรวจสอบว่าระบบรองรับ Translator API หรือไม่ ให้เรียกใช้ข้อมูลโค้ดการตรวจหาฟีเจอร์ต่อไปนี้

if ('translation' in self && 'createTranslator' in self.translation) {
  // The Translator API is supported.
}

ตรวจสอบการรองรับคู่ภาษา

การจัดการการแปลจะดำเนินการด้วยแพ็กภาษาที่ดาวน์โหลดตามคําขอ แพ็กเกจภาษาเปรียบเสมือนพจนานุกรมสำหรับภาษาหนึ่งๆ แพ็กเหล่านี้จับคู่กับฟังก์ชัน canTranslate() แบบไม่พร้อมกัน ซึ่งจะช่วยให้คุณระบุได้ว่ารองรับคู่ภาษาหรือไม่

ฟังก์ชัน canTranslate() ต้องใช้พารามิเตอร์ options ที่มี 2 ช่อง ดังนี้

  • sourceLanguage: ภาษาปัจจุบันของข้อความ
  • targetLanguage: ภาษาสุดท้ายที่ควรแปลข้อความ

ใช้รหัสย่อภาษา BCP 47 เป็นสตริง เช่น 'es' สำหรับภาษาสเปนหรือ 'fr' สำหรับภาษาฝรั่งเศส

await translation.canTranslate({
  sourceLanguage: 'en',
  targetLanguage: 'fr',
});
// 'readily'

ฟังก์ชัน canTranslate() สามารถแสดงผลลัพธ์ใดก็ได้ต่อไปนี้

  • no: เบราว์เซอร์นี้ไม่สามารถแปลตามที่ขอได้
  • readily: เบราว์เซอร์สามารถแปลตามที่ขอได้
  • after-download: เบราว์เซอร์ทำการแปลได้ แต่จะต้องดาวน์โหลดโมเดลหรือแพ็กภาษาที่เกี่ยวข้องเท่านั้น

คุณสามารถฟังความคืบหน้าของการดาวน์โหลดได้โดยใช้เหตุการณ์ downloadprogress ดังนี้

translator.ondownloadprogress = progressEvent => {
  updateDownloadProgressBar(progressEvent.loaded, progressEvent.total);
};

หากการดาวน์โหลดไม่สำเร็จ ระบบจะหยุดส่งเหตุการณ์ downloadprogress และปฏิเสธready promise

สร้างและเรียกใช้โปรแกรมแปล

หากต้องการสร้างตัวแปล ให้เรียกใช้translation.createTranslator() ฟังก์ชันแบบแอซิงโครนัส เช่นเดียวกับ canTranslate() ต้องใช้พารามิเตอร์ options ที่มี 2 ช่อง ได้แก่ 1 ช่องสําหรับ sourceLanguage และอีก 1 ช่องสําหรับ targetLanguage

// Create a translator that translates from English to French.
const translator = await self.translation.createTranslator({
  sourceLanguage: 'en',
  targetLanguage: 'fr',
});

เมื่อมีผู้แปลแล้ว ให้เรียกใช้ฟังก์ชัน translate() แบบแอซิงโครนัสเพื่อแปลข้อความ

await translator.translate('Where is the next bus stop, please?');
// "Où est le prochain arrêt de bus, s'il vous plaît ?"

ข้อจํากัดในการทดลองใช้ต้นทาง

ข้อจำกัดต่อไปนี้จะมีผลระหว่างช่วงทดลองใช้จากต้นทาง

คู่ภาษาที่รองรับ

ขณะนี้คุณดาวน์โหลดแพ็กภาษาเพื่อใช้ในการแปลได้สูงสุด 3 แพ็ก เรามุ่งมั่นที่จะขยายช่วงภาษาที่รองรับในรุ่นต่อๆ ไป ขณะเดียวกันก็รักษามาตรฐานความเป็นส่วนตัวของผู้ใช้ในระดับสูง คุณสามารถตรวจสอบว่าระบบรองรับคู่ภาษาที่ต้องการหรือไม่ด้วยฟังก์ชัน canTranslate()

ทั้งนี้ เป็นไปได้ว่าอาจมีการใช้คู่ภาษาบางคู่ที่ไม่ได้ใช้บ่อยในการเก็บลายนิ้วมือ ตัวอย่างเช่น การแปลระหว่างภาษาอังกฤษกับภาษาสเปนนั้นพบได้บ่อยกว่าการแปลระหว่างภาษาที่ไม่พบบ่อย เช่น ภาษากาลิคและภาษาคาตาลัน คู่ภาษาที่พบไม่บ่อยนักอาจถือเป็นจุดข้อมูลสำหรับการระบุผู้ใช้

ในระหว่างช่วงทดลองใช้ต้นทาง เราจะจำกัดคู่ภาษาที่อาจแปลได้เพื่อปกป้องความเป็นส่วนตัวของผู้ใช้ คู่ภาษาต้องเป็นไปตามเกณฑ์ต่อไปนี้

  • ทั้งภาษาต้นทางและปลายทางได้รับการตั้งค่าเป็นภาษาที่ต้องการใน Chrome
  • หรือมีการตั้งค่าภาษาใดภาษาหนึ่งเป็นภาษาที่ต้องการใน Chrome และอีกภาษาหนึ่งเป็นภาษายอดนิยมต่อไปนี้
    • อังกฤษ (en)
    • จีนกลาง (zh ตัวย่อ) หรือจีนกลางไต้หวัน (zh-Hant ตัวเต็ม)
    • ญี่ปุ่น (ja)
    • โปรตุเกส (pt)
    • รัสเซีย (ru)
    • สเปน (es)
    • ตุรกี (tr)
    • ฮินดี (hi)
    • เวียดนาม (vi)
    • เบงกอล (bn)

ข้ามข้อจำกัดด้านภาษาสำหรับการทดสอบในเครื่อง

สําหรับการทดสอบเวอร์ชันต้นแบบในเครื่อง คุณสามารถข้ามการตรวจสอบเหล่านี้ได้โดยเรียกใช้ Chrome ด้วยตัวเลือกบรรทัดคําสั่ง --disable-features=TranslationAPIAcceptLanguagesCheck หรือตั้งค่า chrome://flags/#translation-api เป็นเปิดใช้โดยไม่จำกัดจำนวนแพ็กภาษา

โปรดไปที่ chrome://on-device-translation-internals/ เพื่อติดตั้งและถอนการติดตั้งแพ็กภาษาด้วยตนเอง

คำแปลตามลำดับ

ระบบจะประมวลผลการแปลตามลำดับ หากคุณส่งข้อความจำนวนมากให้แปล ระบบจะบล็อกการแปลข้อความที่ส่งมาภายหลังจนกว่าการแปลข้อความก่อนหน้าจะเสร็จสมบูรณ์

หากต้องการให้คำขอแปลภาษาตอบสนองได้ดีที่สุด ให้รวมคำขอเข้าด้วยกันและพิจารณาแสดงอินเทอร์เฟซการโหลด เช่น ไอคอนหมุนแสดงการโหลด เพื่อบ่งบอกว่ากำลังแปลอยู่

ความพร้อมใช้งานของผู้ปฏิบัติงานเกี่ยวกับเว็บ

ในช่วงทดลองใช้จากต้นทาง Translator API จะรองรับเฉพาะจากชุดข้อความหลักเท่านั้น เราตั้งใจที่จะรองรับในเว็บเวิร์กเกอร์เมื่อ API พร้อมให้บริการอย่างแพร่หลาย

สาธิต

คุณจะเห็น Translator API ซึ่งใช้ร่วมกับ Language Detector API ในPlayground ของ Translator และ Language Detector API

ความพยายามในการกำหนดมาตรฐาน

เรากำลังดำเนินการเพื่อให้ Translation API เป็นมาตรฐานเพื่อให้ใช้งานร่วมกับข้ามเบราว์เซอร์ได้

ข้อเสนอ API ของเราได้รับการสนับสนุนจากชุมชนและได้ย้ายไปที่กลุ่มชุมชน W3C Web Incubator เพื่อพูดคุยเพิ่มเติมแล้ว ทีม Chrome ขอความคิดเห็นจากกลุ่มสถาปัตยกรรมด้านเทคนิคของ W3C และสอบถามตำแหน่งมาตรฐานจาก Mozilla และ WebKit

เข้าร่วมและแชร์ความคิดเห็น

เริ่มทดสอบ Translator API ได้เลยโดยเข้าร่วมช่วงทดลองใช้เวอร์ชันต้นฉบับและแชร์ความคิดเห็นของคุณ คำตอบของคุณอาจส่งผลโดยตรงต่อวิธีที่เราสร้างและใช้งาน API นี้ในเวอร์ชันในอนาคตและ AI API ในตัวทั้งหมด