Lúc tôi trước có thấy bên GPE có một chủ đề là: Đọc số thứ tự phát ra loa, thấy cũng rất hay và ứng dụng thực tiễn nên làm demo trong Access để các bạn tham khảo. Demo này tôi làm 2 phiên bản: đọc Offline và đọc Online. Bản Offline: Kỹ thuật áp dụng để đọc các chuỗi Text cố định là ghi âm giọng đọc trước hoặc có thể tải file giọng đọc từ Google Translate sau đó dùng hàm PlaySound () để phát file âm thanh đã ghi đó. Bản Online: là tương tác trực tiếp, tức thời với Google Translate để lấy file âm thanh giọng đọc. Bản này phải có kết nối với Internet.
# Bản Offline: Tôi nghĩ các bạn dùng bản Offline sẽ chủ động hơn vì không phải máy tính nào cũng được kết nối Internet và có thể không hoạt động được nếu như Internet phát sinh vấn đề. Các ứng dụng đọc tự động thường có các câu từ cố định như: gọi số thứ tự bệnh nhân, khách hàng tới cơ quan làm việc... Do đó bạn có thể ghi âm trước như câu: "Xin mời khách hàng có số thứ tự", "Vui lòng đến quầy", ghi âm giọng đọc từng số từ 0 -9 v.v.. Sau đó sẽ ráp vô thành câu hoàn chỉnh. Tôi thì dùng luôn giọng đọc của Google Translate. Bạn có thể gõ các câu trên vào Google Dịch và dùng các công cụ dưới đây để tải file đọc dạng .mp3 về mà dùng. - Vô trang: https://soundoftext.com/ để gõ câu tiếng Việt và tải file mp3 về. - Vô trang: https://www.youtube.com/watch?v=cumhasFQv5s để xem hướng dẫn download trực tiếp file giọng đọc (mp3) của Google.
# Bản Online: - Đối với Demo này thì các bạn không cần ghi âm trước hoặc có sẳn các file âm thanh trước để đọc mà chỉ cần kết nối trực tiếp vào Google Dịch để lấy giọng đọc các câu từ bất kỳ mà bạn gõ vào textbox (TTS - Text to Speech). - Kỹ thuật đó là: encode chuỗi cần đọc (sang UTF8) và đưa vào link TTS của Google Dịch, tải file audio (mp3), mở file audio đó. - Tôi dùng hàm API URLDownloadToFile của Windows để lấy file TTS Google về máy tính rồi phát ra.
**Lưu ý: Khi phát ra âm thanh thì ứng dụng sẽ bị tạm đóng băng, bạn không thể thực hiện các thao tác khác, nếu bạn cố bấm liên tiếp sẽ xảy ra lỗi (vì VBA chỉ lập trình đơn luồng). Do đó nếu muốn kết hợp vào các ứng dụng khác như Quản lý phòng khám thì bạn phải tách riêng ra 2 ứng dụng nhưng tương tác trên cùng một CSDL Back End thì mới tránh điểm bất lợi này.