Bối cảnh và vấn đề nghiên cứu

Trong bối cảnh chuyển đổi số đang diễn ra mạnh mẽ trên nhiều lĩnh vực, việc đảm bảo tính công bằng và mở rộng khả năng tiếp cận thông tin, văn hóa, giáo dục cho người khuyết tật là một yêu cầu cấp thiết. Người khiếm thị (bao gồm những người bị suy giảm thị lực nặng hoặc mất hoàn toàn thị lực) gặp rào cản lớn khi tiếp cận nguồn tri thức từ sách báo in truyền thống. Mặc dù các công cụ hỗ trợ công nghệ đã xuất hiện, nhu cầu về một giải pháp trực tuyến chuyên biệt, miễn phí, thao tác thuận tiện và độc lập hoàn toàn thông qua giọng nói vẫn chưa được đáp ứng toàn diện.

Đề tài khóa luận tốt nghiệp kỹ sư ngành Công nghệ Thông tin (chuyên ngành Kỹ thuật Dữ liệu) tại Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh với tên gọi: "Xây dựng website đọc sách điều khiển bằng giọng nói cho người khiếm thị" (hoặc "Xây dựng Website đọc truyện dùng cho người khiếm thị") do sinh viên Trần Minh Duy thực hiện dưới sự hướng dẫn của TS. Nguyễn Thành Sơn.

Mục tiêu chính của đề tài là nghiên cứu và xây dựng một ứng dụng web đọc sách/truyện tích hợp công nghệ nhận dạng giọng nói và chuyển đổi văn bản thành giọng nói, cho phép người dùng khiếm thị có thể tìm kiếm, điều hướng, lựa chọn tác phẩm và điều khiển quá trình đọc hoàn toàn bằng khẩu lệnh.

Nhiệm vụ nghiên cứu được xác định theo 4 nội dung cụ thể:

  1. Nghiên cứu cơ sở lý thuyết về công nghệ nhận dạng giọng nói (Speech to Text - STT) và chuyển đổi văn bản thành giọng nói (Text to Speech - TTS).
  2. Thiết kế và cài đặt phát triển giao diện trang web phù hợp với người khiếm thị.
  3. Tích hợp công nghệ nhận dạng giọng nói và chuyển đổi văn bản thành giọng nói vào hệ thống web.
  4. Đánh giá kết quả vận hành và hiệu quả của trang web sau khi hoàn thiện.

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: Nhu cầu tiếp cận tài liệu số của người khiếm thị; các mô hình xử lý tiếng nói (STT, TTS); các công nghệ xây dựng hệ thống web gồm Web Speech API, NodeJS, ReactJS, Redux và hệ quản trị cơ sở dữ liệu MongoDB.
  • Phạm vi không gian và công nghệ: Phát triển website tích hợp chức năng nhận diện khẩu lệnh tiếng Việt, phản hồi âm thanh, đọc nội dung chương sách, tìm kiếm sách/nhạc, điều chỉnh âm lượng và lưu trạng thái nghe.
  • Phạm vi thời gian: Đề tài được triển khai thực hiện từ ngày 14/03/2024 đến ngày 05/07/2024.

Cơ sở lý thuyết và phương pháp

Khung lý thuyết và công nghệ nền tảng

