Vấn đề tách câu: Nhiều thuật toán của hệ thống Text-To-Speech làm việc với duy nhất một câu tại một thời điểm. Mỗi câu đều độc lập với nhau. Trong khi đó các đơn vị ngôn ngữ nhỏ hơn như “từ, âm tiết” lại bị ảnh hưởng bởi các “từ, âm tiết” phía trước hoặc sau nó trong văn bản. Dữ liệu đầu vào của hệ thống Text-To-Speech không nhất thiết là một câu. Trong nhiều trường hợp chúng ta nhận được một tài liệu có chứa rất nhiều câu. Do đó nhiệm vụ của tách câu là làm thế nào để tách một văn bản thô thành tập các câu.
Câu là một đơn vị ngôn ngữ gồm tập các ký tự được kết thúc bằng dấu “.”, “!”, “?”.
Thuật giải tách câu:
• Bước 0: Tạo danh sách rỗng để chứa tập câu. • Bước 1: Bắt đầu từ ký tự ở đầu câu .
Chương 3. Cơ sở lý thuyết
• Bước 2: Duyệt qua các ký tự kế tiếp trong văn bản để tìm các ký tự “.”, “?”, “!”.
• Bước 3: Xem các ký tự “.”, “?”, “!” vừa tìm được ở bước 2 có phải là các ký tự kết thúc câu đang xét hay không. Nếu có thì qua bước 4, ngược lại quay lại bước 2.
• Bước 4: Đưa câu tìm được vào danh sách đã tạo ở bước 0. Nếu hết văn bản thì kết thúc thuật giải, ngược lại quay lại bước 1.
Yếu tố chính của thuật giải là làm sao biết được các ký tự “.”, “?”, “!” có kết thúc câu hay không. Ví dụ, một dấu chấm câu có thể biểu diễn như là dấu phân cách ngày tháng, số thập phân.
Xét ví dụ: “Tính đến thời điểm hiện tại chỉ số VN-Index là 34.5 điểm.”
Vấn đề tách từ: Từ một văn bản ban đầu ta sẽ dựa vào các khoảng trắng trong văn bản để tách ra thành các chuỗi con nhỏ hơn. Tuy nhiên những chuỗi con này có thể là một từ cũng có thể là nhiều từ gộp lại. Chính vì vậy, sau khi tách văn bản theo khoảng trắng ta còn phải làm một bước nữa để xác định xem chuỗi có phải là một từ hay không. Trong trường hợp nhiều từ gộp lại thì ta phải tách nó ra.
Thuật toán tách từ:
• Bước 0: Tạo ra danh sách rỗng dùng để chứa các từ. • Bước 1: Bắt đầu ở ký tự đầu tiên.
• Bước 2: Duyệt qua các ký tự kế tiếp trong văn bản. Xem xét mỗi ký tự hiện tại và ký tự đằng sau nó để tìm các ký tự kết thúc từ. • Bước 3: Nếu đó là ký tự kết thúc từ thì qua bước 4 ngược lại
Chương 3. Cơ sở lý thuyết
• Bước 4: Thêm từ vừa tìm được vào danh sách đã tạo ở bước 0. Nếu hết câu thì kết thúc thuật giải, ngược lại quay lại bước 1.
Vấn đề về chữ số và ký hiệu: Trong văn bản đầu vào của một hệ thống TTS không phải lúc nào cũng được định dạng theo một tiêu chí nhất định nào đó. Đầu tiên là khó khăn trong việc xử lý các chữ số, chữ số được sử dụng rộng rãi với nhiều vai trò như số, ngày tháng, giá trị đo đạc, biểu thức toán học…Việc chuyển đổi có nhiều phức tạp do sự nhập nhằng giữa các trường hợp.
Ví dụ: 3-3 thì nó có thể là ngày 3 tháng 3 theo kiểu ngày tháng, còn nếu tỉ số trận đấu thì lại là ba ba.
Các ký tự, ký hiệu ‘$’,’%’,’&’,’-’,’+’… phải được chuyển thành dạng viết đầy đủ tương ứng.
Do đặc điểm của vấn đề nên không thể có một thuật toán tổng quát mà chúng ta phải sử dụng phương pháp thống kê.
Trước hết thống kê các dạng xuất hiện của số trong văn bản. Phương pháp thống kê:
• Tìm vị trí xuất hiện của các chuỗi số trong văn bản.
• Trích rút các thông tin trước và sau của chuỗi số tìm được. • Loại bỏ các trường hợp tương đương nhau để cuối cùng có thể
phân lớp các trường hợp xuất hiện của chuỗi số.
Sau đó xây dựng ánh xạ biến đổi chuỗi số sang dạng văn bản cho mỗi trường hợp.
Vấn đề từ viết tắt, từ nước ngoài và từ sai chính tả: Văn bản đầu vào có thể chứa tất cả các trường hợp: từ viết tắt, từ sai chính tả, từ nước ngoài; làm sao có thể phân biệt được chúng. Chỉ có một cách
Chương 3. Cơ sở lý thuyết
duy nhất là kiểm tra thủ công. Thống kê tất cả các chữ không nằm trong từ điển và dò thủ công để tiến hành phân loại chúng. Do số lượng từ như thế rất lớn nên công đoạn này rất tốn kém và tốn nhiều thời gian.