4.6.1. Vnspeech
4.6.1.1. Giới thiệu
Vnspeech được thiết kế như một thư viện phần mềm, sẵn sàng cho các nhà phát triển tích hợp, đem lại khả năng nói tiếng Việt cho mọi chương trình ứng dụng. Vnspeech là một trong những thành quả thuộc dự án Hệ xử lý Ngôn ngữ tiếng Việt gồm hệ thống một loạt các engine, từ đầu vào nhận dạng chữ viết - tiếng nói, đến các xử lý như dịch tự động, phân tích - hiểu ngôn ngữ, kiểm tra chính tả - ngữ pháp, tìm kiếm theo nội dung, và cuối cùng đầu ra là tổng hợp tiếng nói. Trong kết quả nghiên cứu, triển khai thực hiện các nội dung trên, phòng Công nghệ Phần mềm, thuộc Trung tâm Công nghệ Vi điện tử và Tin học - Viện Ứng dụng Công nghệ, trước đây đã giới thiệu Hệ dịch Anh-Việt EVTRAN, và nay là VNSPEECH - Engine phần mềm thực hiện chuyển văn bản tiếng Việt thành tiếng nói. Vnspeech được thiết kế như một thư viện phần mềm, sẵn sàng cho các nhà phát triển tích hợp, đem lại khả năng nói tiếng Việt cho mọi chương trình ứng dụng.
4.6.1.2. Hệ TTS tiếng việt - VNSPEECH
Vnspeech là hệ TTS tiếng Việt dựa trên tiếng nói được tổng hợp bằng phương pháp tổng hợp formant, có nghĩa là tiếng nói của Vnspeech tạo ra không phải là tiếng nói tự nhiên được ghi từ trước sau đó phát lại, mà bằng phương pháp sinh ra tín hiệu tiếng nói trên cơ sở các thông số đặc trưng của ngữ âm và luật cấu âm của tiếng Việt (Hình 4.19).
* Sơđồ khối hệ Vnspeech
Vnspeech là phần mềm đầu tiên có thể tổng hợp được tiếng Việt bằng các luật từ các thành phần đặc trưng của ngữ âm tiếng Việt, tự động đọc không hạn chế văn bản tiếng Việt. Ngoài ra, Vnspeech còn là một công cụ mới để nghiên cứu ngữ âm tiếng Việt - Phân tích bằng Tổng hợp. Vnspeech thực hiện phân tích và chuẩn hóa văn bản tiếng Việt, đọc khá rõ tất cả các âm tiết tiếng Việt, thể hiện hợp lý ngữ
87
điệu khi đọc các loại câu khác nhau, có thể điều khiển không hạn chế tốc độ đọc, cao độ của giọng nói để thành các giọng nói khác nhau. Đặc biệt, kích thước toàn bộ của Vnspeech rất nhỏ, không cần file dữ liệu riêng, toàn bộ đều nằm trên file thực thi (chương trình minh hoạ chỉ 350KB), thuận tiện để tích hợp vào mọi loại ứng dụng trên các hệ điều hành, phần cứng khác nhau, hoặc các thiết bị có tài nguyên hạn chế (như thiết bị cầm tay, di động,...). Vnspeech xử lý văn bản tiếng Việt đầu vào thuộc bảng mã TCVN 5712 và Unicode dựng sẵn, tạo dãy tín hiệu tiếng nói đầu ra mã hóa theo chuẩn PCM (16 bit, mono, có thể thay đổi tần số lấy mẫu tùy ý), có thể ghi lên đĩa thành các file theo định dạng WAV hoặc phát trực tiếp ra loa.
Hình 4.19: Sơđồ khối hệ Vnspeech * Phần mềm minh họa
Phần mềm VTTSDemo.exe minh họa các tính năng của Vnspeech, chạy trên MS Windows. Phần mềm này cho phép khảo sát một số đặc tính như điều chỉnh tốc độ đọc, cao độ của giọng nói, cũng như một số khả năng xử lý văn bản tiếng Việt để tạo thành tiếng nói tương ứng. Cách sử dụng và ý nghĩa của một số điều khiển của phần mềm như sau:
- Nhập đoạn văn bản tiếng Việt vào ô soạn thảo (đánh máy hoặc dán từ Clipboard) theo mã TCVN3 (mọi phiên bản Windows) hoặc Unicode dựng sẵn (Windows XP, Server 2003).
88
- Chọn (bôi đen) một đoạn hoặc đặt con trỏ về đầu đoạn cần đọc.
- Nhấn nút Speak để đọc đoạn văn bản được chọn, nhấn nút Stop để dừng giữa chừng, nếu ô soạn thảo trống (rỗng) chương trình sẽ đọc bản thông báo thời gian hiện tại.
- Chương trình có thể đọc được các dãy số, ngày-tháng, viết tắt theo kiểu tiếng Việt. Có thể bổ sung cách đọc các từ lạ vào file abbrdic.txt (đặt cùng thư mục với file chương trình)
- Thay đổi giá trị Speed (tốc độ, tính bằng số âm tiết sẽ đọc trong 1 phút) để khảo sát sự điều khiển tốc độ đọc.
- Thay đổi giá trị Pitch (cao độ) để khảo sát sự điều khiển cao độ giọng nói.
Hình 4.20: Giao diện VnSpeech * Phát triển ứng dụng với thư viện lập trình
Toàn bộ thư viện lập trình chuyển văn bản thành tiếng nói cho tiếng Việt dựa trên tổng hợp formant - Vnspeech được đóng gói trong file vnspeech.dll (240KB). Để sử dụng, cần phải tích hợp nó cùng với ứng dụng theo quy cách ứng với từng ngôn ngữ lập trình cụ thể.
89
Để thử nghiệm, chỉ cần gọi duy nhất hàm VietTTS, hàm này sẽ chuyển đoạn văn bản mong muốn thành tín hiệu tiếng nói và tự động phát ra loa.
Mô tả: (theo cú pháp C/C++) int VietTTS(char*s)
- Đối số s (kiểu chuỗi ký tự): đoạn văn bản tiếng Việt.
- Giá trị trả về (số nguyên): thời gian (ms) để phát (play) hết đoạn tiếng nói đã tổng hợp.
Chú ý:
- Hàm VietTTS chỉ hiểu văn bản tiếng Việt theo bảng mã TCVN 5712 (font ABC) và các dấu ngắt, nghỉ. Do đó, cần phải xử lý văn bản để trở thành thuần Việt trước khi gọi hàm.
- Một đoạn văn bản dài nên chia thành nhiều đoạn (câu) để cung cấp cho hàm VietTTS.
- Hàm VietTTS được thực hiện trong một Thread riêng nên cần sử dụng Timer để đồng bộ khi cần đọc liên tục nhiều đoạn.
- Một số mã nguồn ví dụ về cách sử dụng thư viện vnspeech.dll với các môi trường lập trình như C++ Builder 6.0, Visual Basic 6.0, Delphi 7.0, Visual Foxpro 6.0.
* Hình thức cung cấp Vnspeech
Vnspeech được thiết kế thành một engine, có thể cung cấp ở các dạng: - Thư viện phần mềm lập trình dạng DLL, COM.
- Ứng dụng trên server
- Phần mềm ứng dụng độc lập
- Hợp tác phát triển các ứng dụng đặc thù - Đóng gói tương thích với SAPI
90
- Phát triển thành phần mềm nhúng (firmware) hay cứng hoá, tích hợp phần cứng theo yêu cầu (thiết bị tài nguyên hạn chế, máy chuyên dụng, đồ chơi, robot...)
* Khả năng ứng dụng của Vnspeech
Thư viện lập trình Vnspeech sẵn sàng để tích hợp vào lớp lớn các ứng dụng: - Hệ thống đáp ứng bằng tiếng nói
- Hệ thống giao tiếp người-máy bằng tiếng nói
- Thêm lựa chọn cung cấp thông báo bằng tiếng Việt cho các ứng dụng - Các ứng dụng hỗ trợ người tàn tật (khiếm thị)
- Các hệ thống telematics
- Các hệ thống thông điệp hợp nhất
- Các hệ thống khai thác thông tin qua điện thoại
- Các ứng dụng thông báo bằng tiếng nói với nội dung thay đổi như: các hệ thống xếp chỗ tự động trong các ngân hàng, phòng bán vé...
- Ứng dụng soát lỗi chính tả, đọc các thông tin trên màn hình giúp người dùng
- Các ứng dụng trong giáo dục
4.6.2. NHMTTS
Phiên bản mới nhất NHMTTS 4.0 cung cấp cho người dùng công cụ đọc văn bản (chuyển văn bản thành tiếng nói) đa ngôn ngữ và 2 giọng đọc nam/nữ tiếng Việt theo chuẩn SAPI5 với chất giọng khá tự nhiên. Đặc biệt phần mềm này còn cho phép khả năng đọc văn bản chứa đồng thời tiếng Việt và một ngôn ngữ khác bất kỳ (chẳng hạn: Việt-Anh, Việt-Hoa, … ). Ngoài ra phần mềm còn cho phép điều chỉnh tốc độ, tần số, cường độ của giọng đọc.
91
Hình 4.21 : Giao diện của NHMTTS
Với NHMTTS 4.0, người khiếm thị hoặc có thị lực kém có thể dễ dàng sử dụng kết hợp với các phần mềm hỗ trợ đọc màn hình như JAWS, NVDA để soạn thảo văn bản; duyệt web; đọc tin tức, sách truyện, văn thơ… NHMTTS cũng rất phù hợp cho người nước ngoài học tiếng Việt; thích hợp xây dựng các hệ thống tổng đài trả lời tự động…
Các tính năng:
- Tổng hợp tiếng nói tiếng Việt từ văn bản với các thông số ngữ điệu gồm: trường độ, cường độ và khoảng ngừng; được xác định bởi mô hình mạng nơ-ron.
- Hỗ trợ chuẩn giao tiếp SAPI5.
- Cho phép đọc văn bản chứa đồng thời tiếng Việt và một ngôn ngữ khác. Sử dụng mã Unicode.
- Cung cấp 2 giọng đọc nam và nữ: "NHMTTS Voice (Male)" và "NHMTTS Voice (Female)".
- Cho phép kết hợp tùy chọn một giọng đọc khác trong hệ thống kết hợp với một giọng NHMTTS để có thể đọc văn bản chứa đồng thời hai ngôn ngữ.
92
- Cho phép điều chỉnh mặc định tốc độ đọc, khoảng ngừng, âm lượng và tần số cho các giọng đọc NHMTTS.
- Cho phép điều chỉnh tốc độ đọc và âm lượng trong quá trình đọc. - Thông báo vị trí văn bản đang đọc và thông tin khẩu hình tương ứng. - Tự động phát hiện các từ sai vị trí dấu thanh.
- Kèm theo chương trình TTSApp minh họa các tính năng của bộ đọc.
Sau khi cài đặt ta sẽ thấy có 2 giọng đọc là NHMTTS voice (Female) và NHMTTS voice (Male). Văn bản tiếng Việt sẽ được đọc với NHMTTS voice, còn văn bản không phải tiếng Việt sẽ được đọc với 1 giọng đọc tiếng Anh do người dùng tự chọn. Chúng ta có thể cài thêm giọng đọc khác như:
+ Giọng nữ Mỹ Heather Female 22khz Voice
+ Giọng nam Tiếng Anh Ryan US English Male 22khz Voice:
Cài xong giọng thì vào START menu -> Programs -> NHMTTS SAPI5 Engine 4.0 -> chạy chương trình NHMTTS SAPI5 Engine 4.0 để cấu hình văn bản tiếng Việt sẽ được đọc với NHMTTS voice, còn văn bản không phải tiếng Việt sẽ được đọc với giọng đọc tiếng Anh.
4.6.3 DovisocoTextAloRec
DovisocoTextAloRec là một phần mềm "Text To Speech" phục vụ được công việc đọc các văn bản tiếng Việt có dấu. Đây là phần mềm được phát triển từ dovisocoTextAloud với độ tuỳ biến cao.
4.6.3.1 Đặc điểm của DovisocoTextAloRec
Phần mềm này tự động nhận diện mã tiếng Việt (Unicode, VNI, TCVN-3 ABC) để chọn giọng nói cho thích hợp. Chức năng này gần như chính xác hoàn toàn, bạn có thể tắt mở chức năng này bằng phím tắt: CTRL+SHIFT+F3.
Hỗ trợ từ điển riêng cho mỗi giọng đọc: ví dụ: Thanh Vi.txt là từ điển cho giọng đọc của Thanh Vi (mã VNI), Minh Du.txt là từ điển dùng cho giọng đọc của
93
Minh Du (mã Unicode),... nên chúng ta có thể tuỳ biến, chỉnh sửa giọng đọc tuỳ theo mục đích của riêng mình. Bạn có thể tham khảo các tập tin có đuôi .txt đi kèm để tham khảo về cách sử dụng.
- Khắc phục được lỗi ngắt dấu câu cho gói giọng nói Sao Mai
- Chức năng Text to mp3 cho phép chuyển sang định dạng mp3 với nhiều tuỳ chọn.
- Chức năng After reading cho phép tắt, ngủ máy tính sau khi đã đọc xong văn bản trong bộ nhớ.
- Tăng giảm tốc độ, âm lượng cho giọng đọc...
- Và rất nhiều chức năng khác... và sẽ còn được phát triển nữa dựa theo những gợi ý của chính người dùng.
DovisocoTextAloud (DTA) là phần mềm đọc văn bản tiếng Việt có chất lượng khá tốt so với những phần mềm khác. DTA có khả năng tự động nhận dạng mã tiếng Việt của văn bản (Unicode, VNI, TCVN3) để chọn giọng đọc thích hợp và đọc chính xác không bị lỗi. Ngoài ra, chương trình còn cho phép bạn chuyển văn bản tiếng Việt sang định dạng âm thanh MP3.
4.6.3.2 Cài đặt và sử dụng
Tải về xong, người sử dụng giải nén gói giọng nói Sao Mai, chạy file setup.exe để cài đặt vào máy. Kế đến, giải nén chương trình DTA vào một thư mục nào đó, chạy file dovisocoTextAloRec.exe là xong (không cần cài đặt).
Sau khi chạy, chương trình sẽ thu nhỏ thành một biểu tượng ở khay hệ thống, đồng thời xuất hiện một tooltip hiển thị phím tắt. Và chương trình đã sẵn sàng để bạn khai thác.
Để đọc một tài liệu tiếng Việt từ web hay từ file văn bản, người sử dụng có thể dùng chuột chọn đoạn văn cần đọc và nhấn Ctrl+C để copy vào clipboard. Ngay
94
lập tức, ta sẽ được nghe đọc bằng giọng tiếng Việt khá chuẩn. DTA giao tiếp với người dùng chủ yếu qua hệ thống phím tắt sau:
- Ctrl + Shift + PageDown: tạm ngưng đọc. - Ctrl + Shift + PageUp: đọc tiếp tục. - Ctrl + Shift + F12: ngừng đọc.
- Ctrl + Shift + F4: bật tắt chế độ theo dõi clipboard. - Ctrl + Shift + F10: thoát khỏi chương trình.
Nếu người sử dụng không vừa ý lắm về tốc độ đọc hay độ cao của giọng, ta có thể chỉnh lại bằng cách nhấn chuột phải vào biểu tượng chương trình ở khay hệ thống, chọn Settings.
Sau đó, ta chọn giọng đọc ở combobox Voice, điều chỉnh thanh trượt ở mục Speed (tốc độ đọc), Pitch (cao độ), Volume (âm lượng). Khi chỉnh thanh trượt, ta sẽ được nghe giọng đọc mẫu, bạn điều chỉnh cho đến khi vừa ý thì nhấn OK. Ngoài ra trong cửa sổ Settings ở trên, ta có thể xác lập chỉ sử dụng một giọng đọc duy nhất bằng cách đánh dấu chọn Fix this voice (khi đó chức năng tự nhận dạng bảng mã để chọn giọng đọc cho đúng sẽ được tắt đi).
Ta có thể cấu hình để sau khi chương trình đọc xong sẽ chuyển sang chế độ Standby hoặc tắt máy bằng cách: trong khi chương trình đang đọc, ta nhấn chuột phải vào biểu tượng của nó ở khay hệ thống, chọn After Reading > Standby (hoặc Shutdown).
Một tính năng khá hấp dẫn của DTA là tự động chuyển đổi văn bản tiếng Việt sang định dạng âm thanh MP3. Để thực hiện, người dùng copy nội dung văn bản cần chuyển sang MP3. Sau đó, ta nhấn chuột phải vào biểu tượng của DTA ở khay hệ thống, chọn Text to mp3. Trong cửa sổ xuất hiện, ta chọn những thông số cho file MP3 tạo thành như Rate, Bitrate, Mode, cuối cùng nhấn nút Save MP3 file và chọn nơi lưu file là xong.
95
96
CHƯƠNG V. ỨNG DỤNG TỔNG HỢP TIẾNG VIỆT
Tổng hợp tiếng nói có thể được ứng dụng trong lĩnh vực khác nhau. Các phương tiện trợ giúp cho giao tiếp đã được phát triển từ những máy nói chất lượng thấp đến các ứng dụng 3D hiện đại. Phương thức thực hiện phụ thuộc chủ yếu vào loại ứng dụng được sử dụng. Trong một số trường hợp, như các hệ thống cảnh báo hay thông báo, không nhất thiết phải cần đến bảng từ vựng quá lớn và chỉ nên sử dụng một số thông báo hệ thống đơn giản là luôn mang lại hiệu quả tốt nhất. Nếu phương án thực hiện phù hợp, ta có thể tiết kiệm được rất nhiều chi phí. Mặt khác, trong một số ứng dụng, chẳng hạn như máy đọc cho người mù hay máy đọc thư điện tử, lại cần vốn từ vựng không giới hạn và khi đó việc sử dụng các hệ thống tổng hợp tiếng nói là cần thiết.
Chất lượng của các bộ tổng hợp tiếng nói được nâng cao nhanh chóng làm cho các lĩnh vực ứng dụng kỹ thuật này ngày cảng được mở rộng. Giá cả các hệ thống tổng hợp tiếng nói cũng trở nên phải chăng hơn đối với những khách hàng phổ thông, điều đó khiến chúng phù hợp cho cả những ứng dụng thông thường trong sinh hoạt hàng ngày. Chẳng hạn, các hệ thống tổng hợp tiếng nói ngày càng có khả năng đóng góp nhiều hơn cho những người gặp khó khăn trong giao tiếp.
5.1. ỨNG DỤNG CHO NGƯỜI KHIẾM THỊ
Có lẽ lĩnh vực ứng dụng quan trọng nhất của tổng hợp tiếng nói là đóng vai trò làm phương tiện hỗ trợ việc đọc và giao tiếp cho người khiếm thị. Trước khi có tổng hợp tiếng nói, người ta phải tạo ra các sách âm thanh bằng cách thu âm giọng đọc từ nội dung những cuốn sách lên băng đĩa. Hiển nhiên, để hoàn thành công việc này cho một cuốn sách lớn sẽ cần nhiều tháng và rất tốn kém. Việc lấy thông tin từ máy tính thông qua tiếng nói cũng sẽ trở nên dễ dàng hơn thay vì phải sử dụng loại bàn phím đặc biệt, vốn là giao diện để đọc chữ Braille cho người khiếm thị.
Ứng dụng thương mại đầu tiên của tổng hợp tiếng nói có lẽ là máy đọc Kurzweil cho người khiếm thị được công bố bởi Raymond Kurzweil cuối những
97
năm 1970. Nó bao gồm một máy quét quang học và phần mềm nhận dạng chữ viết, có khả năng tạo ra tiếng nói tương đối dễ hiểu từ nhiều kiểu phông chữ viết (Klatt 1987). Những chiếc máy đọc đầu tiên đó quá đắt so với khả năng của người sử dụng bình dân, vì thế chúng xuất hiện chủ yếu trong thư viện hoặc những địa điểm tương