Hệ thống được xây dựng dựa trên hai trục lý thuyết cốt lõi của công nghệ xử lý tiếng nói kết hợp kiến trúc phát triển ứng dụng web hiện đại:

  1. Lý thuyết Nhận dạng giọng nói (Speech to Text - STT):

    • Kiến trúc tổng quát: Gồm 4 thành phần: Tiền xử lý đặc trưng âm học (Acoustic Front-end), Mô hình âm học (Acoustic Model), Mô hình ngôn ngữ (Language Model) và Bộ giải mã (Decoder/Search Algorithm).
    • Trích xuất đặc trưng MFCC (Mel-Frequency Cepstral Coefficients): Quy trình xử lý tín hiệu âm thanh gồm các bước tuần tự: Tiền nhấn (Pre-emphasis) nhằm tăng năng lượng tần số cao; Phân khung và áp hàm cửa sổ (Frame blocking và Windowing); Biến đổi Fourier nhanh (FFT) để chuyển sang miền tần số; Lọc qua dải bộ lọc Mel (Mel Filter Bank); Lấy logarit thập phân (Log); Biến đổi Cosine rời rạc (DCT) tạo ra vectơ 13 chiều; và tính các đạo hàm bậc một, bậc hai (Delta/Delta-Delta MFCC).
    • Mô hình âm học và ngôn ngữ: Phân tích nguyên lý của Mô hình Markov ẩn (HMM), mô hình lai HMM-DNN, mô hình học sâu đầu cuối (End-to-End Deep Learning như Deep Speech, Wav2letter, Conformer), cùng các mô hình ngôn ngữ thống kê N-gram, RNNLM và TransformerXL.
  2. Lý thuyết Tổng hợp tiếng nói từ văn bản (Text to Speech - TTS):

    • Kiến trúc tổng quát: Gồm Mô-đun Xử lý ngôn ngữ tự nhiên (NLP) và Khối tổng hợp tín hiệu tiếng nói.
    • Quy trình xử lý NLP: Chuẩn hóa văn bản (Text processing - xử lý số, viết tắt, ký tự đặc biệt), Phân tích phiên âm (Grapheme-to-Phoneme dựa trên từ điển hoặc tập luật), và Mô hình hóa ngôn điệu (Prosody modeling - xác định trọng âm, cao độ, thời lượng ngữ âm).
    • Các phương pháp tổng hợp: Phương pháp formant (tham số), phương pháp ghép nối tín hiệu (ghép đơn vị Unit Selection, ghép âm kép Diphone, ghép nối theo miền chuyên biệt Domain-specific), phương pháp học sâu DNN, và phương pháp học sâu đầu cuối End-to-End (Seq2Seq, mô hình Tacotron gồm khối Encoder và Decoder).
  3. Khảo cứu các công trình liên quan:

    • Amazon Polly: Dịch vụ tổng hợp giọng nói nền tảng AWS (ra mắt 12/2016), hỗ trợ 29 ngôn ngữ, chuẩn đánh dấu SSML, giọng nói nơ-ron (NTTS), tính năng điều chỉnh tốc độ theo thời gian (time-driven prosody) và đồng bộ hóa luồng dữ liệu siêu dữ liệu.
    • Microsoft Azure Text to Speech: Nền tảng thuộc Azure Cognitive Services với giọng đọc nơ-ron dựng sẵn (Neural Voice) và giọng nơ-ron tùy chỉnh (Custom Neural Voice).
  4. Thư viện Web Speech API:

    • SpeechRecognition: Cung cấp giao diện nhận diện giọng nói qua microphone với các thuộc tính điều khiển như interimResults (trả về kết quả tạm thời), lang (thiết lập ngôn ngữ nhận dạng), continuous (chế độ nhận diện liên tục hay đơn lẻ) và các phương thức thực thi start(), stop(), abort().
    • SpeechSynthesis & SpeechSynthesisUtterance: Cung cấp khả năng chuyển đổi văn bản thành giọng nói trên trình duyệt với các thuộc tính speaking, lang, pitch (cao độ), rate (tốc độ đọc), text (nội dung văn bản), volume (âm lượng) cùng các phương thức speak(), pause(), cancel().

Phương pháp nghiên cứu và nguồn dữ liệu

  • Phương pháp thu thập và tổng hợp lý thuyết: Phân tích tài liệu kỹ thuật về các giải pháp STT, TTS, cấu trúc DOM ảo (Virtual DOM) và luồng dữ liệu một chiều (One-way binding) trong ReactJS, kiến trúc bất đồng bộ hướng sự kiện của NodeJS.
  • Phương pháp thiết kế và phát triển phần mềm: Áp dụng mô hình phát triển phần mềm Client-Server thông qua giao diện lập trình ứng dụng RESTful API. Quản lý trạng thái ứng dụng bằng Redux.
  • Nguồn dữ liệu: Cơ sở dữ liệu tài liệu văn bản, danh mục truyện đọc, danh mục bài hát và thông tin trạng thái người dùng được lưu trữ có cấu trúc trong hệ quản trị MongoDB.

Thiết kế và triển khai hệ thống

Kiến trúc công nghệ hệ thống

