Playto PLAYTO / Vì sao dịch game lại khó

Về chất lượng

Vì sao dịch một game trong lúc bạn đang chơi lại thật sự khó

Đọc màn hình một game đang chạy và dịch nó ngay tại chỗ là một bài toán kỹ thuật khó — khó hơn nhìn từ bên ngoài, và đó chính là thứ Playto được xây dựng xoay quanh. Chúng tôi muốn nói thẳng lý do vì sao, thay vì giả vờ đây là một chiếc hộp đã giải xong và tích dấu tick. Nếu một màn hình nào đó đọc sai, thường là do một trong những lý do dưới đây, chứ không phải sự cẩu thả — và mỗi lý do đều là thứ chúng tôi vẫn đang tiếp tục cải thiện. Trang này nói về phần kỹ thuật đằng sau đó, mà không đi vào chi tiết nội bộ.

1 · Dịch

Phải đọc được màn hình trước khi có thể dịch nó

Một trang web đưa cho trình dịch một đoạn văn bản sạch. Một game đưa cho bạn một tấm ảnh — chữ được vẽ dưới dạng pixel, không có dòng văn bản đọc được nào bên dưới. Vì vậy mọi bản dịch đều bắt đầu bằng việc đọc lại chữ từ bức ảnh, và mọi bước tiếp theo đều kế thừa bất cứ lỗi nào xảy ra ở bước đầu tiên đó.

Chữ trong game gần như là trường hợp khó nhất cho bước đọc đó:

  • Font trang trí và chữ viết tay, được chọn vì không khí chứ không phải vì dễ đọc.
  • Độ tương phản thấp trên nền đang chuyển động, có hoạt ảnh.
  • Nhãn giao diện cực nhỏ, và chữ được vẽ sẵn vào trong tranh nền.

Chỉ một ký tự đọc sai cũng có thể đảo ngược nghĩa của cả câu — và không có công cụ kiểm tra chính tả nào bắt được lỗi đó, vì từ đó thường là danh từ riêng hoặc thuật ngữ do chính game tự đặt ra. Sau đó bản thân việc dịch lại đối mặt với vấn đề thứ hai: chữ trong game đến dưới dạng từng mảnh rời rạc. Một nhãn menu hai từ. Một con số trên HUD. Một dòng vẫn đang được gõ ra từng chữ một. Các mô hình dịch làm tốt nhất với câu hoàn chỉnh; còn một game thì đưa ra những mảnh vỡ, không theo thứ tự, không có ngữ cảnh xung quanh, với vốn từ mà một mô hình tổng quát chưa từng gặp.

Và tất cả những điều đó phải chạy trên máy của bạn trong khi game đang chạy. Một dịch vụ đám mây có thể ném mô hình lớn nhất thế giới vào một câu duy nhất. Còn overlay trực tiếp thì chia sẻ bộ nhớ và GPU với chính game bạn đang chơi — nên phần lớn kỹ thuật ở đây là lấy được kết quả tốt từ những mô hình đủ nhỏ để ngồi cạnh một game, chứ không phải chỉ vươn tới mô hình lớn nhất.

2 · Overlay

Vẽ chữ lên trên một game không chịu đứng yên

Đặt chữ lên màn hình thì dễ. Đặt nó lên trên một game đang chạy mà không gây cản trở thì không dễ chút nào.

Bản dịch nên đặt ở đâu? Chữ xuất hiện ở những chỗ bạn không đoán trước được — thoại ở dưới cùng, mô tả vật phẩm bên phải, tooltip tại vị trí con trỏ, thông báo hệ thống ở giữa màn hình. Che sai thứ vào sai thời điểm, và overlay trở thành chính vấn đề mà nó được sinh ra để giải quyết.

Màn hình luôn chuyển động. Một dòng thoại tồn tại xuyên suốt hàng chục khung hình khi nó cuộn, mờ dần, hoặc tự gõ ra từng chữ. Overlay phải nhận ra "đây vẫn là dòng mình đang hiển thị" ngay cả khi các pixel bên dưới xê dịch nhẹ ở mỗi khung hình — nếu không nó sẽ nhấp nháy và vẽ lại liên tục. Làm sai điều này trông giống như rung giật; làm đúng nghĩa là giữ bản dịch ổn định trong khi bức ảnh bên dưới chẳng bao giờ thật sự ngừng thay đổi.

Và không điều nào trong số đó được phép làm hại đến game. Việc chụp và vẽ chạy tách khỏi luồng riêng của game nên không cướp thời gian khung hình, và không có gì bị tiêm vào game — Playto đọc màn hình từ bên ngoài, giống như cách phần mềm quay màn hình vẫn làm.

3 · Ghi lại

Biết chính xác bạn đã đọc gì

Đây là phần âm thầm nhất, và theo cách nào đó cũng là phần khó nhất. Một phần công việc của Playto là ghi nhớ những câu và từ bạn đã gặp, để một game bạn đã chơi trở thành thứ bạn có thể ôn tập lại sau này. Nghe có vẻ như chỉ là ghi chép đơn giản. Không phải vậy — vì chữ trong game không phải là một danh sách sạch sẽ gồm các dòng riêng biệt.

  • Cùng một câu xuất hiện xuyên suốt nhiều khung hình trong khi nó tự gõ ra từng chữ.
  • Một màn hình bạn đang đứng yên trên đó xuất hiện lại ở mỗi lần chụp.
  • Cùng một đoạn chữ không đổi lại được đọc hơi khác nhau giữa khung hình này với khung hình khác.

