9
HỘI THẢO NGHIÊN CỨU KHOA HỌC “CNTT VÀ ỨNG DỤNG CNTT TRONG CÁC LĨNH VỰC” – 2012 11 CHƯƠNG TRÌNH TÍCH HỢP PHIÊN ÂM CÁC DÃY SThS. Trương Thiên Ân 1 , TS. Huỳnh Công Pháp 2 1 Công ty Enclave, Đà Nẵng, Việt Nam 2 Trường Cao đẳng Công nghệ Thông tin, Đại học Đà Nẵng TÓM TẮT Trong bài báo này, chúng tôi trình bày việc nghiên cứu xây dựng một chương trình tích hợp phiên âm và phát âm các dãy số. Tính nỗi trội của chương trình này là nó c ó thể được tích hợp như một module vào các phần mềm khác và cho phép các phần mềm chia sẽ, sử dụng tính năng phiên âm và phát âm các dãy số. Để xây dựng một chương trình như vậy, yêu cầu phải nghiên cứu các quy tắc đọc số và cách phiên âm số thường gặp trong tự nhiên và trong các tài liệu. T ừ đó đề xuất các thuật toán cũng như phương pháp tách bóc, nhận dạng, phiên âm và phát âm tất cả các định dạng số. Bài báo cũng trình bày việc áp dụng kỹ thuật cho phép xây dựng và tích hợp chương trình như một module vào các môi trường khác để sử dụng, hỗ trợ phiên âm số và giảm thiểu thời gian soạn thảo của người sử dụng . 1. Đặt vấn đề Việc xử lý các dãy số hàng trăm tỷ, hàng tỷ tỷ trong các phần mềm kế toán, các chương trình soạn thảo văn bản và các ứng dụng văn phòng còn nhiều bất cập, nhiều hạn chế trong quá trình gõ và phiên âm các dãy số. Nhu cầu tích hợp chức năng phiên âm vào các ứng dụng là rất cần thiết, nhằm tăng độ chính xác, tăng tốc soạn thảo của người sử dụng. Hiện nay các phần mềm kế toán, các chương trình Excel, ... chưa có module phiên âm tự động các dãy số; nếu có thì cũng còn ở một giới hạn nào đó hoặc thiếu chính xác trong phiên âm. Do vậy, xây dựng chương trình phiên âm tự động các dãy số và tích hợp vào bất kỳ các ứng dụng có nhu cầu phiên âm là cần thiếtq. Ngoài những tiện ích trong công việc, giảm thiểu thời gian, tránh thiếu xót nhằm lẫn khi phiên âm thì chương trình còn phiên âm và phát âm các dãy số dài lên đến hàng tỷ tỷ mà con người và các ứng dụng khác khó có thể làm được. Hình thức phiên âm thì rất nhiều, rất đa dạng về kiểu phiên âm mà chúng ta thường gặp trong cuộc sống như: phiên âm số đếm, phiên âm số tiền, phiên âm số điện thoại, phiên âm điểm, ... Vấn đề đặt ra là làm thế nào để xây dựng một chương trình phù hợp, đáp ứng phiên âm tự động cho tất cả các kiểu định dạng số, khả chuyển trong từng ngữ cảnh, mềm dẻo trong kỹ thuật để tích hợp vào trong các ứng dụng hiện nay? Chương trình có khả năng phiên âm tự động các dãy số sang chữ hoặc âm thanh với một dãy số nhiều ký tự có thể lên đến hàng tỷ tỷ tỷ (không giới hạn độ dài và kích thước của dãy), hỗ trợ phiên âm và phát âm nhiều ngôn ngữ và nhiều thứ tiếng. Ngoài ra còn trợ giúp xử lý các bảng mã Unicode, VNI, TCVN3, ... trong quá trình sử dụng hoặc soạn thảo. Trong bài báo này chúng tôi giới thiệu một chương trình cho phép phiên âm tự