Hệ thống được tổ chức theo mô hình tách biệt giữa giao diện phía máy khách (Frontend) và xử lý máy chủ (Backend):

  • Frontend: Xây dựng bằng ReactJS kết hợp Redux để quản lý tập trung trạng thái giao diện và Web Speech API làm tầng giao tiếp xử lý âm thanh trực tiếp trên trình duyệt.
  • Backend: Xây dựng trên nền tảng NodeJS (sử dụng V8 engine), đảm nhận việc khởi tạo các API phục vụ truy xuất dữ liệu, định tuyến và đồng bộ hóa cơ sở dữ liệu.
  • Cơ sở dữ liệu: Hệ quản trị cơ sở dữ liệu phi quan hệ MongoDB, lưu trữ các thực thể thông tin người dùng, sách/truyện và bài hát.

Thiết kế các trường hợp sử dụng (Use Cases) chính

Hệ thống thiết kế các luồng xử lý tương tác qua giọng nói cụ thể:

Tên Use Case Tiền điều kiện Luồng sự kiện chính (Thành công) Xử lý ngoại lệ / Luồng thay thế
Tìm kiếm sách bằng giọng nói Thiết bị có micro hoạt động; hệ thống nhận diện đã kích hoạt. 1. Người dùng nói từ khóa tìm kiếm.
2. Hệ thống chuyển đổi giọng nói thành văn bản.
3. Truy vấn cơ sở dữ liệu MongoDB.
4. Điều hướng tới trang chi tiết sách.
Nếu không nhận diện được giọng nói hoặc không tìm thấy dữ liệu: phát thông báo bằng giọng nói "Không tìm thấy kết quả phù hợp" và yêu cầu thử lại.
Tìm kiếm bài hát bằng giọng nói Thiết bị có micro hoạt động; hệ thống nhận diện đã sẵn sàng. 1. Hệ thống phát âm thanh yêu cầu người dùng nói từ khóa.
2. Người dùng phát âm tên bài hát.
3. Hệ thống chuyển đổi và truy vấn dữ liệu.
4. Hiển thị danh sách bài hát phù hợp.
Nếu lỗi nhận diện hoặc không có bài hát: phát thông báo lỗi qua giọng nói và gợi ý người dùng nói lại.
Tăng giảm âm lượng bằng giọng nói Thiết bị hỗ trợ ghi âm; tính năng nhận lệnh đã kích hoạt. 1. Người dùng nói "Tăng âm lượng" hoặc "Giảm âm lượng".
2. Hệ thống chuyển đổi thành tín hiệu điều khiển âm thanh.
3. Thay đổi mức âm lượng và phản hồi giọng nói: "Âm lượng đã được tăng lên" hoặc "Âm lượng đã được giảm đi".
Nếu lệnh không hợp lệ hoặc micro lỗi: thông báo lệnh không đúng và yêu cầu phát âm lại.
Dừng hệ thống phản hồi bằng giọng nói Hệ thống đang phát âm thanh phản hồi hoặc đọc văn bản. 1. Người dùng nói khẩu lệnh "Dừng" hoặc bấm phím Enter.
2. Hệ thống ngắt tức thời hàng đợi phát âm (cancel()).
3. Thông báo bằng giọng nói xác nhận phản hồi đã được dừng.
Nếu không bắt được khẩu lệnh dừng: người dùng có thể dùng phím Enter vật lý hoặc thử lại lệnh giọng nói.
Trở về trang chủ bằng giọng nói Hệ thống đang hoạt động ở bất kỳ trang chức năng nào. 1. Người dùng phát âm lệnh "Trở về trang chủ".
2. Hệ thống nhận dạng và chuyển hướng URL về trang chủ.
3. Phát phản hồi xác nhận điều hướng thành công.
Nếu không nhận diện được khẩu lệnh: phát thông báo lỗi và giữ nguyên vị trí hiện tại.
Đọc sách bằng giọng nói Người dùng đang ở trang chi tiết sách; thiết bị có loa hoạt động. 1. Người dùng ra lệnh "Đọc chương [số chương]" (ví dụ: "Đọc chương 3").
2. Hệ thống xác nhận tên chương.
3. Chuyển đến nội dung chương tương ứng và kích hoạt bộ đọc SpeechSynthesis.
Nếu không nhận diện được số chương: yêu cầu người dùng lặp lại khẩu lệnh.

