Cài đặt và thử nghiệm

Một phần của tài liệu Nghiên cứu một số phương pháp tổng hợp tiếng nói (Trang 68 - 75)

4.1.1. Cài đặt

- Chƣơng trình đƣợc cài đặt trên mội trƣờng Windows sử dụng ngôn ngữ lập trình, bộ công cụ lập trình và các thƣ viện sau:

o Ngôn ngữ lập trình Java

o Bộ công cụ lập trình Netbeans IDE

o Thƣ viện VietTalk: Sản phẩm TTS của Viện Công nghệ thông tin o Thƣ viện Jsoup: lấy nội dung text từ trang web bất kì.

Chƣơng trình sử dụng hệ thống TTS iSOLAR hoặc thƣ viện VietTalk để đọc nội dung của các trang báo điện tử.

- Sau đây là hình ảnh minh họa tất cả các package có trong chương trình:

Mô đun chƣơng trình

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Mô đun tokenization

Các pakage chính bao gồm classifier, detector, disambiguator, expander, spliter

đƣợc cài đặt và đóng gói riêng biệt và độc lập với nhau. Việc này tạo thuận lợi cho công tác cải tiến thuật toán, bảo trì code, khả năng mở rộng ứng dụng trong tƣơng lai.

mô đun classification, detector, spliter, disambiguation và expansion

Sau đây là hình ảnh giao diện ứng dụng khi hoạt động. Bên trái là 1 text area cho phép ta nhập văn bản đầu vào. Còn bên phải là kết quả thƣ đƣợc sau khi tiền xử lí. Hệ thống xử dụng thêm 2 màu xanh và đỏ để tô đậm kết quả:

o Màu đỏ: hệ thống không tự xử lí đƣợc

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Ứng dụng cho phép ngƣời dùng trực tiếp chỉnh sửa cách đọc của từng từ.

Hình 4-1 Giao diện hệ thống

Các phƣơng thức chính

 public String match (String input, int type) Phƣơng thức này kiểm tra xem chuỗi đầu vào input có thuộc kiểu type không. Nếu thuộc kiểu type sẽ trả về kiểu của chuỗi đầu vào

 public List expand (List tokens, String text, String type) Phƣơng thức này khai triển đầu vào text thành dạng đọc đƣợc theo kiểu type đã biết. Hàm này trả về các phần tử Element sẽ thay thế vào vị trí các thành phần Element trong danh sách tokens

 public void replaceTokens (Element old, Element new) Hàm thao tác với đối tƣợng Document. Hàm này thay thế 1 thành phần Element cũ old bằng một thành phần Element mới new

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Phƣơng thức Đầu vào Đầu ra Ý nghĩa

public void match (Element sayas, String type) Là NSWs và kiểu mà NSWs có thể nhận Nếu NSWs thuộc kiểu type thì trả về dạng đầy đủ. Nếu type không phải kiểu phù hợp thì trả về thông báo không tìm thấy kiểu tƣơng ứng

Lần lƣợt thử NSWs với các kiểu mà nó có thể nhận

public String match (String input, int type)

Khai triển chuỗi đầu vào input theo kiểu type cho trƣớc

Trả về dạng đọc đƣợc của chuỗi input

Khai triển NSWs theo kiểu đã biết public List expand

(List tokens, String text, String type)

Việc khai triển thực sự sẽ diễn ra ở hàm này Trả về danh sách bao gồm dạng đọc đƣợc của NSW Khai triển NSWs public List makeNewTokens (Document doc, String newText, Boolean createMtu, String origText,) Tạo ra một Tokens mới, Token mới này chính là dạng khai triển của NSWs. Trong đó origText là dạng ban đầu của NSWs và newText là dạng sau khi khai triển

Trả về danh sách tokens mới

Tạo ra 1 token mới

public void replaceTokens (Element old, Element new) Thay thể thành phần old bằng thành phần new Thay thể tokens cũ bằng tokens mới trong cấu trúc xml

Bảng 4-1 Các phƣơng thức chính trong chƣơng trình

* Các biểu thức chính quy

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Các mô đun biểu thức chính quy

DateEP

Chứa biểu thức chính quy đại diện cho tập hợp các chuỗi mô tả ngày tháng năm Biểu thức chính quy đƣợc sử dụng:

- Biểu thức biểu ngày: day = “(0)?[1-9]|[12][0-9]|3[01]”

- Biểu diễn tháng: month = “0?[1-9]|1[0-2]”

- Biểu diễn năm:

year = “[0-9][0-9] [0-9][0-9]”

- Biểu diễn giá trị phân giữa ngày với tháng, giữa tháng và năm: operator = “/|\\.”

- Biểu diễn tập các cấu trúc ngày-tháng-năm:

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

- Biểu diễn tập các cấu trúc ngày-tháng: DayMonth = day + operator + month

- Biểu diễn tập các cấu trúc tháng-năm: MonthYear = month + year

DurationEP

Các biêu thức chính quy đƣợc sử dụng: - Biểu diễn giờ:

hour = “0?[0-9]|1[0-9]|2[0-4]” - Biểu diễn phút và giây: minute = “[0-5][0-9]”

second = minute

- Biểu diễn toán tử xuất hiện trong cấu trúc giờ - phút –giây: operator = “\\:|\\.”

- Biểu diễn cấu trúc thời gian giờ phút giây:

HourMinuteSecond = hour + operator +minute + operator + second - Biểu diễn cấu trúc giờ phút

HourMinuter = hour + operator +minute

TelephoneEP

Biểu thức chính quy biểu diễn tập hợp các số điện thoại telephone = “[0+][0-9/\\-\\.]+”

NetEP

text = “[A-Za-z0-9\\!\\#\\$\\%\\&\\*\\+\\-\\/\\=\\?\\_\\{\\|\\}]” Biểu diễn tập các địa chỉ mail:

email = text + \\. + text + “\\@” +text+ \\. + text Biểu diễn tập các địa chỉ web:

uri = http|fpt:// + text + \\. +text + “com|edu|net|info|de|org” + “/” +text

AbbrevEP

Để nhận biết các từ thuộc nhóm từ viết tắt ta có thể dựa vào từ điển hoặc một số đặc điểm đơn giản ví dụ: Các chữ cái của từ đều đƣợc viết hoa, Từ có chữ cái viết hoa và chữ đó không phải là chữ cái đứng đầu,…

Vấn đề cần xử lí ở đây là đối với các chữ số La Mã sẽ thƣờng xuyên có sự nhầm lẫn chúng là các từ viết tắt, do bản chất các chữ số này là các chữ cái viết hoa (I, II, V, X,…). Các trƣờng hợp nhƣ vậy cần đƣợc phân loại lại trƣớc khi khai triển dựa vào tiền tố của chúng.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Hình 4-2: Từ điển viết tắt

Composite EP

Biểu thức chính quy đƣợc sử dụng ở đây là:

LettersDigitsAndHyphen = "([^-]*[A-Za-z0-9][^-]*)(-[^-]*[A-Za-z0-9][^-]*)+" Biểu thức trên đại diện cho nhóm các cấu trúc có chứa dấu “-”

Biểu thức sau đại diện cho cấu trúc gồm chữ và số trộn lẫn: "(?:(?:[A-Za-z]+[0-9]+)|(?:[0-9]+[A-Za-z]+))[A-Za-z0-9]*" Với cấu trúc trên từ và số đƣợc tách riêng ra.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

4. 1.2.Thử nghiệm chƣơng trình

Một phần của tài liệu Nghiên cứu một số phương pháp tổng hợp tiếng nói (Trang 68 - 75)

Tải bản đầy đủ (PDF)

(82 trang)