CHƯƠNG TRÌNH TÍCH HỢP PHIÊN ÂM CÁC DÃY SỐ

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: CHƯƠNG TRÌNH TÍCH HỢP PHIÊN ÂM CÁC DÃY SỐ

HỘI THẢO NGHIÊN CỨU KHOA HỌC “CNTT VÀ ỨNG DỤNG CNTT TRONG CÁC LĨNH VỰC” – 2012

11

CHƯƠNG TRÌNH TÍCH HỢP PHIÊN ÂM CÁC DÃY SỐ

ThS. Trương Thiên Ân1, TS. Huỳnh Công Pháp2 1Công ty Enclave, Đà Nẵng, Việt Nam

2Trường Cao đẳng Công nghệ Thông tin, Đại học Đà Nẵng

TÓM TẮT

Trong bài báo này, chúng tôi trình bày việc nghiên cứu xây dựng một chương trình tích

hợp phiên âm và phát âm các dãy số. Tính nỗi trội của chương trình này là nó có thể được tích

hợp như một module vào các phần mềm khác và cho phép các phần mềm chia sẽ, sử dụng

tính năng phiên âm và phát âm các dãy số. Để xây dựng một chương trình như vậy, yêu cầu

phải nghiên cứu các quy tắc đọc số và cách phiên âm số thường gặp trong tự nhiên và trong

các tài liệu. Từ đó đề xuất các thuật toán cũng như phương pháp tách bóc, nhận dạng, phiên

âm và phát âm tất cả các định dạng số. Bài báo cũng trình bày việc áp dụng kỹ thuật cho phép

xây dựng và tích hợp chương trình như một module vào các môi trường khác để sử dụng, hỗ

trợ phiên âm số và giảm thiểu thời gian soạn thảo của người sử dụng.

1. Đặt vấn đề

Việc xử lý các dãy số hàng trăm tỷ, hàng tỷ tỷ trong các phần mềm kế toán, các

chương trình soạn thảo văn bản và các ứng dụng văn phòng còn nhiều bất cập, nhiều

hạn chế trong quá trình gõ và phiên âm các dãy số. Nhu cầu tích hợp chức năng phiên

âm vào các ứng dụng là rất cần thiết, nhằm tăng độ chính xác, tăng tốc soạn thảo của

người sử dụng.

Hiện nay các phần mềm kế toán, các chương trình Excel, ... chưa có module

phiên âm tự động các dãy số; nếu có thì cũng còn ở một giới hạn nào đó hoặc thiếu

chính xác trong phiên âm. Do vậy, xây dựng chương trình phiên âm tự động các dãy số

và tích hợp vào bất kỳ các ứng dụng có nhu cầu phiên âm là cần thiếtq. Ngoài những

tiện ích trong công việc, giảm thiểu thời gian, tránh thiếu xót nhằm lẫn khi phiên âm thì

chương trình còn phiên âm và phát âm các dãy số dài lên đến hàng tỷ tỷ mà con người

và các ứng dụng khác khó có thể làm được.

Hình thức phiên âm thì rất nhiều, rất đa dạng về kiểu phiên âm mà chúng ta thường gặp

trong cuộc sống như: phiên âm số đếm, phiên âm số tiền, phiên âm số điện thoại, phiên

âm điểm, ...

Vấn đề đặt ra là làm thế nào để xây dựng một chương trình phù hợp, đáp ứng

phiên âm tự động cho tất cả các kiểu định dạng số, khả chuyển trong từng ngữ cảnh,

mềm dẻo trong kỹ thuật để tích hợp vào trong các ứng dụng hiện nay? Chương trình có

khả năng phiên âm tự động các dãy số sang chữ hoặc âm thanh với một dãy số nhiều ký

tự có thể lên đến hàng tỷ tỷ tỷ (không giới hạn độ dài và kích thước của dãy), hỗ trợ

phiên âm và phát âm nhiều ngôn ngữ và nhiều thứ tiếng. Ngoài ra còn trợ giúp xử lý các

bảng mã Unicode, VNI, TCVN3, ... trong quá trình sử dụng hoặc soạn thảo.

