Dịch bằng AI tích hợp sẵn

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

Sử dụng Translator API trong Chrome để dịch văn bản trong trình duyệt bằng các mô hình AI cục bộ.

Trang web của bạn có thể đã cung cấp nội dung bằng nhiều ngôn ngữ để khán giả trên toàn cầu có thể truy cập. Với API Người dịch, người dùng có thể đóng góp bằng ngôn ngữ đầu tiên của họ. Ví dụ: người dùng có thể tham gia cuộc trò chuyện hỗ trợ bằng ngôn ngữ đầu tiên của họ và trang web của bạn có thể dịch cuộc trò chuyện đó sang ngôn ngữ mà nhân viên hỗ trợ sử dụng trước khi cuộc trò chuyện rời khỏi thiết bị của người dùng. Điều này tạo ra trải nghiệm mượt mà, nhanh chóng và toàn diện cho tất cả người dùng.

Thông thường, việc dịch nội dung trên web bắt buộc phải sử dụng dịch vụ đám mây. Trước tiên, nội dung nguồn được tải lên một máy chủ để chạy bản dịch sang ngôn ngữ mục tiêu, sau đó văn bản kết quả được tải xuống và trả về cho người dùng. Bằng cách chạy bản dịch trên máy khách, bạn tiết kiệm được thời gian cần thiết cho các lượt truy cập máy chủ và chi phí lưu trữ dịch vụ dịch thuật.

Phạm vi cung cấp

Mặc dù ngôn ngữ đích đã chọn luôn xác định, nhưng trong một số trường hợp, ngôn ngữ nguồn có thể không xác định, ví dụ như với nội dung do người dùng tạo. Trong những trường hợp như vậy, đề xuất về API Dịch bao gồm cả API Dịch và API Trình phát hiện ngôn ngữ, cũng có sẵn trong bản dùng thử theo nguyên gốc. Đăng ký cả hai bản dùng thử theo nguyên gốc để sử dụng các API này cùng nhau.

Phát hiện tính năng

Để xác định xem API Trình biên dịch có được hỗ trợ hay không, hãy chạy đoạn mã phát hiện tính năng sau đây.

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

Kiểm tra khả năng hỗ trợ cặp ngôn ngữ

Hoạt động dịch được quản lý bằng các gói ngôn ngữ, được tải xuống theo yêu cầu. Gói ngôn ngữ giống như một từ điển cho một ngôn ngữ nhất định. Các gói này được ghép nối với hàm canTranslate() không đồng bộ để cho phép bạn xác định xem cặp ngôn ngữ có được hỗ trợ hay không.

Hàm canTranslate() yêu cầu tham số options có hai trường:

  • sourceLanguage: Ngôn ngữ hiện tại của văn bản.
  • targetLanguage: Ngôn ngữ cuối cùng mà văn bản sẽ được dịch sang.

Sử dụng mã ngôn ngữ ngắn BCP 47 dưới dạng chuỗi. Ví dụ: 'es' cho tiếng Tây Ban Nha hoặc 'fr' cho tiếng Pháp.

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

Hàm canTranslate() có thể trả về bất kỳ kết quả nào sau đây:

  • no: Trình duyệt này không thể dịch theo yêu cầu.
  • readily: Trình duyệt có thể dịch theo yêu cầu.
  • after-download: Trình duyệt có thể thực hiện việc dịch, nhưng chỉ sau khi tải mô hình hoặc gói ngôn ngữ có liên quan xuống.

Bạn có thể theo dõi tiến trình tải xuống bằng sự kiện downloadprogress:

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

Nếu quá trình tải xuống không thành công, thì các sự kiện downloadprogress sẽ ngừng phát và lời hứa ready sẽ bị từ chối.

Tạo và chạy trình dịch

Để tạo một trình biên dịch, hãy gọi hàm translation.createTranslator() không đồng bộ. Giống như canTranslate(), thành phần này yêu cầu một tham số tuỳ chọn có hai trường, một trường cho sourceLanguage và một trường cho targetLanguage.

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

Sau khi bạn có trình dịch, hãy gọi hàm translate() không đồng bộ để dịch văn bản.

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

Hạn chế trong bản dùng thử nguồn gốc

Các hạn chế sau đây sẽ áp dụng trong thời gian chạy bản dùng thử theo nguyên gốc.

Cặp ngôn ngữ được hỗ trợ

Hiện tại, bạn có thể tải tối đa 3 gói ngôn ngữ xuống để dịch. Chúng tôi cam kết mở rộng phạm vi ngôn ngữ được hỗ trợ trong các bản phát hành sau này, đồng thời duy trì các tiêu chuẩn cao về quyền riêng tư của người dùng. Bạn có thể xác nhận xem cặp ngôn ngữ bạn cần có được hỗ trợ bằng hàm canTranslate() hay không.

