Qua những phân tích đặc trưng giữa tiếng Việt và tiếng Anh cho thấy khi phiên âm một từ vựng tiếng Anh bất kỳ thành chuỗi âm tiết tiếng Việt thực sự rất phức tạp và mơ hồ vì giữa 2 ngôn ngữ có nhiều điểm tương đồng nhưng bên cạnh đó lại có rất nhiều điểm rất khác biệt. Ngoài ra, việc phiên âm cũng bị ảnh hưởng của vùng miền, giọng địa phương và mang tính chất cá nhân. Vì vậy, một từ vựng tiếng Anh có thể được phát âm theo nhiều cách khác nhau nên trong chương này sẽ trình bày về các thuật toán nhằm giúp chúng ta Việt hóa cách phát âm một từ vựng tiếng Anh thống nhất [5].
3.2. THUẬT TOÁN TỔNG QUAN
Phương pháp phiên âm một từ vựng tiếng Anh bất kỳ thành chuỗi âm tiết tiếng Việt được thể hiện bằng thuật toán tổng quan qua sơ đồ như sau:
Hình 3.1: Thuật toán tổng quan Đầu vào:
Một từ vựng tiếng Anh.
Ví dụ: FACEBOOK Chuyển từ vựng tiếng Anh
thông qua công cụ t2p.
Ví dụ: F EY S B UH KD - Đánh dấu nguyên âm.Ví dụ: _EY__UH_
- Thêm phụ âm vào trước các nguyên âm (nếu có).
Ví dụ: 1FEY_1BUH_
- Thêm phụ âm vào cuối các nguyên âm (nếu có).
Ví dụ: 1FEY_1BUHKD1 - Bổ sung nguyên âm (nếu có).
Ví dụ: 1FEY1SAX1BUHKD1
Xử lý các ngoại lệ và ánh xạ sang chuỗi ký hiệu có thể phát
âm bằng tiếng Việt Ví dụ: 1foUsji1soU1bu1t1
Chuỗi âm tiết tiếng Việt Ví dụ: phây xơ bút
Các bước thực hiện của thuật toán:
Bước 1: Đầu vào là một từ vựng tiếng Anh, ví dụ nhập một từ vựng là “FACEBOOK”.
Bước 2: Sử dụng công cụ t2p chuyển một từ vựng tiếng Anh thành chuỗi âm vị, ví dụ chuyển từ vựng “FACEBOOK” thành chuỗi âm vị “F EY S B UH KD”.
Bước 3: Trên cơ sở lý thuyết đã phân tích, vị trí nguyên âm đóng vai trò chính trong một âm tiết nên cần xác định vị trí nguyên âm đầu tiên, tiếp theo thêm phụ âm đầu, cuối và bổ sung nguyên âm nếu cần để hoàn thiện các âm tiết tương đối hoàn chỉnh. Vì vậy, từ chuỗi âm vị như ví dụ trên sẽ cho kết quả là chuỗi âm vị
“1FEY1SAX1BUHKD1”.
Bước 4: Từ chuỗi âm vị tiếng Anh ban đầu sau khi đã qua các bước xử lý để được chuỗi âm vị mới có thể ánh xạ thành một chuỗi ký hiệu có thể phát âm tiếng Việt, cụ thể như ví dụ trên là chuỗi “1FEY1SAX1BUHKD1” khi ánh xạ chuỗi ký hiệu và xử lý các ngoại lệ để đạt kết quả là chuỗi “1foUsji1soU1bu1t1”.
Bước 5: Ánh xạ chuỗi ký hiệu có thể phát âm tiếng Việt thành chuỗi âm tiết tiếng Việt.
Ví dụ: “1foUsji1soU1bu1t1” “phây xơ bút”.
3.3. THUẬT TOÁN TÌM BIÊN ÂM TIẾT DỰA VÀO NGUYÊN ÂM
Hình 3.2: Tìm biên âm tiết Mảng a[n] gồm các chuỗi âm vị
dưới dạng Arpabet.
Ví dụ: a[n]={F, EY, S, B, UH, KD}
i=0;
i<n?
a[i] là nguyên âm
b[i]=a[i];
i=i+1;
Mảng b[n]
Ví dụ: b[n]={_, EY, _, _, UH, _}
S
S Đ
Đ
Trong âm tiết tiếng Việt thì thành phần chính không thể thiếu là nguyên âm nên nguyên âm được sử dụng làm điểm mốc cho việc xác định các âm tiết trong chuỗi âm vị tiếng Anh. Xét từ vựng “FACEBOOK” khi chuyển bằng công cụ t2p cho chuỗi âm vị dưới dạng ARPAbet được đưa vào mảng có dạng {F, EY, S, B, UH, KD}. Trong đó, chuỗi “EY”, “UH” được xác định là nguyên âm nên đưa vào mảng rỗng với vị trí giống mảng ban đầu, các vị trí còn lại thêm vào kí tự “_” ta được mảng mới {_EY__UH_}.
3.4. THUẬT TOÁN THÊM PHỤ ÂM VÀO ĐẦU ÂM TIẾT
Hình 3.3: Thêm phụ âm vào đầu âm tiết Mảng a[n], b[n]
Ví dụ: a[n]={F, EY, S, B, UH, KD}
b[n]={_, EY, _, _, UH, _}
i=1;
i<n?
a[i] là nguyên âm kiểm tra a[i-1]
có phải là phụ âm không?
b[i]=a[i-1]+a[i];
b[i-1]=1;
i=i+1;
Mảng b[n]
b[n]={1,F EY, _, 1,B UH, _}
S
S Đ
Đ
Trong âm tiết tiếng Việt đa phần bắt đầu bằng phụ âm nên khi so sánh, đối chiếu giữa 2 chuỗi thì có thể thêm hoặc không thêm phụ âm vào đầu âm tiết. Nếu thêm phụ âm thì chuỗi phụ âm được ghép vào đầu chuỗi nguyên âm và vị trí chuỗi phụ âm trong mảng được gán bằng “1”. Xét trường hợp thêm 2 chuỗi phụ âm “F”, “B” vào trước 2 chuỗi nguyên âm “EY”, “UH” chúng được ghép vào nguyên âm liền sau “FEY”,
“BUH” và vị trí “F”, “B” trong mảng được gán bằng “1”.
3.5. THUẬT TOÁN THÊM PHỤ ÂM VÀO CUỐI ÂM TIẾT
Hình 3.4: Thêm phụ âm vào cuối âm tiết b[i]= “_”?
Mảng a[n], b[n]
Ví dụ: a[n]={F, EY, S, B, UH, KD}
b[n]={1,F EY, _, 1,B UH, _}
i=1;
i<n?
Kiểm tra a[i-1] có phải là nguyên âm && a[i] là phụ âm cuối?
b[i]=b[i-1]+a[i];
b[i-1]=1;
i=i+1;
Mảng b[n]
b[n]={1,F EY, _, 1,B UH KD, 1}
S
S Đ
Đ
Để hoàn chỉnh một âm tiết tiếng Việt thì có thể thêm hoặc không thêm phụ âm vào cuối âm tiết. Trong so sánh, đối chiếu giữa 2 mảng chứa 2 chuỗi âm vị nếu thêm phụ âm vào cuối thì chuỗi phụ âm được ghép vào sau chuỗi nguyên âm và vị trí chuỗi phụ âm trong mảng được gán bằng “1”. Xét trường hợp thêm 2 chuỗi phụ âm “S”,
“KD” vào sau 2 chuỗi nguyên âm “EY”, “UH” chúng được ghép vào nguyên âm liền sau “EYS”, “UHKD” và vị trí “S”, “KD” trong mảng được gán bằng “1”. Tuy nhiên, chuỗi “S” không thể ghép thành phụ âm cuối trong chuỗi âm vị nên chỉ ghép được chuỗi “UHKD”.
3.6. THUẬT TOÁN BỔ SUNG NGUYÊN ÂM ĐỂ TẠO ÂM TIẾT MỚI
Hình 3.5: Bổ sung nguyên âm vào âm tiết b[i]== “_”?
Mảng a[n], b[n]
Ví dụ: a[n]={F, EY, S, B, UH, K}
b[n]={1, F EY, _, 1, B UH K, 1}
i=0;
i<n?
b[i]=a[i] + “AX”;
i=i+1;
Mảng b[n]
b[n]={1, F EY, S AX, 1, B UH K, 1}
S
S Đ
Đ
Sau khi cắt chuỗi âm vị thành những tổ hợp âm vị phụ âm đầu + nguyên âm + phụ âm cuối, mảng âm vị ban đầu chỉ còn lại những phụ âm rời rạc. Trong tiếng Việt nếu thiếu nguyên âm thì không thể phát âm nên các phụ âm này sẽ được bổ sung nguyên âm “AX”. Ở đây phụ âm rời rạc là “S”.
3.7. XỬ LÝ CÁC TRƯỜNG HỢP NGOẠI LỆ VÀ ÁNH XẠ
Sau khi đã triển khai tách các âm tiết trong chuỗi âm vị, chuỗi âm tiết được xử lý tuân thủ quy tắc ghép vần của tiếng Việt, sau đó ánh xạ sang chuỗi âm tiết có thể phát âm trong tiếng Việt.
3.7.1. Tiền xử lý ngoại lệ
Chuỗi âm tiết thu được vẫn còn ngoại lệ cần được xử lý trước khi ánh xạ đó là trường hợp các cặp nguyên âm và phụ âm cuối không đi liền được với nhau. Vì số lượng các nguyên âm và phụ âm cuối trong tiếng Việt là hữu hạn nên cần thống kê tất cả các nguyên âm và phụ âm trong cột Arpabet, sau đó tổ hợp tất cả các trường hợp có thể xảy ra để đưa ra kết luận và hướng giải quyết.
Bảng 3.1: Tổ hợp các nguyên âm và phụ âm cuối Phụ âm
cuối
Nguyên âm
m n ng P t k No
coda*
a 1 1 1 T T T 1
â 1 1 1 T T T 0
e 1 1 1 T T T 1
i 1 1 0 T T T 1
o 1 1 1 T T T 1
ơ 1 1 0 T T 0 1
u 1 1 1 T T T 1
Chú thích: 1: Cặp âm vị này có thể đi đôi với nhau.
T: Cặp âm vị này cần được bổ sung thanh điệu (sắc hóa).
0: Cặp âm vị này không thể đi đôi với nhau.
*No coda tức là nguyên âm đứng một mình, không đi kèm phụ âm.
* Sắc hóa
Trong tiếng Việt, một âm tiết kết thúc bằng các âm bật hơi (k, p, t) thì luôn được thêm dấu sắc hoặc dấu nặng trong đó từ thêm dấu sắc chiếm đa số. Chính vì vậy, trong trường hợp xuất hiện âm bật hơi ở cuối âm tiết, việc bổ sung thanh điệu (sắc hóa) sẽ đưa âm tiết về đúng quy tắc tiếng VIệt và có thể phát âm được.
* Xử lý các cặp nguyên âm và phụ âm cuối không thể đi đôi với nhau
Trên cơ sở những đặc điểm tương đồng một cách tương đối về phát âm giữa các âm vị trong tiếng Việt, vấn đề này được xử lý bằng cách thay thế một trong hai âm vị bằng mọt âm vị có cách phát âm tương đồng. Quy tắc như sau: AHAX (âơ); NG, ENGEN (ngn); AX, IX, ER, AXR, UH R AH (ơâ).
3.7.2. Ánh xạ
Sau bước tiền xử lý ta thu được chuỗi âm tiết hoàn chỉnh, tuân thủ quy tắc ghép âm vần trong tiếng Việt. Bước cuối cùng là ánh xạ từ chuỗi âm tiếng Anh thành chuỗi âm tiết có thể phát âm trong tiếng Việt dựa trên Bảng 2.8 và 2.9 về âm vị tiếng Anh, tiếng Việt.
3.8. KẾT CHƯƠNG
Khi bắt đầu nghiên cứu để tìm ra thuật toán tổng quát giải quyết bài toán phiên âm từ vựng tiếng Anh thành một từ tiếng Việt đã cho thấy có nhiều vấn đề vô cùng khó khăn vì giữa chúng tuy có tương đồng về ngữ âm nhưng bên cạnh đó có không ít sự khác biệt. Vì vậy kết quả từ các thuật toán tìm được cũng mang tính tương đối nhằm góp chút ít công sức cho lĩnh vực nghiên cứu về ngôn ngữ tự nhiên nói chung và chuẩn hóa văn bản nói riêng. Kết quả của quá trình nghiên cứu sẽ được trình bày cụ thể trong chương sau.