Trong bài báo này chúng tôi giới thiệu một chương trình cho phép phiên âm tự

Page 2: CHƯƠNG TRÌNH TÍCH HỢP PHIÊN ÂM CÁC DÃY SỐ

HỘI THẢO NGHIÊN CỨU KHOA HỌC “CNTT VÀ ỨNG DỤNG CNTT TRONG CÁC LĨNH VỰC” – 2012

12

động các dãy số hỗ trợ trong hai ngôn ngữ: tiếng Việt và tiếng Anh. Chương trình này

có thể được tích hợp như một module vào bất cứ môi phần mềm khác trên Windows.

Cấu trúc của bài báo được tổ chức như sau: Trước tiên, nghiên cứu về nguyên

tắc phiên âm số và chữ. Tiếp đến, nghiên cứu về kỹ thuật nhận dạng, kỹ thuật phiên âm

các dãy số. Cuối cùng, trình bày xây dựng và kết quả của chương trình xử lý phiên âm.

2. Kết quả nghiên cứu và khảo sát

2.1. Nguyên tắc phiên âm số và chữ:

Việc phiên âm một dãy số phải có luật, có tính ràng buộc, có quy tắc chung và

cũng dựa trên nền tản của vấn đề xử lý ngôn ngữ có dạng G = (N, ∑, P, S), ký hiệu là

L(G), với: L(G) = {w | w ∑* và S * w}. [2]

Trong đó:

G: là văn phạm của tiếng Việt và tiếng Anh.

