Tính năng phát hiện ngôn ngữ trong Chrome nhờ công nghệ AI tích hợp

Ngày xuất bản: ngày 24 tháng 9 năm 2024

Trước khi dịch văn bản từ ngôn ngữ này sang ngôn ngữ khác, trước tiên, bạn phải xác định ngôn ngữ được sử dụng trong văn bản đã cho. Trước đây, việc này yêu cầu tải văn bản lên một dịch vụ đám mây. Với tính năng suy luận trên thiết bị, bạn có thể cải thiện câu chuyện về quyền riêng tư của mình. Mặc dù có thể gửi một thư viện cụ thể thực hiện việc này, nhưng bạn sẽ cần thêm tài nguyên để tải xuống.

Đề xuất API Trình phát hiện ngôn ngữ và Trình dịch nhằm giải quyết thách thức này bằng cách tinh chỉnh một mô hình cho nhiệm vụ này, với một API tích hợp sẵn vào trình duyệt.

Ví dụ về trường hợp sử dụng

API trình phát hiện ngôn ngữ chủ yếu hữu ích trong các trường hợp sau:

  • Xác định ngôn ngữ của văn bản đầu vào để có thể dịch.
  • Xác định ngôn ngữ của văn bản đầu vào để có thể tải mô hình chính xác cho các tác vụ theo ngôn ngữ cụ thể, chẳng hạn như phát hiện nội dung độc hại.
  • Xác định ngôn ngữ của văn bản đầu vào để có thể gắn nhãn chính xác, chẳng hạn như trong các trang web mạng xã hội trực tuyến.
  • Xác định ngôn ngữ của văn bản đầu vào để có thể điều chỉnh giao diện của ứng dụng cho phù hợp. Ví dụ: trên một trang web ở Bỉ, chỉ hiển thị giao diện liên quan đến người dùng nói tiếng Pháp.

Sử dụng API Trình phát hiện ngôn ngữ

API Trình phát hiện ngôn ngữ là một phần của nhóm lớn hơn là API Dịch. Trước tiên, hãy chạy tính năng phát hiện để xem trình duyệt có hỗ trợ API Trình phát hiện ngôn ngữ hay không.

if ('translation' in self && 'canDetect' in self.translation) {
  // The Language Detector API is available.
}  

Tải mô hình xuống

Tính năng phát hiện ngôn ngữ phụ thuộc vào một mô hình được tinh chỉnh cho tác vụ cụ thể là phát hiện ngôn ngữ. Mặc dù API được tích hợp trong trình duyệt, nhưng mô hình sẽ được tải xuống theo yêu cầu trong lần đầu tiên một trang web cố gắng sử dụng API. Trong Chrome, mô hình này rất nhỏ so với các mô hình khác. Trên thực tế, mô hình này có thể đã xuất hiện do mô hình này cũng được các tính năng của trình duyệt Chrome sử dụng.

Để xem mô hình đã sẵn sàng để sử dụng hay chưa, hãy gọi hàm translation.canDetect() không đồng bộ. Có 3 câu trả lời có thể xảy ra:

  • 'no': Trình duyệt hiện tại có hỗ trợ API Trình phát hiện ngôn ngữ, nhưng hiện không thể sử dụng. Ví dụ: do không có đủ dung lượng ổ đĩa trống để tải mô hình xuống.
  • 'readily': Trình duyệt hiện tại hỗ trợ API Trình phát hiện ngôn ngữ và bạn có thể sử dụng API này ngay lập tức.
  • 'after-download': Trình duyệt hiện tại hỗ trợ API Trình phát hiện ngôn ngữ, nhưng trước tiên, trình duyệt cần tải mô hình xuống.

Để kích hoạt trình phát hiện ngôn ngữ tải xuống và tạo thực thể cho trình phát hiện ngôn ngữ, hãy gọi hàm translation.createDetector() không đồng bộ. Nếu phản hồi cho canDetect()'after-download', thì tốt nhất bạn nên theo dõi tiến trình tải xuống để có thể thông báo cho người dùng trong trường hợp quá trình tải xuống mất nhiều thời gian.

Ví dụ sau đây minh hoạ cách khởi chạy trình phát hiện ngôn ngữ.

const canDetect = await translation.canDetect();
let detector;
if (canDetect === 'no') {
  // The language detector isn't usable.
  return;
}
if (canDetect === 'readily') {
  // The language detector can immediately be used.
  detector = await translation.createDetector();
} else {
  // The language detector can be used after model download.
  detector = await translation.createDetector();
  detector.addEventListener('downloadprogress', (e) => {
 console.log(e.loaded, e.total);
  });
  await detector.ready;
}

Chạy trình phát hiện ngôn ngữ

API Trình phát hiện ngôn ngữ sử dụng mô hình xếp hạng để xác định ngôn ngữ nào có nhiều khả năng được dùng nhất trong một đoạn văn bản nhất định. Xếp hạng là một loại học máy, trong đó mục tiêu là sắp xếp danh sách các mục. Trong trường hợp này, API Trình phát hiện ngôn ngữ xếp hạng các ngôn ngữ theo thứ tự xác suất từ cao nhất đến thấp nhất.

Hàm detect() có thể trả về kết quả đầu tiên, câu trả lời có nhiều khả năng nhất hoặc lặp lại các đề xuất được xếp hạng theo mức độ tự tin. Hàm này được trả về dưới dạng danh sách đối tượng {detectedLanguage, confidence}. Cấp độ confidence được biểu thị dưới dạng một giá trị từ 0.0 (độ tin cậy thấp nhất) đến 1.0 (độ tin cậy cao nhất).

const someUserText \= 'Hallo und herzlich willkommen\!';
const results \= await detector.detect(someUserText);
for (const result of results) {
  // Show the full list of potential languages with their likelihood, ranked
  // from most likely to least likely. In practice, one would pick the top
  // language(s) that cross a high enough threshold.
  console.log(result.detectedLanguage, result.confidence);
}
// (Output truncated):
// de 0.9993835687637329
// en 0.00038279531872831285
// nl 0.00010798392031574622
// ...

Bản minh hoạ

Xem trước API Trình phát hiện ngôn ngữ trong bản minh hoạ của chúng tôi. Nhập văn bản được viết bằng nhiều ngôn ngữ vào vùng văn bản.

Đăng ký bản dùng thử theo nguyên gốc

Đăng ký dùng thử API Trình phát hiện ngôn ngữ để bắt đầu thử nghiệm API này với người dùng. Bản dùng thử theo nguyên gốc này chạy từ Chrome 130 đến 135.

Tìm hiểu thêm về cách hoạt động của bản dùng thử theo nguyên gốc.

Nỗ lực chuẩn hoá

Chúng tôi đã chuyển API Trình phát hiện ngôn ngữ sang Nhóm cộng đồng vườn ươm web W3C sau khi đề xuất tương ứng nhận được đủ sự hỗ trợ. API này là một phần của đề xuất API Dịch lớn hơn. Nhóm Chrome đã yêu cầu Nhóm cấu trúc kỹ thuật W3C phản hồi và hỏi MozillaWebKit về vị trí tiêu chuẩn của nhà cung cấp trình duyệt cụ thể.

Chia sẻ ý kiến phản hồi của bạn

Nếu bạn muốn phản hồi về cách triển khai của Chrome, hãy báo cáo lỗi Chromium. Hãy chia sẻ ý kiến phản hồi về hình dạng API của API Trình phát hiện ngôn ngữ bằng cách nhận xét về một Vấn đề hiện có hoặc mở một Vấn đề mới trong Kho lưu trữ GitHub của API Bản dịch.

Tài nguyên