Thiết kế cơ sở dữ liệu và giao diện

  • Thiết kế dữ liệu: Xây dựng qua 3 cấp độ: Lược đồ dữ liệu mức quan niệm, Lược đồ dữ liệu mức logic và Lược đồ dữ liệu mức vật lý để quản lý các thực thể sách, chương sách, tác giả, bài hát và nhật ký nghe.
  • Thiết kế giao diện: Thiết kế các màn hình trực quan, độ tương phản phù hợp cho người khiếm thị gồm: Trang chủ, Trang chi tiết sách, Trang đọc sách (có tính năng highlight vị trí đọc tương ứng với âm thanh phát ra), Trang chi tiết bài hát và Trang phát nhạc trực tuyến.

Nội dung chính theo từng chương

Phần Mở đầu

Trình bày tính cấp thiết của việc hỗ trợ người khiếm thị tiếp cận công nghệ thông tin trong thời kỳ chuyển đổi số; xác định rõ mục tiêu, 4 nhiệm vụ nghiên cứu, phương pháp tiếp cận, đối tượng, phạm vi và kết quả dự kiến đạt được của đề tài.

Chương 1. Nhận dạng giọng nói (Speech To Text) và Tổng hợp tiếng nói từ văn bản (Text To Speech)

Chương này tập trung trình bày toàn diện cơ sở lý thuyết và công nghệ:

  • Phân tích lịch sử phát triển nhận dạng giọng nói từ những năm 1950 (nhận dạng chữ số đơn lẻ) đến các mô hình thống kê HMM (những năm 1980), mô hình lai HMM-DNN (những năm 2010) và các kiến trúc học sâu End-to-End hiện đại. Trình bày các thách thức đặc thù của tiếng Việt: ngữ pháp đa dạng, nhiều từ ghép và biến thể phát âm phức tạp theo vùng miền.
  • Trình bày chi tiết 7 bước trích rút đặc trưng âm học MFCC và cấu trúc 4 thành phần trong hệ thống STT.
  • Trình bày chi tiết 2 khối xử lý trong hệ thống TTS: khối NLP (chuẩn hóa văn bản, G2P, mô hình hóa ngôn điệu) và khối tổng hợp âm thanh (phương pháp formant, phương pháp ghép nối đơn vị/diphone/miền cụ thể, phương pháp nơ-ron học sâu DNN và mô hình Seq2Seq/Tacotron). Nêu các phương pháp đánh giá khách quan và chủ quan (điểm MOS).
  • Giới thiệu chi tiết thư viện Web Speech API (các interface SpeechRecognition, SpeechSynthesis, SpeechSynthesisUtterance), framework ReactJS (Virtual DOM, One-way binding), Redux và nền tảng NodeJS.
  • Khảo sát các dịch vụ thương mại tiêu biểu: Amazon Polly và Microsoft Azure Text to Speech.

Chương 2. Thiết kế phần mềm

Tập trung vào quy trình thiết kế kỹ thuật của hệ thống website:

  • Thiết kế chức năng: Xây dựng biểu đồ ca sử dụng và các biểu đồ hoạt động (Activity Diagrams) cho 8 chức năng cốt lõi: Tìm kiếm sách bằng giọng nói, Tìm kiếm bài hát bằng giọng nói, Tăng giảm âm lượng, Dừng hệ thống phản hồi, Trở về trang chủ, Đọc sách bằng giọng nói, Phát nhạc bằng giọng nói và Lưu vị trí người dùng đã nghe.
  • Thiết kế dữ liệu: Xây dựng đầy đủ lược đồ dữ liệu mức quan niệm, mức logic và mức vật lý lưu trữ trên MongoDB.
  • Thiết kế giao diện: Thiết kế cấu trúc các trang hiển thị (Trang chi tiết sách, Trang chi tiết nhạc, Trang phát nhạc, Trang đọc sách) tối ưu khả năng tương tác của người khiếm thị.

Chương 3. Thực nghiệm và đánh giá

Trình bày việc cài đặt mã nguồn thực tế (Front End và Back End) và tiến hành kiểm thử phần mềm:

  • Kiểm thử các ca sử dụng điều khiển bằng giọng nói trên môi trường trình duyệt.
  • Đánh giá khả năng xử lý lệnh âm thanh, tính ổn định khi nhận dạng các khẩu lệnh tiếng Việt, việc điều hướng trang và hiển thị highlight dòng văn bản theo giọng đọc thực tế.

