Giọng tổng hợp cho trình đọc màn hình cần những phẩm chất khác hẳn giọng đọc sách nói: phải rõ từng chữ ở tốc độ rất cao, phản hồi gần như tức thì khi người dùng vuốt hay gõ phím, đọc được dấu câu, ký hiệu, đánh vần từng chữ cái có dấu, và ổn định tuyệt đối; độ tự nhiên, cảm xúc chỉ xếp sau. Vì thế nhiều người khiếm thị lâu năm vẫn chọn một giọng nghe "máy" hơn thay vì giọng nơ-ron mượt mà.
Trình đọc màn hình là phần mềm đọc to mọi thứ trên màn hình, như NVDA trên Windows (miễn phí, mã nguồn mở), VoiceOver trên thiết bị Apple, TalkBack trên Android. Phần mềm này dựa vào một bộ tổng hợp giọng nói để phát ra lời. Bài này giải thích yêu cầu kỹ thuật riêng của tình huống này với tiếng Việt, để người làm giọng đọc, người làm ứng dụng và người thân của người khiếm thị hiểu vì sao một giọng "hay" có thể là giọng tồi cho việc này. Các mẹo dùng điện thoại hằng ngày cho người khiếm thị có ở trang AI Đồng Hành.
Tốc độ: người dùng lâu năm nghe nhanh hơn người thường nhiều
Nghe nhanh là kỹ năng. Người khiếm thị dùng trình đọc màn hình nhiều năm thường đặt tốc độ đọc cao hơn nhiều so với tốc độ nói chuyện bình thường, có người cao gấp đôi gấp ba, để duyệt nội dung nhanh như người sáng mắt lướt mắt. Người mới nghe thử ở tốc độ đó sẽ thấy như tiếng líu ríu không hiểu được, nhưng với người đã quen, đó là tốc độ làm việc.
Giọng nơ-ron hay méo ở tốc độ cao. Nhiều giọng nơ-ron được huấn luyện ở tốc độ đọc tự nhiên. Khi bị đẩy lên tốc độ cao, chúng nuốt âm tiết, méo thanh điệu, hoặc bộ tăng tốc nén âm thanh làm giọng nghe như bị nghẹt. Giọng tham số hay giọng tổng hợp theo luật tuy nghe máy móc nhưng giữ được ranh giới âm tiết và dáng thanh rõ ở tốc độ cao.
Thanh điệu càng phải rõ. Ở tốc độ cao, người nghe không còn thời gian dựa vào ngữ cảnh để đoán chữ. Thanh điệu bị mờ thì "bán" và "bạn", "mở" và "mỡ" thành khó phân biệt. Một giọng đọc tốt cho trình đọc màn hình tiếng Việt giữ đặc trưng thanh điệu ngay cả khi âm tiết bị rút ngắn.
Độ trễ và khả năng ngắt lời
Khi người dùng vuốt qua một nút, giọng phải đọc tên nút ngay lập tức. Nếu có độ trễ vài trăm mili giây trước khi nghe được tiếng, mỗi thao tác đều chậm lại, cộng dồn qua hàng trăm thao tác mỗi giờ thành sự mệt mỏi lớn. Giọng chạy trên máy chủ qua mạng thường có độ trễ cao hơn và phụ thuộc kết nối; vì vậy trình đọc màn hình hầu như luôn dùng bộ tổng hợp chạy ngay trên thiết bị.
Một yêu cầu đi kèm là ngắt lời tức thì. Người dùng thường vuốt tiếp khi mới nghe được vài chữ đầu, vì đã đoán ra nội dung. Bộ tổng hợp phải dừng ngay câu đang đọc và chuyển sang câu mới, không đọc nốt, không có tiếng cụt. Mô hình nơ-ron lớn sinh âm thanh theo từng đoạn dài khó đáp ứng điều này, trong khi các bộ tổng hợp gọn nhẹ đời cũ được thiết kế cho đúng kiểu tương tác ấy.
Điểm cuối là tài nguyên. Trình đọc màn hình chạy liên tục suốt ngày, nên bộ tổng hợp phải tốn ít pin, ít bộ nhớ, không làm máy nóng. Một giọng nơ-ron ngốn tài nguyên có thể nghe hay hơn trong năm phút thử, nhưng làm điện thoại hết pin trước buổi chiều là không chấp nhận được với người phụ thuộc vào nó.
Những thứ trình đọc màn hình phải đọc mà sách nói không cần
Văn bản trên màn hình khác văn bản sách. Bộ tổng hợp cho trình đọc màn hình tiếng Việt phải xử lý được các tình huống sau, nhiều tình huống trong đó là phần việc phối hợp giữa trình đọc màn hình và bộ tổng hợp.
| Tình huống | Yêu cầu | Vì sao quan trọng |
|---|---|---|
| Đánh vần chữ có dấu | đọc được "a mũ", "ơ", "đ", "dấu hỏi" khi người dùng di chuyển từng ký tự | để soát chính tả khi gõ, nhập mật khẩu, kiểm tên riêng |
| Dấu câu và ký hiệu | đọc tên dấu câu khi cần, đọc @, #, /, _ trong địa chỉ email, đường dẫn | nhập và kiểm thông tin chính xác |
| Chữ hoa | báo chữ hoa bằng tiếng hoặc thay đổi cao độ | phân biệt tên riêng, mật khẩu phân biệt hoa thường |
| Văn bản trộn ngôn ngữ | chuyển giọng hoặc ít nhất đọc được từ tiếng Anh trong giao diện | nhiều ứng dụng tiếng Việt còn sót chữ tiếng Anh |
| Số dài và mã | đọc theo chữ số rời hoặc theo nhóm tuỳ thiết lập | mã xác thực, số tài khoản, số thẻ |
| Biểu tượng cảm xúc | đọc tên biểu tượng | trong tin nhắn, biểu tượng mang nghĩa |
Trong các tình huống trên, đánh vần chữ có dấu là đặc thù tiếng Việt và thường bị bỏ quên khi người làm giọng chỉ thử bằng câu văn hoàn chỉnh. Một bộ tổng hợp đọc câu rất hay nhưng khi đánh vần lại nói "a" cho cả "ă" và "â" là không dùng được để soát chính tả.
Những lựa chọn giọng tiếng Việt hiện có
Các hệ điều hành lớn hiện đều có giọng tiếng Việt cho trình đọc màn hình đi kèm, với chất lượng và cách cài đặt khác nhau theo phiên bản. Bộ tổng hợp mã nguồn mở eSpeak NG, vốn đi kèm NVDA, có hỗ trợ tiếng Việt, kèm biến thể giọng vùng; giọng của nó nghe rõ máy móc nhưng rất nhẹ, nhanh và ổn định ở tốc độ cao. Ngoài ra có những giọng tiếng Việt khác do cộng đồng hay doanh nghiệp phát triển cho các nền tảng; danh sách thay đổi theo thời gian nên cần kiểm tra trên cửa hàng ứng dụng và trong cài đặt trợ năng của thiết bị ở phiên bản hiện hành.
Câu hỏi giọng nào tốt nhất không có đáp án chung. Người mới mất thị lực thường thích giọng tự nhiên vì dễ nghe ở tốc độ chậm; người dùng lâu năm ưu tiên giọng giữ rõ ở tốc độ cao. Nhiều người dùng song song: một giọng gọn nhẹ cho thao tác hằng ngày, một giọng tự nhiên hơn để nghe đọc bài dài. Người thân hay người hỗ trợ không nên chọn hộ theo cảm nhận của tai người sáng mắt.
Với cộng đồng người khiếm thị Việt Nam, các hội và trung tâm hỗ trợ người mù ở nhiều địa phương có kinh nghiệm thực tế về giọng nào dùng tốt trên thiết bị nào. Khi làm sản phẩm, hỏi trực tiếp những người dùng này giá trị hơn mọi bài đánh giá.
Kiểm một giọng đọc cho mục đích trợ năng: phép thử thực tế
Nếu bạn làm giọng đọc hoặc làm ứng dụng muốn tối ưu cho người dùng trình đọc màn hình, các bước sau giúp đánh giá đúng nhu cầu thay vì đánh giá theo tiêu chí của sách nói.
- Mời người dùng trình đọc màn hình lâu năm tham gia ngay từ đầu, trả thù lao cho thời gian của họ. Người sáng mắt tự thử bằng cách nhắm mắt không thay được.
- Thử ở tốc độ mà chính người dùng đó quen dùng, không phải tốc độ mặc định.
- Thử thao tác thật: duyệt danh sách, đọc tin nhắn, gõ và soát một câu có nhiều chữ có dấu, nhập một địa chỉ email. Đo xem có chữ nào bị nghe nhầm.
- Thử độ trễ và ngắt lời: vuốt liên tục qua mười mục, xem giọng có theo kịp và dừng gọn không.
- Thử đánh vần: di chuyển từng ký tự qua các chữ ă, â, ê, ô, ơ, ư, đ và các dấu thanh.
- Hỏi về mệt mỏi sau khoảng một giờ dùng liên tục, không chỉ ấn tượng mười phút đầu.
Với người làm ứng dụng, một lời nhắc liên quan: chất lượng giọng chỉ là một nửa. Nửa còn lại là ứng dụng có gắn nhãn đúng cho nút, ảnh, ô nhập liệu hay không. Một nút không có nhãn thì giọng hay đến đâu cũng chỉ đọc được "nút". Hướng dẫn tiếp cận nội dung web WCAG của W3C là tài liệu chuẩn để kiểm phần này.
Thói quen nghe và cái giá của việc đổi giọng
Một điều người sáng mắt ít ngờ tới: với người dùng trình đọc màn hình lâu năm, giọng đọc giống như kiểu chữ quen thuộc với người đọc sách. Sau hàng nghìn giờ nghe, tai họ đã quen từng đặc điểm của giọng, kể cả những lỗi phát âm nhỏ, và não tự bù trừ. Khi đổi sang giọng khác, kể cả giọng "tốt hơn", tốc độ nghe hiểu thường tụt xuống một thời gian, buộc họ phải giảm tốc độ đọc và tập quen lại. Vì thế nhiều người giữ một giọng rất lâu, dù có giọng mới hay hơn.
Điều này có hệ quả cho người làm sản phẩm và nhà cung cấp hệ điều hành. Một bản cập nhật âm thầm thay giọng mặc định, đổi cách đọc dấu câu hay đổi cách đánh vần có thể làm gián đoạn công việc của người khiếm thị nhiều ngày. Cách làm tôn trọng người dùng là giữ giọng cũ như một lựa chọn, thông báo rõ khi có thay đổi, và cho phép quay lại thiết lập cũ. Với người thân hay người hỗ trợ, nguyên tắc tương tự: đừng tự ý đổi giọng hay tốc độ trên máy của người khiếm thị chỉ vì thấy giọng đó khó nghe.
Khoảng trống cần lấp cho tiếng Việt
So với tiếng Anh, lựa chọn giọng tiếng Việt chất lượng cao vừa nhẹ vừa giữ rõ ở tốc độ cao còn ít. Hướng kỹ thuật đáng quan tâm là các mô hình nơ-ron nhỏ được tối ưu riêng cho trình đọc màn hình: huấn luyện với dữ liệu đọc nhanh, đảm bảo ngắt lời tức thì, chạy được trên thiết bị phổ thông. Một số cộng đồng ngôn ngữ khác đã có những dự án mã nguồn mở theo hướng này; với tiếng Việt, đây là chỗ các nhóm nghiên cứu và cộng đồng có thể đóng góp trực tiếp cho người dùng thật.
Một khoảng trống khác là văn bản đầu vào. Nhiều trang web và ứng dụng Việt dùng ảnh chứa chữ, nút chỉ có biểu tượng, bảng biểu không có cấu trúc, khiến trình đọc màn hình không có gì để đọc. Bộ tổng hợp tốt đến mấy cũng không đọc được thứ không có trong văn bản. Cải thiện phần này nằm trong tay mọi người làm nội dung số, không chỉ người làm AI.
Câu hỏi thường gặp
Vì sao người khiếm thị thường chọn giọng nghe máy móc?
Vì họ thường nghe ở tốc độ rất cao, cần độ rõ, độ ổn định và phản hồi tức thì. Giọng gọn nhẹ đời cũ giữ rõ ranh giới âm tiết và thanh điệu khi đọc nhanh, ngắt lời tức thì và tốn ít pin. Giọng nơ-ron tự nhiên hơn nhưng có thể méo hoặc trễ ở tốc độ cao.
NVDA có đọc được tiếng Việt không?
NVDA là trình đọc màn hình miễn phí, mã nguồn mở trên Windows, có giao diện tiếng Việt và đi kèm bộ tổng hợp eSpeak NG có hỗ trợ tiếng Việt. Người dùng cũng có thể dùng các giọng tiếng Việt khác cài trên Windows. Chi tiết cài đặt nên kiểm tài liệu phiên bản hiện hành.
Tốc độ đọc bao nhiêu là bình thường với người dùng trình đọc màn hình?
Không có mức chuẩn. Người mới dùng thường để gần tốc độ nói chuyện; người dùng lâu năm đẩy lên cao hơn nhiều theo thời gian. Không nên áp tốc độ của mình cho người khác; thiết bị cho mỗi người tự điều chỉnh là đúng.
Ứng dụng của bạn cần làm gì để người khiếm thị dùng được?
Gắn nhãn chữ cho mọi nút, biểu tượng và ảnh mang thông tin; dùng cấu trúc tiêu đề, danh sách đúng; tránh đặt chữ trong ảnh; cho phép phóng to chữ; thử bằng trình đọc màn hình thật. Hướng dẫn WCAG của W3C là chuẩn tham khảo, và người dùng khiếm thị là người kiểm tốt nhất.
Giọng tổng hợp có thay được sách nói do người đọc không?
Với tài liệu học tập, tài liệu tham khảo, giọng tổng hợp giúp người khiếm thị tiếp cận nhanh khối lượng lớn văn bản mà không phải chờ ai đọc. Với văn chương, nhiều người vẫn thích người đọc thật. Hai thứ bổ sung cho nhau chứ không loại trừ.
Đánh vần chữ có dấu quan trọng thế nào?
Rất quan trọng khi người khiếm thị gõ chữ, soát chính tả, nhập tên riêng hay mật khẩu. Nếu bộ tổng hợp đọc "a" cho cả "ă" và "â", hoặc không đọc được tên dấu thanh, người dùng không thể biết mình đã gõ đúng hay chưa.