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
- Tham gia bản dùng thử theo nguyên gốc Translator API, chạy trong Chrome 131 đến 137, để kiểm thử API với người dùng thực trong phiên bản chính thức. Bản dùng thử theo nguyên gốc sẽ bật tính năng này cho tất cả người dùng sử dụng Chrome gốc của bạn. Tìm hiểu cách bắt đầu sử dụng bản dùng thử theo nguyên gốc.
- Hãy làm theo cách triển khai của chúng tôi trong ChromeStatus.
- Đề xuất API Trình biên dịch cho phép thảo luận.
- Tham gia chương trình dùng thử sớm để có cái nhìn sớm về các API AI mới, tích hợp sẵn và quyền tham gia thảo luận về danh sách gửi thư của chúng tôi.
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
)
- Tiếng Anh (
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 Mozilla và WebKit 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.
- Để gửi ý kiến phản hồi về việc triển khai Chrome, hãy gửi báo cáo lỗi hoặc yêu cầu về tính năng.
- Thảo luận về thiết kế của API Trình biên dịch trên GitHub 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.
- Tham gia nỗ lực xây dựng tiêu chuẩn bằng cách tham gia Nhóm cộng đồng về ươm tạo web.