Kết quả và đóng góp

Kết quả kỹ thuật đạt được

  1. Xây dựng hoàn chỉnh hệ thống website: Phát triển thành công ứng dụng web đọc sách và phát nhạc điều khiển bằng giọng nói, hoạt động ổn định trên nền tảng web.
  2. Triển khai thành công Web Speech API: Tích hợp đầy đủ cả hai chức năng SpeechRecognition (nhận dạng khẩu lệnh tiếng Việt) và SpeechSynthesis (phát âm nội dung sách, bài hát và thông báo trạng thái).
  3. Cài đặt đầy đủ các chức năng điều khiển: Người dùng có thể thực hiện tìm kiếm sách, tìm bài hát, chọn đọc theo chương cụ thể, tăng giảm âm lượng, dừng đọc và điều hướng về trang chủ hoàn toàn bằng khẩu lệnh thoại.
  4. Tích hợp tính năng hỗ trợ thị giác/thính giác: Xây dựng thành công tính năng highlight (làm nổi bật) vị trí từ/câu đang được hệ thống đọc trên giao diện, giúp người suy giảm thị lực dễ dàng theo dõi.

Đóng góp thực tiễn của đề tài

  • Cung cấp một giải pháp công nghệ miễn phí, thiết thực giúp người khiếm thị chủ động tiếp cận kho sách và tài liệu trực tuyến mà không cần phụ thuộc vào người hỗ trợ hoặc các thiết bị phần cứng đắt tiền.
  • Đóng góp một thiết kế hệ thống hoàn chỉnh kết hợp Web Speech API với kiến trúc ReactJS - NodeJS - MongoDB phục vụ nhóm người dùng yếu thế trong xã hội.

Hạn chế và hướng nghiên cứu tiếp

Hạn chế kỹ thuật được xác định

  1. Rào cản chính sách bảo mật trình duyệt: Các trình duyệt hiện đại (như Google Chrome, Mozilla Firefox, Microsoft Edge) áp dụng chính sách bảo mật nghiêm ngặt đối với việc tự động truy cập microphone và phát âm thanh. Do đó, hệ thống chưa thể tự động kích hoạt lắng nghe hoàn toàn mà vẫn cần tương tác ban đầu từ phía người dùng.
  2. Nhận dạng tiếng Việt vùng miền: Khả năng nhận diện của Web Speech API phụ thuộc vào dịch vụ nhận dạng mặc định của trình duyệt/hệ điều hành, đôi khi gặp sai số đối với các giọng nói địa phương hoặc trong môi trường có nhiều tạp âm.
  3. Phụ thuộc kết nối mạng: Quá trình nhận diện giọng nói và truy xuất dữ liệu yêu cầu thiết bị phải duy trì kết nối Internet liên tục.

Hướng phát triển

  • Nghiên cứu cơ chế tối ưu hóa tương tác để vượt qua các hạn chế bảo mật trình duyệt một cách an toàn và tiện lợi hơn cho người khiếm thị.
  • Tích hợp thêm các tính năng nâng cao đã định hướng trong phạm vi nghiên cứu nhưng chưa hoàn thiện triệt để như: tra từ điển bằng giọng nói, đánh dấu trang tự động (bookmark nâng cao) và ghi chú âm thanh trực tiếp trong lúc nghe sách.
  • Mở rộng kho ngữ liệu sách và cải thiện độ tự nhiên của giọng đọc tiếng Việt.

Giá trị tham khảo

Báo cáo khóa luận là tài liệu tham khảo hữu ích cho:

  • Sinh viên ngành Công nghệ Thông tin, Kỹ thuật Dữ liệu, Khoa học Máy tính: Tham khảo cấu trúc triển khai một ứng dụng web hoàn chỉnh tích hợp công nghệ xử lý tiếng nói (Speech AI).
  • Các nhà phát triển ứng dụng Web: Nắm bắt cách thức áp dụng thực tế của thư viện Web Speech API (gồm cả hai giao diện SpeechRecognition và SpeechSynthesis) kết hợp với hệ sinh thái ReactJS, Redux và NodeJS.
  • Những người nghiên cứu về khả năng tiếp cận công nghệ (Accessibility - a11y): Tham khảo các đặc tả ca sử dụng, biểu đồ hoạt động và phương pháp thiết kế luồng tương tác dành riêng cho người khiếm thị.

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

