Warning: Illegal string offset 'file' in /home/hoangkym/domains/hoangkim.net.vn/public_html/cake/libs/debugger.php on line 622
Warning: Illegal string offset 'line' in /home/hoangkym/domains/hoangkim.net.vn/public_html/cake/libs/debugger.php on line 622
Warning (2): session_start() [function.session-start]: open(/home/hoangkym/tmp/sess_kcvls0aqsbp97bgf3biimhpvt2, O_RDWR) failed: No such file or directory (2) [CORE/cake/libs/cake_session.php, line 587]
session_start - [internal], line ??
CakeSession::__startSession() - CORE/cake/libs/cake_session.php, line 587
CakeSession::start() - CORE/cake/libs/cake_session.php, line 219
SessionComponent::__start() - CORE/cake/libs/controller/components/session.php, line 287
SessionComponent::read() - CORE/cake/libs/controller/components/session.php, line 137
AppController::beforeFilter() - APP/app_controller.php, line 25
Controller::startupProcess() - CORE/cake/libs/controller/controller.php, line 522
Dispatcher::_invoke() - CORE/cake/dispatcher.php, line 187
Dispatcher::dispatch() - CORE/cake/dispatcher.php, line 171
[main] - APP/webroot/index.php, line 86
Bài 11: Bộ đọc ngôn ngữ và script cho bộ đọc tiếng việt
Bài 11: Bộ đọc ngôn ngữ và script cho bộ đọc tiếng việt
Nội dung bài này gồm:
- giới thiệu về bộ đọc ngôn ngữ
- Giới thiệu về bộ đọc tiếng việt
- Cách viết script cho bộ đọc tiếng việt
1. Giới thiệu chung
Một phần mềm đọc màn hình như Jaws thường có 2 phần quan trọng:
phần đọc màn hình
phần xử lý text rồi nói (text to speech - tss) hay còn gọi là bộ tổng hợp tiếng nói (synthesizer)
Quan hệ giữa 2 phần này như sau: Phần 1 sẽ đọc các chữ trên màn hình nơi mà chúng ta đang thao tác bằng bàn phím hay chuột. Sau đó truyền các chữ đó xuống bộ tổng hợp tiếng nói để xử lý và phát ra âm thanh cho chúng ta nghe.
Với Jaws, phần 2 chính là bộ đọc Eloquence. Nhưng bộ đọc này không đọc được tiếng việt.
Jaws cũng cho phép ta có thể dùng các bộ đọc khác nhưng phải theo chuẩn của Windows (SAPI5).
Với bộ đọc tiếng việt hiện nay có một số bộ đọc sau:
- Bộ đọc Sao Mai của trung tâm Sao Mai trong thành phố Hồ Chí Minh. Phần lớn chúng ta đang dùng bộ đọc này.
- Bộ đọc VnVoice của viện CNTT ở hà Nội. Bộ đọc này chắc chỉ có chú Hoàng Mộc Kiên dùng được, và nó không miễn phí
- Bộ đọc của bạn Nguyễn Hữu Minh trong thành phố Hồ Chí Minh. Cái này chắc chưa có ai dùng với Jaws. Sắp tới mình sẽ dùng thử xem thế nào.
Vì bình thường sử dụng máy tính chúng ta phải dùng bộ đọc Eloquence để đọc tiếng anh, khi nào cần đọc tiếng việt ta chuyển sang bộ đọc tiếng việt Để thuận tiện, ta cần viết script thực hiện việc này và gán cho script 1 phím tắt nào đó. Trước đây trung tâm Sao Mai có viết script cho bộ đọc Sao Mai (jvietnamese) nhưng nó bị lỗi léo nhéo khi chuyển cửa sổ.
Trên Jaws 14 có thể khắc phục được lỗi này. Chúng ta cùng tìm hiểu cách viết script cho các bộ đọc tiếng việt và cách khắc phục lỗi léo nhéo đó.
2. Bộ đọc tiếng việt
Ta lấy cụ thể bộ đọc Sao Mai
Một bộ đọc có thể có 1 hoặc nhiều giọng, với bộ đọc Sao Mai có 4 giọng đọc: giọng Mai Dung và Minh Du để đọc tiếng việt unicode, giọng Thanh Vi cho tiếng việt VNI và giọng thu An cho tiếng việt ABC.
Mỗi giọng đọc có các thông số sau:
- Tấn số (rate hay speed): Là tốc độ đọc nhanh hay chậm của người đọc
- Âm lượng (volumn) là âm lượng to nhỏ của giọng đọc
- Pitch
- Punctuation
3. Cách tiếp cận viết script cho bộ đọc tiếng việt
Để viết script chuyển đổi giữa tiếng anh và tiếng việt trong Jaws ta có 2 cách tiếp cận sau:
- thứ nhất: Dùng trực tiếp các hàm chuyển đổi bộ đọc và các giọng đọc của Jaws. có 2 hàm quan trọng là:
SetSynth(): Hàm này cho phép bạn chọn một bộ đọc (bộ đọc Eloquence hay bộ đọc của Sao Mai - SAPI5)
SetVoiceParameters(): Hàm này cho phép chọn giọng đọc trong bộ đọc của bạn và chọn các thống số khác như tốc độ, âm lượng, vân vân.
Script của Sao Mai làm theo cách tiếp cận này nhưng có một hạn chế là các hàm trên chỉ có tác dụng tạm thời cho một cửa sổ chương trình thôi. Nếu ta thay đổi cửa sổ thì các thông số của giọng đọc ta đang dùng sẽ bị mất, đây chính là nguyên nhân gây ra vấn đề léo nhéo khi chuyển cửa sổ của script của trung tâm Sao Mai.
- thứ 2: Lưu các thông số của bộ đọc, giọng đọc như một profile rồi ghi xuống file voiceprofiles.ini của Jaws. Và khi muốn chuyển đổi giữa các bộ đọc hay các giọng đọc ta chỉ việc chuyển sang profile tương ứng mà ta muốn. Cách tiếp cận này sẽ khác phục được lỗi léo nhéo khi chuyển cửa sổ. Để tiện, ta tạo sẵn các profile cho các giọng đọc tiếng việt và tiếng anh , khi chuyển giữa chúng ta chỉ cần dùng hàm: SetActiveVoiceProfileByName
Chi tiết về cách viết script theo cách này sẽ giới thiệu cụ thể trong bài sau.
Warning: Illegal string offset 'file' in /home/hoangkym/domains/hoangkim.net.vn/public_html/cake/libs/debugger.php on line 622
Warning: Illegal string offset 'line' in /home/hoangkym/domains/hoangkim.net.vn/public_html/cake/libs/debugger.php on line 622
Warning: file_exists() [function.file-exists]: open_basedir restriction in effect. File([) is not within the allowed path(s): (/home/hoangkym/:/tmp/:/var/tmp/:/opt/alt/php74/usr/share/pear/:/dev/urandom:/usr/local/php56/lib/:/usr/local/php74/lib/:/usr/local/php80/lib/:/usr/local/php70/lib/:/usr/local/php56/lib/:/usr/local/lib/php/) in /home/hoangkym/domains/hoangkim.net.vn/public_html/cake/libs/debugger.php on line 452
Warning (2): Unknown: open(/home/hoangkym/tmp/sess_kcvls0aqsbp97bgf3biimhpvt2, O_RDWR) failed: No such file or directory (2) [Unknown, line ??]
Warning: Illegal string offset 'file' in /home/hoangkym/domains/hoangkim.net.vn/public_html/cake/libs/debugger.php on line 622
Warning: Illegal string offset 'line' in /home/hoangkym/domains/hoangkim.net.vn/public_html/cake/libs/debugger.php on line 622
Warning: file_exists() [function.file-exists]: open_basedir restriction in effect. File([) is not within the allowed path(s): (/home/hoangkym/:/tmp/:/var/tmp/:/opt/alt/php74/usr/share/pear/:/dev/urandom:/usr/local/php56/lib/:/usr/local/php74/lib/:/usr/local/php80/lib/:/usr/local/php70/lib/:/usr/local/php56/lib/:/usr/local/lib/php/) in /home/hoangkym/domains/hoangkim.net.vn/public_html/cake/libs/debugger.php on line 452
Warning (2): Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/home/hoangkym/tmp) [Unknown, line ??]
Bình luận