Một demo JavaScript sáng tạo mô phỏng các đài số đáng sợ bằng công nghệ text-to-speech của trình duyệt đã khơi dậy cuộc thảo luận trong cộng đồng về tính tương thích trình duyệt và tính xác thực. Tác phẩm code golf 1KB này, được thiết kế cho chủ đề Creepy của cuộc thi js1024, sử dụng Web Speech API để tạo ra các số và từ ngẫu nhiên bằng nhiều ngôn ngữ khác nhau với âm điệu và tốc độ được thay đổi.
Vấn Đề Tương Thích Trình Duyệt Xuất Hiện
Demo hoạt động ổn định trên một số nền tảng nhưng lại hoàn toàn thất bại trên những nền tảng khác. Người dùng báo cáo thành công với Firefox trên Windows 11 và Brave trên macOS, trong khi gặp phải tình trạng hoàn toàn im lặng trên iOS Safari, Android Chrome và các trình duyệt dựa trên Linux. Các vấn đề tương thích xuất phát từ việc triển khai khác nhau của SpeechSynthesis API trên các trình duyệt và hệ điều hành.
Trên các hệ thống Linux, người dùng gặp phải lỗi JavaScript khi mã code cố gắng truy cập các thuộc tính giọng nói không tồn tại. Vấn đề dường như liên quan đến việc thiếu các thành phần text-to-speech cần được cài đặt riêng. Một số trình duyệt đơn giản là không hiển thị chức năng tổng hợp giọng nói, khiến người dùng trải nghiệm im lặng.
Cộng Đồng Cải Thiện Tính Xác Thực
Trong khi đánh giá cao cách tiếp cận sáng tạo, các thành viên cộng đồng đã chỉ ra những khác biệt đáng kể so với các đài số thực tế. Các đài thực tế thường thông báo từng chữ số riêng lẻ thay vì số đầy đủ, nói bảy. ba. bốn. thay vì bảy trăm ba mươi bốn. Chúng cũng có tiếng tĩnh nền và âm thanh nhiễu sóng radio tạo thêm bầu không khí bí ẩn.
Trước tiên, nó cần có tiếng tĩnh và tiếng click khác nhau. Thứ hai, các đài số thường không nói 'bảy trăm ba mươi bốn', chúng thường nói 'bảy. ba. bốn.'
Một thành viên cộng đồng đã tạo ra một phiên bản cải tiến giải quyết những vấn đề này, thêm vào việc tạo tiếng ồn nền và tách chữ số đúng cách. Mã code cải tiến của họ vẫn phù hợp với giới hạn 1KB trong khi mang lại trải nghiệm đài số xác thực hơn.
Đổi Mới Kỹ Thuật Trong Giới Hạn
Demo gốc thể hiện các giải pháp thông minh cho giới hạn kích thước 1KB. Thay vì lưu trữ danh sách từ, nó trích xuất từ vựng từ các thuộc tính đối tượng toàn cục của trình duyệt bằng cách sử dụng Object.getOwnPropertyNames(globalThis)
. Kỹ thuật này tạo ra hơn 1,900 từ bao gồm các thuật ngữ đáng sợ phù hợp như Event, Atomics và Geolocation.
Mã code cũng truy cập động các giọng nói hệ thống có sẵn để cung cấp đầu ra đa ngôn ngữ, khiến các từ tiếng Anh nghe có vẻ xa lạ khi được xử lý thông qua các engine ngôn ngữ khác nhau. Các điều chỉnh âm điệu và tốc độ ngẫu nhiên tạo ra những biến đổi giọng nói đáng lo ngại khiến demo thực sự đáng sợ khi hoạt động đúng cách.
Bất chấp những hạn chế kỹ thuật và vấn đề tương thích, dự án này thể hiện việc sử dụng đổi mới các web API trong những ràng buộc cực kỳ khắt khe. Phản hồi xây dựng và cải tiến của cộng đồng cho thấy cách các dự án code golf có thể phát triển vượt ra ngoài phạm vi ban đầu của chúng trong khi vẫn duy trì tầm nhìn sáng tạo cốt lõi.
Tham khảo: 1KB JS Numbers Station