เผยแพร่: 8 พฤษภาคม 2025
ทำให้เนื้อหาเข้าถึงได้สำหรับผู้ชมทั่วโลกด้วย Translator API และ Language Detector API API ของเครื่องมือตรวจหาภาษา ช่วยให้คุณระบุได้ว่ามีการใช้ภาษาใดในอินพุต และ API ของเครื่องมือแปล ช่วยให้คุณแปลจากภาษาที่ตรวจพบนั้นเป็นภาษาอื่นได้ ทั้ง 2 API ทำงานฝั่งไคลเอ็นต์ด้วยโมเดล AI ที่สร้างไว้ใน Chrome ซึ่งหมายความว่า API นี้รวดเร็ว ปลอดภัย และใช้งานได้ฟรี เนื่องจากไม่มีค่าใช้จ่ายของเซิร์ฟเวอร์
API | คำอธิบาย | เว็บ | ส่วนขยาย | สถานะของ Chrome | ความตั้งใจ |
---|---|---|---|---|---|
Translator API | MDN | ดู | ความตั้งใจที่จะจัดส่ง | ||
Language Detector API | MDN | ดู | ความตั้งใจที่จะจัดส่ง |
ดูวิธีที่ธุรกิจระหว่างประเทศขนาดใหญ่ 2 แห่งอย่าง Policybazaar และ JioHotstar ใช้และรับประโยชน์จาก API ในตัวเหล่านี้
การช่วยเหลือลูกค้าหลายภาษาของ Policybazaar
Policybazaar เป็นแพลตฟอร์มประกันภัยที่ใหญ่ที่สุดในอินเดีย โดยมีลูกค้าที่ลงทะเบียนกว่า 97 ล้านราย อินเดียมีความหลากหลายทางภาษาที่น่าทึ่ง โดยมีการใช้ภาษาและภาษาถิ่นมากมายทั่วประเทศ
Policybazaar ใช้ API ของเครื่องมือแปลภาษาและเครื่องมือตรวจหาภาษาใน 2 วิธีเพื่อรองรับความหลากหลายทางภาษาในกลุ่มลูกค้า ได้แก่ การให้ความช่วยเหลือด้านประกันภัยได้ทุกเมื่อ และการนำเสนอบทความที่มีข้อมูลเชิงลึกเกี่ยวกับตลาดในภาษาที่ลูกค้าต้องการ
ความช่วยเหลือด้านประกันภัยด้วย Finova AI
การประกันภัยเป็นผลิตภัณฑ์ส่วนบุคคลโดยธรรมชาติ ซึ่งมีข้อมูลที่ละเอียดอ่อนเป็น พื้นฐานของนโยบายเฉพาะ ลูกค้าของ Policybazaar มักจะขอคำแนะนำเกี่ยวกับวิธี เลือกแพ็กเกจหรือสิ่งที่แพ็กเกจรองรับ แม้ว่า Policybazaar จะมีเจ้าหน้าที่ที่พูดได้หลายภาษา แต่ก็ยังต้องการโซลูชันที่ใช้ได้ในเขตเวลาต่างๆ และหลังเวลาทำการ Policybazaar จึงสร้าง Finova AI ซึ่งเป็นผู้ช่วยด้านประกันภัยที่ปรับแต่ง ให้เหมาะกับภาษาที่ลูกค้าต้องการ
"API ของเครื่องมือตรวจหาภาษาและเครื่องมือแปลของ Chrome ช่วยให้ความช่วยเหลือด้านประกันภัยของเราราบรื่นยิ่งขึ้นด้วยการตอบสนองความต้องการด้านภาษาที่หลากหลายของลูกค้า ด้วยเหตุนี้ ผู้ใช้จึงสามารถสื่อสารในภาษาอินเดียที่ต้องการได้โดยไม่มีความล่าช้าที่สังเกตเห็นได้"
- Rishabh Mehrotra หัวหน้าฝ่ายออกแบบหน่วยธุรกิจประกันชีวิตของ Policybazaar
ทีมเลือกใช้ AI ฝั่งไคลเอ็นต์ ซึ่งเป็นการอนุมานที่เกิดขึ้นในเบราว์เซอร์หรือ ในอุปกรณ์ของผู้ใช้ AI ฝั่งไคลเอ็นต์มีเวลาในการตอบสนองน้อยที่สุดและมีต้นทุนต่ำกว่า AI ที่โฮสต์ในเซิร์ฟเวอร์หรือ AI แบบไร้เซิร์ฟเวอร์ เนื่องจากข้อความในการสนทนาแบบเรียลไทม์มีจำนวนมากและเกิดขึ้นอย่างรวดเร็ว โซลูชันที่ใช้เซิร์ฟเวอร์จึงมีต้นทุนสูงและใช้เวลานาน
การใช้งาน AI ในตัวของ Chrome มีโมเดลที่สร้างขึ้นในเบราว์เซอร์ ดังนั้น การอนุมานจึงดำเนินการในอุปกรณ์ ซึ่งเป็นโซลูชันที่น่าสนใจในการตอบสนอง ข้อกำหนดหลัก
// Language Detector and Translator APIs implemented with React
import { useRef } from "react";
const useService = () => {
const languageModel = useRef(null);
const translatorCapabilitiesModel = useRef(null);
const loadAllModels = async () => {
if (window?.LanguageDetector) {
languageModel.current = await window.LanguageDetector.create().catch(() => null);
}
}
// Detect what language the customer is writing
const detectLanguage = async (message) => {
if (!languageModel.current) return "";
try {
const [result] = await languageModel.current.detect(message);
const { detectedLanguage, confidence } = result || {};
return confidence * 100 > 50 ? detectedLanguage : "";
} catch (err) {
console.error(err);
return "";
}
};
// Translate messages to and from the detected language and English
const translateMessage = async (message, detectedLanguage, targetLanguage = 'en') => {
try {
const modelAvailability = await window.Translator.availability({ sourceLanguage: detectedLanguage, targetLanguage });
if (!['available', 'downloadable'].includes(modelAvailability)) {
return message;
}
const translator = await window.Translator.create({ sourceLanguage: detectedLanguage, targetLanguage });
const translatedMessage = await translator.translate(message);
return translatedMessage;
} catch (error) {
return message;
}
}
return { detectLanguage, translateMessage, loadAllModels };
}
export default useService;
การแปลบทความสำหรับข้อมูลเชิงลึกของตลาด
"การผสานรวม Translator API เข้ากับโค้ด React ที่มีอยู่ของเรานั้นง่ายมาก เราเลือกใช้โซลูชันฝั่งไคลเอ็นต์นี้เพื่อให้มั่นใจว่าลูกค้าและตัวแทนจะได้รับการแปลอย่างรวดเร็ว API สามารถแปลบทความที่มีความยาว 1,000 อักขระ ได้ภายใน 2 วินาที"
- Aman Soni หัวหน้าทีมเทคโนโลยีที่ Policybazaar
ธุรกิจประกันชีวิตของ Policybazaar มีบทความมากมาย เพื่อให้ลูกค้าและตัวแทนฝ่ายสนับสนุนลูกค้าทราบถึงสภาวะตลาด
ภาษาฮินดีเป็นภาษาที่ผู้ใช้พูดกันอย่างแพร่หลาย จึงได้ทดลองใช้ Translator API เพื่อแปลบทความจากภาษาอังกฤษเป็นภาษาฮินดีตามต้องการ
โดยใช้สคริปต์ต่อไปนี้เพื่อเพิ่มการแปลลงในเว็บไซต์
// Initialize the translator, setting source and target languages
var translator = null;
var translatorAvailable = false;
var languageOptionsData = { name: "Hindi", code: "hi" };
var IGNORED_TEXT_NODES = ['RSI', 'NAV'];
function checkForLanguageOptions() {
if (window.Translator) {
translatorAvailable = true;
return window.Translator.create({
sourceLanguage: 'en',
targetLanguage: languageOptionsData.code
}).then(function (createdTranslator) {
translator = createdTranslator;
});
} else {
translatorAvailable = false;
return Promise.resolve();
}
}
/**
* Translate the article content using the Translator API.
* @param {HTMLElement} container - element that holds the article content.
* @return {Promise<string>} A promise that resolves to the container's innerHTML after translation.
*/
function translateArticle(container) {
if (!translatorAvailable) { return Promise.resolve(''); }
var textNodes = getAllTextNodes(container);
var promiseChain = Promise.resolve();
textNodes.forEach(function (element) {
if (IGNORED_TEXT_NODES.indexOf(element.nodeValue) !== -1) return;
var message = element.nodeValue;
promiseChain = promiseChain.then(function () {
return translator.translate(message).then(function (translated) {
element.nodeValue = translated;
}).catch(function (error) {
console.error('Translation error:', error);
});
});
});
return promiseChain.then(function () {
return container.innerHTML;
});
}
โมเดลและ API ที่ Chrome มอบให้ช่วยให้ลูกค้าเข้าถึงการแปลบทความได้เกือบจะทันที
JioHotstar มีคำบรรยายแทนเสียงแบบไดนามิก
JioHotstar ซึ่งเป็นแพลตฟอร์มสตรีมมิงดิจิทัลชั้นนำในอินเดียที่นำเสนอภาพยนตร์ รายการทีวี กีฬา และเนื้อหาต้นฉบับที่หลากหลายในหลายภาษา กำลังพิจารณาใช้ Translator API เพื่อปรับปรุงการแปลคำบรรยาย
JioHotstar ให้บริการแก่ผู้ใช้ในอินเดียที่ต้องการรับชมเนื้อหาในภาษาท้องถิ่น ของตน เนื่องจากแคตตาล็อกเนื้อหาที่พร้อมให้บริการใน JioHotstar มีความหลากหลาย จึงเป็นเรื่องยากที่จะตอบสนองความต้องการด้านภาษาในภูมิภาคของผู้ใช้ทั้งหมด ซึ่งจะช่วยปรับปรุงการบริโภคเนื้อหาของผู้ใช้
Translator API ช่วยให้แพลตฟอร์มแปลคำบรรยายภาษาอังกฤษ เป็นภาษาที่ผู้ใช้ต้องการหรือตามภูมิภาค ของผู้ใช้ได้แบบไดนามิก ตัวเลือกการแปลแบบไดนามิกจะอยู่ในเมนูการเลือกภาษา ซึ่งเราจะตรวจหาคำบรรยายแทนเสียงต้นฉบับที่ขาดหายไปโดยอัตโนมัติและเพิ่มคำบรรยายแทนเสียงจากภาษาที่ Chrome รองรับ ซึ่งจะช่วยปรับปรุงประสบการณ์ของผู้ใช้ ในการใช้งานคำบรรยายแทนเสียงและทำให้ผู้ใช้จำนวนมากขึ้นเข้าถึงเนื้อหาได้
ระบบจะสร้างรายการภาษาแบบไดนามิกที่พร้อมใช้งานโดยการตรวจสอบเบราว์เซอร์เพื่อหาชุดภาษาที่มีอยู่ โดยอิงตามรายการหลักที่ปรับให้เหมาะกับ ค่ากำหนดและสถานที่ทางภูมิศาสตร์ของผู้ใช้แต่ละราย เมื่อผู้ใช้เลือกภาษาและดาวน์โหลดแพ็กภาษาที่เกี่ยวข้องในเบราว์เซอร์แล้ว ข้อความที่แปลจะปรากฏขึ้นทันที ไม่เช่นนั้น ระบบจะดาวน์โหลดแพ็กก่อน แล้วจึงเริ่มแปล
เมื่อผู้ใช้เลือกภาษาและเห็นการแปลเกิดขึ้น ผู้ใช้จะมั่นใจได้ว่าระบบดาวน์โหลดแพ็กภาษาเรียบร้อยแล้ว จากนั้น คุณจะดูเนื้อหาที่มีคำบรรยายแทนเสียงในภาษาที่เลือกได้ ซึ่งจะช่วยลดความไม่แน่นอนสำหรับผู้ใช้ที่อาจลังเลที่จะเรียกดูเนื้อหาเนื่องจากไม่แน่ใจว่าเนื้อหานั้นจะมีให้บริการในภาษาที่ต้องการหรือไม่
โค้ดตัวอย่างต่อไปนี้จะเริ่มต้นและตั้งค่าตัวแปล
class SubTitleTranslator {
// Cache translator instances based on source-target language pair, so that we don't create this often for multiple contents
#translatorMap = {};
// Get or create a translator for the language pair
async #createTranslator(sourceLanguage, targetLanguage) {
const key = `${sourceLanguage}-${targetLanguage}`;
const translator = this.#translatorMap[key];
// Check if a translator already exists for a language pair in the map
if (translator) {
return translator;
}
// Check if translation is available
const isAvailable =
(await Translator.availability({ sourceLanguage, targetLanguage })) ===
"available";
if (isAvailable) {
// If available, create a new translator and cache it
this.#translatorMap[key] = await Translator.create({
sourceLanguage,
targetLanguage,
});
return this.#translatorMap[key];
}
return null;
}
// Translate text
async #translateText(text, sourceLanguage, targetLanguage) {
const translator = await this.#createTranslator(
sourceLanguage,
targetLanguage
);
// Returns the given input text if translator is unavailable
if (!translator) {
return text;
}
return await translator.translate(text);
}
// Public method to get a reusable translation function for a specific language pair.
getTranslatorFor(sourceLanguage, targetLanguage) {
return async (text) => {
try {
return this.#translateText(text, sourceLanguage, targetLanguage);
} catch {
return text;
}
};
}
}
จากนั้นจะใช้ Translator API เพื่อสร้างคำบรรยายแทนเสียงที่แปลแล้ว
const translatorFactory = new SubTitleTranslator();
/* Accept English input and translate to Tamil.*/
const translateToTamil = translatorFactory.getTranslatorFor('en','ta');
/* Accept English text as input and translate it to Japanese. */
const translateToJapanese = translatorFactory.getTranslatorFor('en','ja');
/* Accept English input and returns English, as `JTA` is not a valid language code. */
const translateToUnknownLanguage = translatorFactory.getTranslatorFor('en','jta');
นอกจากนี้ ยังมีฟังก์ชันเพิ่มเติมอีก 2-3 ฟังก์ชันที่จะอัปเดตคำบรรยายแทนเสียงที่แสดงผลสุดท้าย
/* updateSubtitle is the internal function that updates the rendered subtitle. */
translateToTamil('hi').then(result => updateSubtitle(result))
translateToJapanese('hi').then(result => updateSubtitle(result))
translateToUnknownLanguage('hi').then(result => updateSubtitle(result))
แนวทางปฏิบัติแนะนำ
แม้ว่าการใช้ Translator API และ Language Detector API จะแตกต่างกัน แต่ก็มีแนวทางปฏิบัติแนะนำที่ใช้ร่วมกันได้หลายอย่าง ดังนี้
- ประเมินคุณภาพของข้อความที่แปลเพื่อให้มั่นใจว่าไวยากรณ์และบริบทจะยังคงอยู่ พิจารณาให้ตัวเลือกแก่ผู้ใช้ในการแสดงความคิดเห็นเกี่ยวกับคำแปลหากเหมาะสม
- ระบุ UI ความคืบหน้า เช่น สปินเนอร์ ตัวโหลด หรือแถบความคืบหน้า เพื่อระบุ การตอบสนอง ตัวอย่างเช่น Policybazaar ใช้ตัวบ่งชี้การพิมพ์สำหรับแชทบอทเพื่อแสดงว่ากำลังประมวลผลข้อมูลที่ผู้ใช้ป้อน
บทสรุปและคําแนะนํา
คุณกำลังสร้างสิ่งใหม่ๆ ด้วย API เหล่านี้ใช่ไหม โปรดแชร์กับเราที่ @ChromiumDev บน X หรือ Chromium for Developers บน LinkedIn
แหล่งข้อมูล
- เริ่มใช้ API ในตัวบน Chrome
- ดูข้อมูลเพิ่มเติมเกี่ยวกับ Language Detector API
- ดูข้อมูลเพิ่มเติมเกี่ยวกับ Translator API
- การเพิ่มศักยภาพให้แก่บล็อกเกอร์: วิธีที่ CyberAgent ใช้ AI ในตัวเพื่อยกระดับการสร้างเนื้อหา
การรับทราบ
ขอขอบคุณ Rishabh Mehrotra และ Aman Soni จาก Policybazaar Bhuvaneswaran Mohan และ Ankeet Maini จาก JioHotstar, Alexandra Klepper, Thomas Steiner และ Kenji Baheux ที่ช่วยเขียนและ ตรวจสอบบทความนี้