Shipping DIALØGUE dạy tôi điều gì về các sản phẩm AI đa ngôn ngữ
DIALØGUE hỗ trợ 7 ngôn ngữ, nhưng phần việc đa ngôn ngữ thực sự không phải là dịch strings. Nó là sửa ngày tháng theo từng audience, giữ TTS nhất quán, sửa UI bị trôi ngôn ngữ, và quyết định chỗ nào chất lượng đủ quan trọng để mình chậm lại.
Một trong những điều hấp dẫn nhất mà AI cho phép chúng ta làm lúc này là thêm ngôn ngữ rất nhanh. Tôi biết điều đó vì tôi cứ làm mãi. Tôi thêm 5 ngôn ngữ cho DIALØGUE trong 48 giờ, rồi dịch toàn bộ kho bài blog của mình sang 10 ngôn ngữ trong 4 ngày.
Hai bài đó nói về mặt tốc độ. Bài này nói về mọi thứ mà tốc độ không bao phủ được.
Dịch thuật là phần dễ demo nhất, và cũng là phần nguy hiểm nhất để đánh giá quá cao.
Máy có thể chuyển văn bản từ ngôn ngữ này sang ngôn ngữ khác với tốc độ đáng kinh ngạc. Điều đó không có nghĩa là sản phẩm lập tức cho cảm giác native. Theo trải nghiệm của tôi, công việc đa ngôn ngữ thực sự xuất hiện ở bốn chỗ: thời gian, giọng điệu, hệ thống UI, và hành vi fallback. Đó là nơi sản phẩm bắt đầu có cảm giác thoughtful, hoặc bắt đầu có cảm giác giả.
Trong thực tế, nó trông như thế này:
| Translation Work | Product Work | |
|---|---|---|
| Nó bao phủ gì | Strings, copy, labels | Ngày tháng, layout, giọng điệu, fallbacks |
| Ai sẽ nhận ra khi sai | Reviewer song ngữ | Bất kỳ user nào trong locale đó |
| AI giúp thế nào | Tạo bản dịch rất nhanh | Không thể phán đoán độ fit ở level sản phẩm |
| Công sức để sửa | Dịch lại string | Thiết kế lại component |
| Khi nào bạn phát hiện ra | Lúc code review | Sau khi có người dùng app thật |
Bug đầu tiên không phải chuyện dịch. Mà là thời gian.
Một trong những fix khiến điều này trở nên quá rõ với tôi hoàn toàn không liên quan đến copy.
Với các show recurring, DIALØGUE tự động tạo tiêu đề tập. Phiên bản straightforward nghe rất vô hại: tên show cộng với ngày hôm nay.
Nghe thì ổn cho đến khi audience của bạn ở Tokyo còn server của bạn vẫn đang nghĩ theo giờ California.
Nếu một listener ở Nhật mở một daily show khi Tokyo đã sang ngày 14 tháng 3, nhưng tiêu đề tập vẫn ghi 13 tháng 3 vì đó là điều server nghĩ, sản phẩm lập tức cho cảm giác off. Không hỏng. Chỉ là cẩu thả.
Thế là cuối cùng tôi phải đổi cách tạo tiêu đề tập để nó dùng ngày địa phương của audience, trong locale và timezone của audience, chứ không phải default của server.
Đó là một chi tiết implementation nhỏ. Và đó chính là vấn đề.
Sản phẩm đa ngôn ngữ không chỉ là chuyện câu chữ. Nó là chuyện context.
Ngôn ngữ mà không có local context thường chỉ là một phiên bản lịch sự hơn của việc sai.
Bài học 1: Giọng điệu là một phần của sản phẩm
Điều này càng rõ hơn khi tôi đi sâu hơn vào DIALØGUE.
Sản phẩm này được xây quanh dialogue, pacing, personality, và audio. Điều đó đẩy quality bar lên cao hơn rất nhiều so với một giao diện SaaS bình thường.
Khi tôi thêm các templates mới, tôi nhanh chóng nhận ra rằng hỗ trợ đa ngôn ngữ không chỉ là:
- dịch tên template
- dịch copy trên landing page
- rồi shipping
Với một template, tôi phải nghĩ qua tất cả những thứ này:
- host profiles
- audience profiles
- dialogue guides
- voice instructions cho TTS
- localized naming conventions theo từng ngôn ngữ
Phần việc đó vốn đã tồn tại ở tiếng Anh, nhưng nó cũng cần các phiên bản tiếng Nhật và tiếng Việt, vì chemistry giữa các hosts là một phần của sản phẩm, chứ không phải lớp mỹ phẩm phủ lên trên.
Nếu sản phẩm của bạn tạo ra nội dung, voice không phải đồ trang trí. Voice là infrastructure.
Một thứ có thể đúng ngữ pháp nhưng vẫn cho cảm giác vô hồn.
Tôi thấy điều đó rất rõ với các biến thể Chinese, và với spoken content nói chung. Standard Mandarin có thể đúng về mặt kỹ thuật nhưng vẫn quá formal trong một số ngữ cảnh. Một nhịp hội thoại casual trong tiếng Anh có thể nghe rất bureaucratic khi bị đẩy qua product language theo kiểu quá literal ở một ngôn ngữ khác. Một câu đùa có tác dụng ở thị trường này có thể biến thành một đoạn giải thích phẳng lì ở thị trường khác.
Đó là lý do bây giờ tôi rất quan tâm đến tone guides và host profiles. Không phải vì tôi muốn mọi output đều nghe thật "branded". Mà vì voice drift là một trong những cách nhanh nhất để khiến một sản phẩm AI đa ngôn ngữ trở nên generic.
Và generic thì đắt.
Bài học 2: Độ dài UI là vấn đề sản phẩm, không phải vấn đề dịch thuật
Nghe thì nhỏ cho đến khi bạn thật sự shipping một app.
Rồi bỗng nhiên nó ở khắp mọi nơi.
Khi tôi localize app iOS của DIALØGUE, nó không còn là chuyện dịch vài màn hình nữa. Nó trở thành 253 strings trên 7 ngôn ngữ.
Và kể cả khi đó, công việc vẫn chưa xong.
Tôi phải rewiring các input components để app language picker thật sự kiểm soát ngôn ngữ UI một cách nhất quán. Placeholders, buttons, pricing labels, status text, tất cả. Nếu không, bạn sẽ gặp vấn đề nửa dịch nửa chưa:
- một screen tôn trọng ngôn ngữ đã chọn
- screen khác vẫn hiện placeholder tiếng Anh
- status labels vẫn ở ngôn ngữ gốc
- app technically hỗ trợ nhiều ngôn ngữ, nhưng trải nghiệm thì không
Một button gọn gàng trong tiếng Anh có thể trở nên awkward trong tiếng Đức. Một dòng pricing ngắn gọn có thể bị xuống dòng trong tiếng Pháp. Một settings label ngắn và punchy có thể hành xử khác đi trong tiếng Nhật.
Nếu workflow localization của bạn dừng ở chỗ generate text, bạn sẽ phát hiện ra những vấn đề này quá muộn, và khá xấu hổ.
Đó là lý do tôi ngày càng nghĩ rằng công việc đa ngôn ngữ phải được xem như một hệ thống sản phẩm hoàn chỉnh:
- copy
- layout
- spacing
- truncation rules
- component behavior
- screenshot QA
Máy có thể tạo ra câu chữ. Vẫn phải có ai đó mở Simulator.
Bài học 3: Fallback behavior cho thấy sản phẩm thực sự trưởng thành đến đâu
Điều này còn quan trọng hơn ở audio products so với text products.
Một trong những fix hữu ích nhất tôi làm gần đây cho DIALØGUE nhìn từ bên ngoài khá chán: TTS thresholding và tính nhất quán theo từng segment.
Whole-script TTS gate ban đầu quá lạc quan. Những podcast dài vượt quá giới hạn input thật, lãng phí vài lần retry thất bại trước khi fallback. Trong một số runs, điều đó có nghĩa là khoảng 12 giây latency có thể tránh được trước khi hệ thống tự sửa.
Đã khó chịu trong tiếng Anh rồi.
Trong multilingual flows thì còn tệ hơn, vì voice consistency vốn đã khó giữ hơn.
Fix ở đây không phải "dùng model tốt hơn". Fix là product work:
- hạ threshold cho whole-script synthesis
- đưa các tập dài sang per-segment mode sớm hơn
- thêm opening / middle / closing guidance cho năng lượng của từng segment
- truyền vài dòng dialogue trước đó làm continuity context để segment tiếp theo không nghe như một show mới
Đó là fallback behavior. Đó là sự trưởng thành.
Nếu một giọng TTS riêng cho một ngôn ngữ nghe sai, chuyện gì xảy ra? Nếu câu trả lời được generate trộn lẫn ngôn ngữ, chuyện gì xảy ra? Nếu một untranslated error message xuất hiện giữa một localized flow, chuyện gì xảy ra? Nếu một script dài vượt model limit, chuyện gì xảy ra?
Những khoảnh khắc đó sẽ cho bạn biết multilingual support là một feature hay là một foundation.
Users thường dễ thông cảm khi hệ thống rõ ràng đang cố giúp. Họ ít thông cảm hơn nhiều khi sản phẩm cho cảm giác cẩu thả.
Bài học 4: Biết khi nào coverage không đáng
Câu hỏi business không phải là "Tôi có thể hỗ trợ thêm một ngôn ngữ nữa không?"
Nó là:
- ngôn ngữ này có mở ra usage thật hoặc distribution thật không?
- tôi có giữ được quality bar đủ đáng tin ở cả UI lẫn output không?
- tôi có xử lý được các failure cases mà không tạo ra support debt không?
Nếu câu trả lời là không, thì thứ bạn đang launch không phải multilingual capability. Nó là multilingual surface area. Và surface area mà không có chất lượng sẽ âm thầm làm yếu đi trust.
Bài học 5: Sản phẩm đa ngôn ngữ cần một lớp evals riêng
Đây có lẽ là takeaway lớn nhất của tôi từ cả DIALØGUE lẫn kho bài blog.
Bạn không thể đánh giá chất lượng đa ngôn ngữ chỉ bằng trực giác, đặc biệt khi ở quy mô lớn.
Bạn cần explicit checks:
- date và timezone behavior theo từng locale
- consistency về terminology
- UI overflow
- fallback language rules
- TTS consistency giữa các segments
- host/personality drift
- chất lượng output trong real user flows
Nói cách khác, sản phẩm đa ngôn ngữ cũng cần evals.
Và đây là chỗ tôi nghĩ những người xây với AI rất dễ mắc bẫy. Chúng ta bị cuốn hút bởi việc model có thể tạo ra nhiều đến mức nào, và dành ít thời gian hơn cho việc định nghĩa một cách durable xem "tốt" thật ra là gì.
Ở quy mô nhỏ, điều đó vẫn còn quản được.
Ở quy mô lớn hơn, nó trở nên nguy hiểm.
Điều này để tôi ở đâu
Tôi lạc quan hơn bao giờ hết về các sản phẩm AI đa ngôn ngữ.
AI thực sự thay đổi economics. Nó thực sự mở rộng những gì một cá nhân hoặc một nhóm nhỏ có thể shipping. Nó thực sự khiến những tham vọng sản phẩm từng nghe có vẻ không thực tế trở nên khả thi.
Nhưng nó cũng nâng chuẩn cho product judgment.
Bởi vì khi việc mở rộng ngôn ngữ trở nên dễ dàng, chất lượng sẽ trở thành yếu tố khác biệt. Và chất lượng trong sản phẩm đa ngôn ngữ không đến từ dịch thuật đơn thuần. Nó đến từ context, voice, interface fit, fallbacks, review loops, và một định nghĩa rất thành thật về việc "đủ native" thực sự nghĩa là gì.
Đó là điều DIALØGUE đã dạy tôi. Bạn hỗ trợ càng nhiều ngôn ngữ, bạn càng thực chất đang làm product management nhiều hơn, dù bạn có gọi tên nó như vậy hay không.
Nếu sản phẩm của bạn thực sự đa ngôn ngữ, công việc không kết thúc khi strings đã được dịch. Đó là lúc công việc thật sự bắt đầu.
Nếu bạn muốn xem kết quả của cách suy nghĩ đó, DIALØGUE hiện đã live bằng 7 ngôn ngữ. Và tôi đoán lớp đa ngôn ngữ này sẽ tiếp tục dạy tôi nhiều bài học mới khi càng có nhiều người dùng nó. Thường là kiểu bài học khiến mình khiêm tốn hơn.
Nếu bạn cũng đang xây các sản phẩm đa ngôn ngữ, tôi rất muốn biết: khoảnh khắc nào khiến bạn nhận ra bug khó nhất chẳng liên quan gì đến dịch thuật cả?
Cheers, Chandler
Câu hỏi thường gặp
Phần khó nhất của việc xây một sản phẩm AI đa ngôn ngữ là gì?
Không phải dịch thuật. AI giờ xử lý phần đó rất tốt. Phần khó nhất là mọi thứ xung quanh bản dịch: formatting có nhận biết timezone, voice consistency giữa các segments TTS, UI components bị vỡ vì độ dài strings khác nhau, và fallback behavior khi có thứ gì đó hỏng trong một locale cụ thể. Đó là các vấn đề sản phẩm, không chỉ là vấn đề ngôn ngữ.
Tôi có nên thêm nhiều ngôn ngữ hơn vào sản phẩm AI của mình không?
Chỉ khi bạn giữ được chất lượng. Mỗi ngôn ngữ bạn thêm vào đều tạo ra product work kéo dài: layout QA, voice tuning, date và number formatting theo locale, cùng fallback paths. Nếu sản phẩm của bạn dựa vào nuance và generated content như podcasts, long-form writing, hay conversational AI, quality bar sẽ cao hơn một giao diện transactional đơn giản.
Làm sao để test các tính năng AI đa ngôn ngữ?
Hãy xây một lớp evals rõ ràng. Với DIALØGUE, điều đó có nghĩa là kiểm tra ngày tháng theo locale, TTS segment consistency, UI overflow ở cả 7 ngôn ngữ, và personality drift trong các đoạn dialogue host được generate. Bạn không thể chỉ dựa vào trực giác khi đã hỗ trợ hơn hai hoặc ba ngôn ngữ. Surface area lúc đó quá lớn để spot-check bằng tay.
AI khiến localization dễ hơn hay khó hơn?
Cả hai. AI làm cho bản dịch đầu tiên nhanh hơn và rẻ hơn rất nhiều. Nhưng nó cũng tạo ra cảm giác hoàn thành giả. Bạn có đúng câu chữ và cho rằng sản phẩm đã sẵn sàng. Công việc thật sự, context, voice, UI fit, và fallbacks, vẫn cần human judgment. AI đã nâng floor cho multilingual coverage, nhưng ceiling vẫn là product craft.