Vì vậy việc quyết định "đây là một dòng mới đáng giữ lại" hay "mình đã có dòng này rồi" là một phán đoán thật sự, được đưa ra nhiều lần mỗi giây. Nghiêng về một phía thì log sẽ đầy những bản sao của cùng một câu; nghiêng về phía kia thì nó âm thầm bỏ sót những dòng bạn muốn giữ. Biết khi nào một dòng đã hoàn tất là một bài toán riêng — một câu vẫn đang lộ ra từng chữ trông rất giống một câu ngắn đã hoàn chỉnh.

Không điều nào trong số này lộ ra khi mọi thứ hoạt động tốt. Bạn chỉ thấy một danh sách sạch sẽ những gì mình đã đọc. Sự vô hình đó chính là phần lớn công sức.

Vì sao không có một thiết lập duy nhất thắng ở mọi nơi

Vì mỗi game khó theo một cách khác nhau, không có một hành vi duy nhất đúng cho tất cả — và chính vì vậy Playto cho bạn vài lựa chọn. Các chế độ đọc chữ (từ nhận dạng chữ nhanh cho đến nhận dạng hình ảnh đầy đủ cho font cách điệu), và các chế độ chụp (theo con trỏ chuột, vùng cố định, hoặc toàn bộ cửa sổ) tồn tại để bạn khớp công cụ với cách một game cụ thể bị hỏng. Xem cách chúng phối hợp với nhau trên trang overlay.

Và nó đang ngày càng tốt hơn. Đây là việc tinh chỉnh chúng tôi làm liên tục — cách đọc chữ, độ ổn định của overlay, log. Nếu một game đọc không tốt với bạn, bản demo là miễn phí, và cho chúng tôi biết game nào và điều gì đã sai là điều hữu ích nhất bạn có thể làm; game thật trong tay người chơi thật chính là tín hiệu chúng tôi dùng để cải thiện.

Câu hỏi thường gặp

Vì sao dịch game đôi khi không chính xác?

Vì game vẽ chữ dưới dạng pixel chứ không phải văn bản đọc được, nên mọi bản dịch đều bắt đầu bằng việc đọc lại các chữ cái từ hình ảnh (OCR). Font cách điệu, độ tương phản thấp trên nền chuyển động, và chữ giao diện quá nhỏ khiến bước này khó, và bất kỳ ký tự nào đọc sai cũng sẽ kéo theo lỗi vào bản dịch. Chữ trong game còn xuất hiện thành từng mảnh với rất ít ngữ cảnh, và dùng những thuật ngữ tự đặt mà một mô hình tổng quát chưa từng thấy. Đây là bài toán khó về bản chất, và là lý do chúng tôi coi chất lượng là việc làm liên tục chứ không phải thứ đã hoàn thành.

Chất lượng dịch có cải thiện theo thời gian không?

Có — cách đọc chữ và hành vi của overlay được tinh chỉnh liên tục, và các bản cập nhật được phát hành đều đặn. Mỗi game hỏng theo một kiểu khác nhau, nên game thật là tín hiệu tốt nhất chúng tôi có. Nếu một game đọc không tốt với bạn, bản demo miễn phí là cách để kiểm tra, và việc bạn cho chúng tôi biết sẽ giúp cải thiện nó.

Sao không dùng luôn mô hình AI lớn nhất, chính xác nhất?

Một dịch vụ đám mây có thể đặt một mô hình khổng lồ đằng sau mỗi câu. Còn overlay chạy trực tiếp trên PC của bạn trong khi game đang chạy, chia sẻ bộ nhớ và GPU với nó — nên cái khó nằm ở việc lấy được kết quả tốt từ những mô hình đủ nhỏ để cùng tồn tại với game, chứ không phải chọn mô hình lớn nhất. Bạn vẫn có thể kết nối API key đám mây của riêng mình nếu muốn, nhưng phần lớn công sức phát triển dồn vào hướng chạy cục bộ.

Playto có đọc được font cách điệu hay chữ viết tay trong game không?

Chữ in tiêu chuẩn thì được đọc nhanh và đáng tin cậy. Font cách điệu mạnh hoặc chữ viết tay là điểm yếu của nhận dạng chữ thông thường, nên có một chế độ nhận dạng hình ảnh đọc trực tiếp những chữ đó — bạn chọn chế độ hợp với cách game đang render chữ. Đây là một đánh đổi thật sự: nhận dạng hình ảnh chậm hơn và nặng hơn, nên nó dành cho những font cần đến chứ không bật thường trực.

Thử ngay với game của bạn

Bản demo miễn phí là bài kiểm tra trung thực nhất — xem nó đọc những game bạn thật sự chơi ra sao, và cho chúng tôi biết chỗ nào chưa tốt. Phản hồi đó chính là thứ chúng tôi dùng để tinh chỉnh.