• Thứ Sáu, 06/08/2004 04:50 (GMT+7)

    VNSPEECH, phần mềm giúp máy tính nói tiếng Việt

    Đánh giá

     
    VNSPEECH, phần mềm giúp máy tính nói tiếng việt

    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.

    Công nghệ chuyển văn bản thành tiếng nói

    Chuyển văn bản thành tiếng nói (Text To Speech - TTS) là thuật ngữ chỉ việc tự động đọc bằng tiếng nói tổng hợp các văn bản hay nội dung bất kỳ. TTS khác với PRP (Pre-Recorded Prompts), là hệ thống phát thông báo bằng tiếng nói với thông tin cần cung cấp theo một kịch bản dựng sẵn gồm các đoạn cố định và một số phần có thể thay đổi (như các thông báo ở nhà ga, bến xe hoặc báo giờ qua điện thoại).

    Quá trình chuyển từ văn bản thành tiếng nói gồm hai phần:

    a) Xử lý văn bản: chuẩn hóa văn bản, cách đọc các ký hiệu của ngôn ngữ, xác định các thông tin ngữ âm, ngữ điệu từ văn bản sau đó chuyển thành dạng biểu diễn thích hợp với bộ tổng hợp tiếng nói.

    b) Tổng hợp tiếng nói: là phần trực tiếp tạo ra tín hiệu tiếng nói, phần này sẽ sinh ra tín hiệu tiếng nói tương ứng với văn bản ở phần trước. Có nhiều phương pháp tạo tiếng nói tổng hợp nhưng hiện chỉ có hai phương pháp được sử dụng trong các hệ TTS: một là tổng hợp bằng cách ghép nối các đoạn ngắn của tiếng nói tự nhiên được ghi âm trước, sau đó phát lại; hai là tổng hợp bằng các luật dựa trên mô hình tạo tiếng nói con người và các quy tắc ngữ âm.

    Tổng hợp tiếng nói dựa trên ghép nối: Đơn giản và tự nhiên nhất là ghi âm chính tiếng nói con người và sau đó phát lại, kỹ thuật này có thể áp dụng với mọi âm thanh chứ không chỉ riêng tiếng nói! Vấn đề mấu chốt của phương pháp này là làm trơn chỗ ghép các đơn vị khi tổng hợp và thay đổi được các tham số đặc trưng để diễn tả ngữ điệu của câu. Do đó, chọn độ dài của đoạn tiếng nói tự nhiên làm đơn vị để lưu trữ là điều quan trọng. Các ngôn ngữ như tiếng Anh, Pháp, đơn vị thường được chọn là diphone (hai nửa của hai âm vị liền nhau), còn tiếng Việt, đoạn tiếng nói thường là phụ âm đầu, vần và có thể là cả âm tiết. Ưu điểm của phương pháp là ban đầu dễ triển khai, tiếng nói tạo ra chính là tiếng người (đương nhiên!), hạn chế của nó là dữ liệu lớn, thêm giọng nói là công việc tốn kém và các tham số đặc trưng  chỉ có thể điều khiển hạn chế, điều này dễ dẫn đến méo tiếng và sẽ rất không tự nhiên khi ghép thành đoạn dài ứng với cả câu.

    Tổng hợp tiếng nói bằng các luật: Tìm hiểu bản chất, các đặc trưng của tiếng nói, và quy luật để tạo tiếng nói con người là mục tiêu của ngành khoa học nghiên cứu xử lý tiếng nói từ rất lâu. Các nghiên cứu về xử lý tiếng nói đã chỉ ra rằng, về mặt tín hiệu, bộ máy phát âm của con người tương đương với một hệ thống gồm nguồn âm, các bộ lọc và sự tán xạ. Mô hình được áp dụng nhiều nhất là mô hình nguồn âm - bộ lọc (source-filter), phương pháp tổng hợp theo mô hình này được gọi là tổng hợp formant. Phương pháp tổng hợp formant có ưu điểm là kích thước toàn hệ thống rất nhỏ gọn vì không yêu cầu dữ liệu mà chỉ gồm các quy tắc, mọi tham số tiếng nói có thể điều khiển dễ dàng, không giới hạn, thuận tiện khi cần tạo thêm giọng mới, tuy nhiên, tiếng nói của nó tạo ra vẫn còn một chút kiểu "robot". Để tổng hợp được một ngôn ngữ, cần phải nghiên cứu để xác định các đặc trưng ngữ âm của hệ thống âm vị, và các quy tắc cấu âm của ngôn ngữ. Do vậy, không nhiều ngôn ngữ có thể tổng hợp được bằng phương pháp này, hệ Vnspeech được giới thiệu dưới đây là kết quả đầu tiên thực hiện thành công cho tiếng Việt.

    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 (xem sơ đồ).

    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ữ đ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.

    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 có thể tải xuống tại http://www.freewebs.com/vnspeech/download/all.zip. 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).

    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.

    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ể. Thư viện thử nghiệm chạy trên  Windows có thể tải xuống tại http://www.freewebs.com/vnspeech/download/VTTSLib.zip.

    Để 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 có thể tải xuống tại http://www.freewebs.com/vnspeech/download/.

    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

    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

    ...

    Các thông tin thêm, phần mềm và thư viện lập trình thử nghiệm giới thiệu trong bài này có thể xem tại địa chỉ http://www.freewebs.com/vnspeech.

    Lê Hồng Minh
    minhducle@hn.vnn.vn
    Phòng Công nghệ Phần mềm -
    Trung tâm Công nghệ Vi điện tử
    và Tin học, Viện Ứng dụng Công
    nghệ, Hà nội.

    ID: A0407_113
    Ý kiến của bạn? Ý kiến của bạn?
    Tin ngày :