1. Hệ thống sử dụng công nghệ nào để nhận dạng giọng nói và chuyển đổi văn bản thành giọng nói trên nền tảng web?
Hệ thống sử dụng trực tiếp thư viện Web Speech API tiêu chuẩn của trình duyệt, bao gồm interface SpeechRecognition cho chức năng nhận dạng giọng nói (Speech to Text) và interface SpeechSynthesis (kết hợp đối tượng SpeechSynthesisUtterance) cho chức năng tổng hợp văn bản thành giọng nói (Text to Speech).

2. Quy trình trích xuất đặc trưng âm học MFCC được tác giả trình bày gồm những bước cụ thể nào?
Quy trình MFCC gồm 7 bước: (1) Tiền nhấn (Pre-emphasis) tăng năng lượng tần số cao; (2) Phân đoạn và áp cửa sổ (Frame blocking và Windowing); (3) Biến đổi Fourier nhanh (FFT); (4) Lọc qua dải lọc Mel (Mel Filter Bank); (5) Lấy logarit thập phân (Log); (6) Biến đổi Cosine rời rạc (DCT) tạo vectơ 13 chiều; và (7) Tính toán các đạo hàm bậc một, bậc hai để phản ánh sự thay đổi tín hiệu.

3. Khóa luận thiết lập những khẩu lệnh điều khiển bằng giọng nói cụ thể nào cho người dùng?
Hệ thống hỗ trợ các khẩu lệnh định sẵn gồm: tìm kiếm bằng cách phát âm từ khóa sách/bài hát; lệnh điều chỉnh âm lượng ("Tăng âm lượng", "Giảm âm lượng"); lệnh dừng phản hồi ("Dừng"); lệnh điều hướng ("Trở về trang chủ"); và lệnh chọn đọc chương sách ("Đọc chương [số chương]").

4. Vì sao nhận dạng giọng nói tiếng Việt lại phức tạp hơn so với tiếng Anh theo phân tích của tác giả?
Theo tác giả, tiếng Việt có 3 thách thức lớn đối với bài toán nhận dạng giọng nói: (1) Ngữ pháp đa dạng và phức tạp về quy tắc sắp xếp từ; (2) Bản chất ngôn ngữ sử dụng nhiều từ ghép để biểu đạt ngữ nghĩa; (3) Sự phong phú và biến đổi âm sắc rất lớn theo các vùng miền khác nhau.

5. Khó khăn kỹ thuật lớn nhất khi triển khai website điều khiển giọng nói hoàn toàn cho người khiếm thị là gì?
Khó khăn lớn nhất xuất phát từ chính sách bảo mật của các trình duyệt web hiện đại (Google Chrome, Firefox, Edge). Các trình duyệt áp dụng quy định bảo mật chặt chẽ, giới hạn quyền tự động truy cập microphone và tự động phát âm thanh nếu không có sự tương tác vật lý ban đầu từ người dùng.


Kết luận

Khóa luận tốt nghiệp của sinh viên Trần Minh Duy đã hoàn thành việc thiết kế và xây dựng website đọc sách, nghe nhạc điều khiển bằng giọng nói dành cho người khiếm thị dựa trên nền tảng Web Speech API, ReactJS, NodeJS và MongoDB. Đề tài đã hệ thống hóa chi tiết cơ sở lý thuyết về nhận dạng giọng nói (STT) và tổng hợp tiếng nói (TTS), đồng thời hiện thực hóa thành công các ca sử dụng điều khiển bằng khẩu lệnh tiếng Việt và hỗ trợ highlight nội dung đọc trực quan. Mặc dù còn chịu một số ràng buộc về chính sách bảo mật trình duyệt và sự phụ thuộc vào chất lượng nhận dạng giọng đọc vùng miền, hệ sinh thái phần mềm đã chứng minh tính khả thi và mang lại giá trị nhân văn sâu sắc trong việc nâng cao khả năng tiếp cận tri thức cho người khuyết tật thị giác.