Có thể một số cặp ngôn ngữ nhất định, ít được sử dụng hơn có thể được dùng để in vân tay. Ví dụ: việc dịch giữa tiếng Anh và tiếng Tây Ban Nha phổ biến hơn so với việc dịch giữa các ngôn ngữ ít phổ biến hơn, chẳng hạn như tiếng Gaelic và tiếng Catalan. Cặp ngôn ngữ ít phổ biến hơn có thể được coi là một điểm dữ liệu để nhận dạng người dùng.

Trong giai đoạn thử nghiệm theo nguyên gốc, chúng tôi sẽ giới hạn các cặp ngôn ngữ có thể dịch để bảo vệ quyền riêng tư của người dùng. Các cặp ngôn ngữ phải đáp ứng các tiêu chí sau:

  • Cả ngôn ngữ nguồn và ngôn ngữ đích đều được đặt làm ngôn ngữ ưu tiên trong Chrome.
  • Hoặc một ngôn ngữ được đặt làm ngôn ngữ ưu tiên trong Chrome, còn ngôn ngữ còn lại nằm trong số các ngôn ngữ phổ biến sau đây:
    • Tiếng Anh (en)
    • Tiếng Trung phổ thông (zh; giản thể) hoặc tiếng Quan thoại Đài Loan (zh-Hant; phồn thể)
    • Tiếng Nhật (ja)
    • Tiếng Bồ Đào Nha (pt)
    • Tiếng Nga (ru)
    • Tiếng Tây Ban Nha (es)
    • Tiếng Thổ Nhĩ Kỳ (tr)
    • Tiếng Hindi (hi)
    • Tiếng Việt (vi)
    • Tiếng Bengal (bn)

Bỏ qua các quy định hạn chế về ngôn ngữ để kiểm thử cục bộ

Để tạo bản mô hình cục bộ, bạn có thể bỏ qua các bước kiểm tra này bằng cách chạy Chrome với tuỳ chọn dòng lệnh --disable-features=TranslationAPIAcceptLanguagesCheck. Ngoài ra, hãy đặt chrome://flags/#translation-api thành Bật mà không giới hạn gói ngôn ngữ.

Truy cập vào chrome://on-device-translation-internals/ để cài đặt và gỡ cài đặt gói ngôn ngữ theo cách thủ công.

Bản dịch tuần tự

Bản dịch được xử lý tuần tự. Nếu bạn gửi một lượng lớn văn bản để dịch, thì các bản dịch tiếp theo sẽ bị chặn cho đến khi các bản dịch trước đó hoàn tất.

Để các yêu cầu dịch phản hồi nhanh nhất, hãy nhóm các yêu cầu đó lại với nhau và cân nhắc hiển thị một giao diện tải, chẳng hạn như vòng quay, để cho biết rằng quá trình dịch đang diễn ra.

Phạm vi cung cấp của worker web

Trong thời gian chạy bản dùng thử theo nguyên gốc, Translator API chỉ được hỗ trợ từ luồng chính. Chúng tôi dự định hỗ trợ tính năng này trong worker web sau khi API được cung cấp rộng rãi.

Bản minh hoạ

Bạn có thể thấy Translator API, được sử dụng kết hợp với API Trình phát hiện ngôn ngữ, trong Translator and Language Detector API playground (Khu vui chơi API Translator và Language Detector).

Nỗ lực chuẩn hoá

Chúng tôi đang nỗ lực chuẩn hoá Translator API để đảm bảo khả năng tương thích trên nhiều trình duyệt.

Đề xuất API của chúng tôi đã nhận được sự hỗ trợ của cộng đồng và đã chuyển sang Nhóm cộng đồng ươm tạo web của W3C để thảo luận thêm. Nhóm Chrome đã yêu cầu ý kiến phản hồi từ Nhóm cấu trúc kỹ thuật W3C và hỏi MozillaWebKit về quan điểm của họ đối với các tiêu chuẩn.

Tham gia và chia sẻ ý kiến phản hồi

Hãy bắt đầu thử nghiệm API Dịch ngay bằng cách tham gia chương trình dùng thử phiên bản gốc và chia sẻ ý kiến phản hồi của bạn. Ý kiến đóng góp của bạn có thể tác động trực tiếp đến cách chúng tôi xây dựng và triển khai các phiên bản trong tương lai của API này cũng như tất cả các API AI tích hợp.