N: tập hệ thập phân {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, các từ vựng phụ trợ, như các phạm trù ngữ pháp.

∑: tập chữ cái La mã, các từ của ngôn ngữ.

P: tập các luật văn phạm, gọi là luật sinh sản (Production), mỗi luật P là một

tập các cặp (α, β) có dạng: α → β với: α, β N ∑.

S: là yếu tố nguyên thủy của ngữ pháp, S N, nó được dùng làm điểm xuất

phát cho các sản sinh trong P, nói cách khác, S là yếu tố đứng ở vế trái của qui tắc đầu tiên của hệ sản sinh P.

L: là tập ngôn ngữ của tiếng Việt và tiếng Anh.

w: là tập câu dẫn xuất.

∑* : là tập các phiên âm, tập chứa tất cả các chuỗi trên ∑.

2.1.1. Các số từ 0 đến 9:

0 1 2 3 4 5 6 7 8 9

Việt Không Một Hai Ba Bốn Năm Sáu Bảy Tám Chín

Anh Zero/Oh One Two Three Four Five Six Seven Eight Nine

2.1.2. Các số từ 11 đến 19:

11 12 13 14 15 16 17 18 19

Việt Mười

Một

Mười

Hai

Mười

Ba

Mười

Bốn

Mười

Lăm

Mười

Sáu Mười Bảy

Mười

Tám

Mười

Chín

Anh Eleven Twelve Thirteen Fourteen Fifteen Sixteen Seventeen Eighteen Nineteen

2.1.3. Các số từ 0 đến 9:

10 20 30 40 50 60 70 80 90

Việt Mười Hai

Mươi

Ba

Mươi

Bốn

Mươi

Năm

Mươi

Sáu

Mươi

Bảy

Mươi

Tám

Mươi

Chín

Mươi

Anh Ten Twenty Thirty Fourty Fifty Sixty Seventy Eighty Ninety

Page 3: CHƯƠNG TRÌNH TÍCH HỢP PHIÊN ÂM CÁC DÃY SỐ

HỘI THẢO NGHIÊN CỨU KHOA HỌC “CNTT VÀ ỨNG DỤNG CNTT TRONG CÁC LĨNH VỰC” – 2012

13

2.1.4. Các số đặc biệt:

x0x (1) x5 (2) y1 (3) x1z (4)

Việt Lẻ / Linh Lăm Mốt Mười

Anh And Five One -

Với: x {1, 2, 3, 4, 5, 6, 7, 8, 9}; y {2, 3, 4, 5, 6, 7, 8, 9}; z {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

2.1.5. Các đơn vị đếm:

Việt Đơn vị Chục Trăm Nghìn Triệu Tỷ Nghìn tỷ

Anh Digit Dozen Hundred Thousand Million Billion Trillion

2.1.6. Ký hiệu:

Ký Hiệu + - . , / % X0

Việt Dương Âm Chấm Phẩy Phần Phần trăm Độ

Anh Positive Minus hoặc Nagative Point Comma - Percent Degrees

2.2. Kỹ thuật nhận dạng các dãy số:

Dựa vào thực tế thì kỹ thuật nhận dạng các loại số lệ thuộc vào từng loại ngôn

ngữ, mỗi loại ngôn ngữ những ký hiệu và sự quy ước khác nhau. Nhưng xét cho cùng

thì dù ngôn ngữ tiếng Việt hay ngôn ngữ tiếng Anh hay ngôn ngữ nào khác thì chỉ có số

loại số cơ bản như: số đếm, số tiền, số điện thoại, số thứ tự, số thập phân, số phần trăm,

ngày tháng năm, nhiệt độ. Kỹ thuật nhận dạng các loại số được quy ước và nhận dạng

trong tiếng Việt và tiếng Anh (Mỹ) biểu diễn như sau:

Số đếm: dãy số thông thường, ví dụ: 67234267598

Số tiền: Ở cuối dãy số có một khoảng trống và ký hiệu đơn vị tiền, ví dụ: 196 VND Số điện thoại: Là một dãy số khoảng từ 9 đến 12 số, thường bắt đầu bởi số 0 hoặc

dấu +, và số liền kề sau nó phải khác 0. Ví dụ: 0905 123 456, +84 0511 365 7089

Số thứ tự: Tiếng Việt: giống như số đếm. Tiếng Anh: ở cuối dãy số có ký hiệu st hoặc nd hoặc rd hoặc th, ví dụ: 1st, 22nd, 43rd, 54th

Số thập phân: Ở giữa dãy số có ký hiệu ‘/’, ví dụ: 1/2, 3/4 Số phần trăm: Ở cuối dãy số được kết thúc bởi ký hiệu ‘%’, ví dụ: 65.89% Ngày tháng năm: Tiếng Việt: được quy ước d/m/y (d: ngày, m: tháng, y: năm – với:

1 ≤ d ≤ 31, 1 ≤ m ≤ 12, y ≥ 1) ví dụ: 19/08/1945. Tiếng Anh: được quy ước m/d/y (d: ngày, m: tháng, y: năm – với: 1 ≤ d ≤ 31, 1 ≤ m ≤ 12, y ≥ 1) ví dụ: 08/19/1945

Nhiệt độ: cuối dãy số được kết thúc bởi ký hiệu o, ví dụ: 27o

2.3. Kỹ thuật phiên âm các dãy số

2.3.1. Kỹ thuật phiên âm trong tiếng Việt:

Số đếm:

Kỹ thuật đọc số đếm được thực hiện bằng cách phân chia thành nhiều bộ ba (đơn

vị, chục, trăm) và đọc theo từng bộ ba. Sau đó, ta đọc tương ứng với số hàng (trăm,

nghìn, triệu, tỷ) nối tiếp từ phải qua trái tăng dần theo thứ tự. Nếu số vượt quá hàng tỷ,

Page 4: CHƯƠNG TRÌNH TÍCH HỢP PHIÊN ÂM CÁC DÃY SỐ

HỘI THẢO NGHIÊN CỨU KHOA HỌC “CNTT VÀ ỨNG DỤNG CNTT TRONG CÁC LĨNH VỰC” – 2012

14

lúc này sẽ sản sinh chu trình đọc với T (nghìn, triệu, tỷ). Kỹ thuật đọc như sau:

o Nếu số có ba chữ số (pd) tức là ở hàng trăm, ta sẽ đọc số đó dựa trên nguyên tắc phiên âm ở phần 2.1

o Nếu số đó có 2 bộ ba (ở hàng nghìn), đánh thứ tự tăng dần từ phải qua trái, ta

phiên âm hai bộ ba như số có ba chữ số (pd, pn0).

Cách đọc là: pn0 nghìn pd

o Nếu số có 3 bộ ba (ở hàng triệu: pd, pn0, pr0)

Cách đọc là: pr0 triệu pn0 nghìn pd

o Nếu số có 4 bộ ba (ở hàng tỷ: pd, pn0, pr0, pt0)

Cách đọc là: pt0 tỷ pr0 triệu pn0 nghìn pd

o Nếu số có 5 bộ trở lên ta sẽ ghép tương ứng tăng dần các bộ từ hàng nghìn đến

hàng tỷ theo chu trình

Cách đọc là: (pti tỷ pri triệu pni nghìn)i pt0 tỷ pr0 triệu pn0 nghìn pd

o Nếu số đó là số nguyên thì ta tách số đó ra thành 2 số mới và đọc 2 số riêng biệt.

Sau đó, ta ghép lại 2 số đó lại với nhau và ngăn cách bởi từ “phẩy”

Cách đọc là: số1 phẩy số2

Số tiền: Kỹ thuật phiên âm của số tiền dựa trên nền tản phiên âm của số đếm và cuối câu ta thêm vào từ “đồng”. Ví dụ: 246.352.265.000 VNĐ – Hai trăm bốn mươi sáu triệu ba trăm năm mươi hai nghìn hai trăm sáu mươi lăm nghìn đồng.

Số điện thoại: Kỹ thuật phiên âm số điện thoại ta đọc tuần tự riêng biệt từng số từ trái sang phải. Ví dụ: 0905 123 456 – Không chín không năm một hai ba bốn năm

sáu Số thứ tự: phiên âm giống như số đếm. Số thập phân: Ta tách số thập phân thành hai số đếm bởi dấu ‘/’. Ta ứng dụng

cách đọc số đếm cho hai số này và dấu ‘/’ ta thay bằng “phần”. Ví dụ: 12/37 – Mười hai phần ba mươi bảy.

Số phần trăm: Kỹ thuật phiên âm của số phần trăm dựa trên nền tản phiên âm của số đếm và cuối câu ta thêm vào cụm từ “phần trăm”. Ví dụ: 25% – Hai mươi lăm phần trăm.

Ngày tháng năm: Ta tách số thập phân thành ba số đếm bởi dấu ‘/’. Ta ứng dụng cách đọc số đếm cho ba số này và cách đọc như sau: “ngày số1 tháng số2 năm

số3”. Ví dụ: 25/12/2011 – ngày hai mươi lăm tháng mười hai năm hai nghìn không trăm mười một.

Nhiệt độ: Kỹ thuật phiên âm của số nhiệt độ dựa trên nền tản phiên âm của số

đếm và cuối câu ta thêm vào cụm từ “độ C”. Ví dụ: 37oC – Ba mươi bảy độ C.

Tương tự như vậy, chúng ta có thể áp dụng kỹ thuật nhận dạng và phiên âm các

loại chữ số trong các ngôn ngữ khác.

3. Áp dụng biểu thức chính quy và Ôtomat cho việc biểu diễn và phiên âm

3.1. Áp dụng biểu thức chính quy (BTCQ)

Để xây dựng BTCQ cho tập hợp các định dạng số thì ta phải xây dựng các chuỗi

chính quy từng phần tương ứng với các dạng số (số đếm, số tiền, số điện thoại, số thứ

tự, số thập phân, số phần trăm, ngày tháng năm, nhiệt độ) và hợp chúng lại.

Page 5: CHƯƠNG TRÌNH TÍCH HỢP PHIÊN ÂM CÁC DÃY SỐ

HỘI THẢO NGHIÊN CỨU KHOA HỌC “CNTT VÀ ỨNG DỤNG CNTT TRONG CÁC LĨNH VỰC” – 2012

15

Biểu thức chính quy tổng quát có dạng như sau:

r = r1 | r2 | r3 | r4 | r5 | r6 | r7 | r8

= ([+-] ? ([0] | ([1-9] [0-9]*)) ([.,] [0-9]*)?) |

((([+-]? + $ + ([0] | ([1-9] [0-9]*)) ([.] [0-9]{2})?) | ([+-]? ([0] | ([1-9] [0-9]*))) + \sVNĐ ) |

([+] ? (\d | \d{2} | \d{3})? [- .]? ([(] \d{3} [)] | [(] \d{4} [)] | \d{3} | \d{4}) [- .]? (\d{3} | \d{4}) [- .]?

(\d{3} | \d{4})) |

(([1-9] | ([1-9] [0-9]*))? + (1st | 2nd | 3rd | ([0] | [4-9] + th))) |

([+-] ? ([0] | ([1-9] [0-9]*)) ([.,] [0-9]*)? + / + [1-9] [0-9]*? ([.,] [0-9]*)?) |

(([0] | ([1-9] [0-9]*)) * ([.,] [0-9]*)? + %) |

((([1] [0-9] | [2] [0-9] | [3] [0-1]) + / + ([0][1-9] | [1][0-2]) + / + ([0] | ([1-9] [0-9]*))) | ( ([0][1-9] |

[1][0-2])+ / + ([1] [0-9] | [2] [0-9] | [3] [0-1]) + / + ([0] | ([1-9] [0-9]*)))) |

(([0] | ([1-9] [0-9]*)) + (0C | 0F))

Trong đó: r1 - BTCQ của số đếm; r2 - BTCQ của số tiền; r3 - BTCQ của số điện; r4 -

BTCQ của số thứ tự; r5 - BTCQ của số thập phân; r6 - BTCQ của số phần trăm; r7 -

BTCQ của ngày tháng năm; r8 - BTCQ của nhiệt độ

3.2. Áp dụng Ôtômát mô tả hoạt động phiên âm dãy số

Rút ra từ các giải pháp kỹ thuật đã trình bày ở trên, thì phiên âm số đếm là xuất

phát điểm và là nền tảng cho việc phiên âm các định dạng số khác (số tiền, số điện

thoại, số thứ tự, số thập phân, …). Từ đó, chúng tôi đã vận dụng nguyên lý về ôtômát để

xây dựng hai mô hình ôtômát mô tả hoạt động bên trong của quá trình phiên âm của các

dãy số trong tiếng Việt và tiếng Anh. Tuy nhiên, xét cho cùng thì dù chúng ta phiên âm

theo ngôn ngữ nào cũng phải tuân theo qui tắc đọc số, đọc theo bộ ba (nhóm), đọc theo

hàng tuân theo chu trình và có chu kỳ nhất định. Việc nhận biết phiên âm các dãy số có

tuân theo chu trình và chu kỳ hay không? Để thấy rõ được chu trình ta có thể làm một

vài ví dụ nhận biết sau:

(1) 39.832.598.789.512.152

Tiếng Việt: Ba mươi chín triệu tám trăm ba mươi hai nghìn năm trăm chín mươi

tám tỷ bảy trăm tám mươi chín triệu năm trăm mười hai nghìn một trăm năm mươi hai.

Tiếng Anh: Thirty nine thousand eight hundred thirty two trillion five hundred ninety eight billion seven hundred eighty nine million five hundred twelve thousand one hundred fifty two.

(2) 128.523.958.752.546.254.602

Tiếng Việt: Một trăm hai mươi tám tỷ tỷ năm trăm hai mươi ba triệu chín trăm

năm mươi tám nghìn bảy trăm năm mươi hai tỷ năm trăm bốn mươi sáu triệu hai trăm năm mươi bốn nghìn sáu trăm lẻ hai.

Tiếng Anh: One hundred twenty eight million five hundred twenty three

thousand nine hundred fifty eight trillion seven hundred fifty two billion five hundred forty six million two hundred fifty four thousand six hundred and two.

3.2.1. Ôtômát mô tả hoạt động phiên âm dãy số trong tiếng Việt:

Qui tắc chu trình phiên âm dãy số trong tiếng Việt được biểu diễn như sau:

Page 6: CHƯƠNG TRÌNH TÍCH HỢP PHIÊN ÂM CÁC DÃY SỐ

HỘI THẢO NGHIÊN CỨU KHOA HỌC “CNTT VÀ ỨNG DỤNG CNTT TRONG CÁC LĨNH VỰC” – 2012

16

n

i

iS0

([Đ, C, T] tỷ [Đ, C, T] triệu [Đ, C, T] nghìn)i [Đ, C, T]

Trong đó:

- S: Kết quả phiên âm

- n: Số chu trình phiên âm T(nghìn, triệu, tỷ)

- [Đ, C, T]: Nhóm cơ sở (bộ ba) của tiếng Việt

Những định nghĩa tiếng Việt:

Bộ ba (nhóm): Đơn vị - Đ, Chục - C, Trăm - T Hàng: Null (nhóm cơ sở), Nghìn, Triệu, Tỷ.

Ta ứng dụng ôtômát vào phiên âm dãy số trong tiếng Việt như sau:

Hình 1. Ôtômát mô tả hoạt động phiên âm số trong tiếng Việt

3.2.2. Ôtômát mô tả hoạt động phiên âm dãy số trong tiếng Anh:

Qui tắc chu trình phiên âm dãy số trong tiếng Anh được biểu diễn như sau:

n

i

iS0

([D, Z, H] trillion [D, Z, H] billion [D, Z, H] million [D, Z, H] thousand)i [D, Z, H]

Trong đó:

- S: Kết quả phiên âm

- n: Số chu trình phiên âm T(trillion, billion, million, thousand)

- [D, Z, H]: Nhóm cơ sở (bộ ba) của tiếng Anh

Những định nghĩa tiếng Anh:

Bộ ba (nhóm): Digit - D, Dozen - Z, Hundred - H Hàng: Null (nhóm cơ sở), Thousand, Million, Billion, Trillion.

Ta ứng dụng ôtômát vào phiên âm dãy số trong tiếng Anh như sau:

Hình 2. Ôtômát mô tả hoạt động phiên âm số trong tiếng Anh

Page 7: CHƯƠNG TRÌNH TÍCH HỢP PHIÊN ÂM CÁC DÃY SỐ

HỘI THẢO NGHIÊN CỨU KHOA HỌC “CNTT VÀ ỨNG DỤNG CNTT TRONG CÁC LĨNH VỰC” – 2012

17

4. Xây dựng và triển khai chương trình:

4.1. Mô hình tổng quan chương trình phiên âm các dãy số

Mô hình tổng quan chương trình phiên âm các dãy số được mô tả như sau:

Hình 3. Mô hình tổng quan chương trình phiên âm các dãy số

Ở môi trường ứng dụng, người sử dụng (NSD) có thể phiên âm tự động các dãy

số bằng cách gởi thông điệp từ môi trường tích hợp (Hệ điều hành Windows) triệu gọi

chương trình phiên âm để nhận dạng, xử lý và phiên âm các dãy số có trong ứng dụng

hiện tại. Sau đó chương trình phiên âm sẽ chuyển đổi dữ liệu (tất cả hoặc một phần tùy

chọn) và trả kết quả về cho ứng dụng đó mà NSD cần phiên âm.

4.2. Kết quả chương trình

4.2.1. Giao diện ứng dụng:

Chương trình tích hợp phiên âm, phát âm các dãy số Chương trình tích hợp phiên âm, phát âm các dãy số ?

Đang phát âm... Tổng các dãy số: 0

Kết quả phiên âm, phát âm

Dãy số Phiên âmNgôn ngữ Đọc

Thông tin xử lý

Đường dẫn nguồn dữ liệu:

Chọn ngôn ngữ: Tiếng Việt Phiên âm Chèn kết quả phiên âm vào ứng dụng Quay về nội dung ứng dụng ban đầu

Loại số

Hình 4. Giao diện chương trình tích hợp phiên âm các dãy số

Giao diện được chia làm hai phần: “Thông tin xử lý” là phần chính để NSD có

thể tương tác, chọn lựa và thay đổi các công cụ điều khiển để xử lý phiên âm, phát âm;

và “Kết quả phiên âm, phát âm” là phần danh sách liệt kê các dãy số đã đọc từ tệp tin.

Trong danh sách này, sẽ hiển thị kết quả phiên âm các dãy số và các công cụ tự chọn

khác (chọn ngôn ngữ, chọn kiểu số, phát âm số) để NSD có thể thay đổi kết quả phiên

âm của từng dòng.

4.2.2. Kết quả tích hợp trong môi trường khác:

Page 8: CHƯƠNG TRÌNH TÍCH HỢP PHIÊN ÂM CÁC DÃY SỐ

HỘI THẢO NGHIÊN CỨU KHOA HỌC “CNTT VÀ ỨNG DỤNG CNTT TRONG CÁC LĨNH VỰC” – 2012

18

Hình 5. Nội dung ứng dụng trước khi tích hợp chương trình phiên âm

Hình 6. Nội dung ứng dụng sau khi tích hợp chương trình phiên âm

5. Kết luận

Trong bài báo này chúng tôi đã trình bày việc nghiên cứu xây dựng một chương

trình phiên âm tự động, dưới dạng phần mềm tích hợp vào các môi trường khác. Để xây

dựng một phần mềm như vậy, yêu cầu phải nghiên cứu các định dạng số, các quy tắc

đọc số thường gặp trong các tài liệu, từ đó đề xuất các thuật toán cho việc phiên âm số.

Bài báo cũng trình bày việc áp dụng kỹ thuật cho phép xây dựng và tích hợp phần mềm

như một module vào các môi trường khác để sử dụng phiên âm số.

Tuy nhiên, nghiên cứu mới dùng lại ở việc tích hợp chương trình như module

vào các ứng dụng trên môi trường Windows, chưa trên các môi trường khác như Linux,

Unix, .. và chỉ hỗ trợ phiên âm cho hai ngôn ngữ tiếng Việt và tiếng Anh.

Trong thời gian đến, chương trình sẽ khắc phục các hạn chế, cải tiến thuật toán

Page 9: CHƯƠNG TRÌNH TÍCH HỢP PHIÊN ÂM CÁC DÃY SỐ

HỘI THẢO NGHIÊN CỨU KHOA HỌC “CNTT VÀ ỨNG DỤNG CNTT TRONG CÁC LĨNH VỰC” – 2012

19

và phát triển ứng dụng thành những plugin có thể tích hợp được vào các ứng dụng phức

tạp.

TÀI LIỆU THAM KHẢO

[1] C. Shuangyu, S. Lokendra, G. Steven (2000). Automatic phonetic transcription of

spontaneous speech (american English), In ICSLP-2000, vol.4, 330-333.

[2] D.T. Toledano (2003). Automatic phonetics segmentation, in Proceedings of

Speech and Audio Processing, IEEE Transactions on Nov. 2003, pp. 617-625.

[3] Roach P. (2005). English Phonetics and Phonology: A Practical Course.

Cambridge: Cambridge University Press.

[4] Đ. H. Ruận (2002). Lý thuyết ngôn ngữ hình thức và otomat, sách, nhà xuất bản

ĐH Quốc Gia Hà Nội, 201 tr.

[5] N. L. Chi, H.C. Cường (2004). Nghiên cứu các luật kết hợp âm vị học trong các âm

tiết tiếng Anh và tiếng Việt, Luận văn Thạc sỹ, 109 tr.

[6] Tổng quan về xử lý ngôn ngữ tự nhiên trong dịch máy.

http://qtkd4.com/caohoc/showthread.php?t=1100&s=7d1957dc340caf5b58b8ea1f8

1262ec0 (http://www.mediafire.com/?thwbuuub32yq4zu