Tải bản đầy đủ (.pdf) (62 trang)

Đồ án tốt nghiệp ứng dụng data mining vào phần mềm đọc truyện trên thiết bị di động

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.4 MB, 62 trang )

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG

KHOA CƠNG NGHỆ THÔNG TIN

ĐỒ ÁN
TỐT NGHIỆP ĐẠI HỌC

Đề tài: “Ứng dụng data mining vào phần mềm đọc truyện
trên di động”

Người hướng dẫn : Ths. NGUYỄN MẠNH SƠN
Sinh viên thực hiện : ĐẶNG BẢO CHUNG
Lớp : D08CNPM2
Khố : 2008
Hệ : CHÍNH QUY

Hà Nội, tháng 11/2012


LỜI CẢM ƠN

Em xin chân thành cảm ơn Khoa Công nghệ thơng tin 1, Trường Học Viện Cơng
Nghệ Bưu Chính Viễn Thơng cơ sở phía Bắc đã tạo điều kiện tốt cho em thực hiện đề tài tốt
nghiệp này.
Em xin gửi lời cảm ơn sâu sắc nhất đến Th.s. Nguyễn Mạnh Sơn, người thầy đã cho
em định hướng và tận tình chỉ bảo em những ý kiến quý báu ngay từ khi em bước chân vào
giảng đường học viện. Thầy đã giúp đỡ em tận tình và đi cùng em trong suốt thời gian thực
hiện đề tài này. Thầy chỉ cho em cách tiếp cận, nghiên cứu và cách tìm ra những giải pháp
cho vấn đề mắc phải.
Em xin bày tỏ lời cảm ơn sâu sắc đến những thầy cô giáo đã giảng dạy em trong bốn
năm rưỡi qua, những kiến thức mà em nhận được trên giảng đường đại học sẽ là hành trang


giúp em vững bước trong tương lai.
Cuối cùng, em muốn gửi lời cảm ơn sâu sắc đến tất cả bạn bè, và đặc biệt là cha mẹ,
em trai, người thân của em, những người luôn kịp thời động viên, giúp đỡ và là động lực để
em vượt qua những khó khăn trong cuộc sống.
Đề tài “Ứng dụng data mining vào phần mềm đọc truyện trên di động” là một đề tài
khá mới mẻ, mặc dù em đã cố gắng hoàn thành trong phạm vi và khả năng cho phép nhưng
chắc chắn sẽ không tránh khỏi những thiếu sót. Em mong nhận được sự cảm thơng và tận tình
chỉ bảo, góp ý của thầy cơ và các bạn để đề tài có thể được mở rộng, nghiên cứu kỹ hơn.

Sinh viên thực hiện
Đặng Bảo Chung


MỞ ĐẦU
Đọc sách là nhu cầu của tất cả mọi người, bởi lẽ sách là phương tiện học tập thuận lợi,
giúp con người nâng cao nhận thức, hiểu biết. Sách là kho tàng tri thức mà nhân loại tạo ra,
lưu lại, truyền cho thế hệ sau. Đó là nguồn tri thức rất quan trọng và vô tận đối với tất cả mọi
người, những cuốn sách có nội dung tốt sẽ đưa đến cho chúng ta không chỉ những hiểu biết
mới mà cịn cả những sự suy nghĩ tìm tịi và sự biến đổi về tâm hồn. Mọi thành công của con
người đều nhờ sự kết hợp của kinh nghiệm bản thân với tri thức lĩnh hội được từ việc học từ
trong cuộc sống và từ trong sách vở. Nếu đọc sách thường xun và có phương pháp khoa học
thì kiến thức của mỗi người sẽ không ngừng mở rộng, nâng cao tiếp cận được sự phát triển
của khoa học, bồi dưỡng nâng cao năng lực tư duy lôgic, phương pháp làm việc khoa học,
lịng u nghề nghiệp và có thái độ đúng đắn đối với thế giới xung quanh cũng như đối với
bản thân mình, nhất là bồi dưỡng sự hứng thú, năng lực và thói quen tự học suốt đời…
Với tầm quan trọng của việc đọc sách như vậy, thì bất cứ ai trong chúng ta cũng nên
đọc sách và có quyền được đọc sách. Đối với những người khiếm thị hay người già thì việc
đọc sách lại càng trở nên quan trọng vì đó là nguồn tri thức dồi dào mà họ có thể tiếp cận
được.
Tuy nhiên, trong tình hình hiện nay với sự phát triển ồ ạt của các loại sách, báo, thì

việc tìm cho mình những cuốn sách hay và hữu ích là việc khơng hề dễ dàng. Sách nhiều
khiến cho chúng ta không biết nên đọc quyển nào hoặc là chọn phương án “đọc nhầm cịn hơn
bỏ sót” dẫn đến khơng thể nắm bắt được hết nội dung của sách và lãng phí thời gian.
Nhằm giải quyết vấn đề làm thế nào để tất cả mọi người đều có thể được đọc sách, có
thể chọn cho mình được những cuốn sách phù hợp với bản thân, tiết kiệm được thời gian giúp
cho người đọc cảm thụ được tối đa cái hay của mỗi cuốn sách. Em đã có ý tưởng áp dụng
cơng nghệ thơng tin vào việc đọc sách. Em xin đi vào đề tài “Ứng dụng data mining vào phần
mềm đọc truyện trên di động”.
Khai phá dữ liệu là một quá trình chắt lọc hay khai phá tri thức từ một lượng lớn dữ
liệu, nó đượcứng dụng trong nhiều lĩnh vực khác nhau trên thế giới như thiên văn học, phân
lớp văn bản, tóm tắt văn bản tin sinh học, thương mại điện tử, quản lý quan hệ khách hàng,
viễn thông, thể thao, giải trí, đầu tư... Tại Việt Nam kỹ thuật này cịn tương đối mới mẻ tuy
nhiên cũng đang được nghiên cứu và bắt đầu đưa vào một số ứng dụng thực tế.
Nội dung của đồ án gồm những chương sau:
Chương 1: Tổng quan về bài toán khai phá mẫu phổ biến
Chương này tập trung trình bày khái qt về bài tốn khai phá mẫu phổ biến, làm thế
nào để khái phá dữ liệu, giới thiệu và cài đặt thuật toán điển hình cho bài tốn khai phá.
Chương 2: Tổng quan về tổng hợp tiếng nói từ văn bản
Chương này trình bày khái quát về vấn đề tổng hợp tiếng nói từ văn bản. Quá trình và
các phương pháp để tổng hợp tiếng nói. Cuối cùng là giới thiệu API tổng hợp tiếng nói của
Google
Chương 3: Xây dựng phần mềm đọc truyện trên di động
Chương này trình bày phân tích và thiết kế xây dựng phần mềm đọc truyện trên điện
thoại di động
Chương 4: Cài đặt và thử nghiệm
Cài đặt, đánh giá kết quả đạt được


MỤC LỤC
MỞ ĐẦU ...................................................................................................................................iii

MỤC LỤC ................................................................................................................................ iv
DANH MỤC HÌNH ẢNH ......................................................................................................vii
CHƯƠNG 1: TỔNG QUAN VỀ BÀI TOÁN KHAI PHÁ MẪU PHỔ BIẾN ..................... 2

1.1 Giới thiệu bài toán khai phá mẫu phổ biến.......................................................2
1.2 Thuật toán Apriori ..............................................................................................4
1.3 Cài đặt thuật toán Apriori ..................................................................................6
CHƯƠNG 2: TỔNG QUAN VỀ TỔNG HỢP TIẾNG NĨI TỪ VĂN BẢN..................... 10

2.1 Giới thiệu bài tốn tổng hợp tiếng nói từ văn bản..........................................10
2.2 Ý nghĩa của tổng hợp tiếng nói .........................................................................10
2.3 Vấn đề tổng hợp tiếng nói ở Việt Nam ............................................................11
2.4 Các phương pháp tổng hợp tiếng nói ..............................................................11
2.4.1 Tổng hợp mức cao ......................................................................................12
2.4.2 Tổng hợp mức thấp ....................................................................................14
2.4.3 Tạo ra sóng âm thanh.................................................................................15
2.4.4 Phương pháp tổng hợp Formant...............................................................15
2.4.5 Các phương pháp tổng hợp ghép nối ........................................................17
2.5 API tổng hợp tiếng nói của Google ..................................................................18
CHƯƠNG 3: XÂY DỰNG PHẦN MỀM ĐỌC TRUYỆN TRÊN DI ĐỘNG ................... 22

3.1 Bài toán ...............................................................................................................23
3.2 Khảo sát yêu cầu nghiệp vụ ..............................................................................23
3.2.1 Kiến trúc tổng quan....................................................................................23
3.2.2 Chức năng chính của hệ thống ..................................................................24
3.2.3 Xác định các actor ......................................................................................25
3.2.4 Xác định các usecase nghiệp vụ .................................................................25
3.3 Khảo sát các yêu cầu hệ thống..........................................................................25
3.3.1 Xác định các actor hệ thống ......................................................................25
3.3.2 Xác định các usecase hệ thống ...................................................................26

3.4 Biểu đồ usecase...................................................................................................26
3.4.1 Biểu đồ usecase tổng quát ..........................................................................26
3.4.2 Phân rã các usecase ....................................................................................27
3.5 Biểu diễn usecase bởi các kịch bản ..................................................................28
3.5.1 Kịch bản cho usecase Đăng nhập ..............................................................28
3.5.2 Kịch bản cho usecase Đăng xuất ...............................................................28
3.5.3 Kịch bản cho usecase Thay đổi thông tin cá nhân...................................29
3.5.4 Kịch bản cho usecase Xem danh sách thể loại .........................................29


3.5.5 Kịch bản cho usecase Thêm mới thể loại .................................................30
3.5.6 Kịch bản cho usecase Cập nhật thể loại ...................................................31
3.5.7 Kịch bản cho usecase Xóa thể loại ............................................................31
3.5.8 Kịch bản cho usecase Xem danh sách người dùng ..................................32
3.5.9 Kịch bản cho usecase Xem danh sách truyện ..........................................32
3.5.10 Kịch bản cho usecase Thêm mới truyện .................................................33
3.5.11 Kịch bản cho usecase Cập nhật truyện ..................................................34
3.5.12 Kịch bản cho usecase Xóa truyện............................................................35
3.5.13 Kịch bản cho usecase Chọn thể loại ........................................................35
3.5.14 Kịch bản cho usecase Chọn ngôn ngữ ....................................................36
3.5.15 Kịch bản cho usecase Chọn truyện .........................................................36
3.6 Các yêu cầu phi chức năng ...............................................................................37
3.6.1 Trang quản trị.............................................................................................37
3.6.2 Phần mềm đọc truyện ................................................................................37
3.7 Phân tích hệ thống .............................................................................................37
3.7.1 Xác định các lớp..........................................................................................37
3.7.2 Danh sách các lớp trong website quản trị ................................................37
3.7.3 Mối quan hệ giữa các lớp ...........................................................................37
3.7.4 Danh sách các lớp trong phần mềm đọc truyện ......................................38
3.7.5 Mối quan hệ giữa các lớp ...........................................................................38

3.7.6 Xác định các thuộc tính và phương thức giữa các lớp ............................38
3.7.7 Biểu đồ tuần tự ............................................................................................39
3.7.8 Biểu đồ hoạt động .......................................................................................41
3.8 Thiết kế hệ thống ...............................................................................................42
3.8.1 Lựa chọn công nghệ....................................................................................42
3.8.2 Lựa chọn topology của mạng.....................................................................42
3.8.3 Biểu đồ lớp thiết kế .....................................................................................43
3.8.4 Đặc tả chi tiết các lớp .................................................................................43
3.8.5 Biểu đồ tuần tự ............................................................................................44
3.8.6 Thiết kế CSDL ............................................................................................45
3.8.7 Kịch bản và thiết kế giao diện ...................................................................46
CHƯƠNG 4: CÀI ĐẶT VÀ THỬ NGHIỆM ....................................................................... 50

4.1 Cài đặt môi trường ............................................................................................50
4.1.1 Cài đặt wampserver ...................................................................................50
4.1.2 Cài đặt IIS 7 ................................................................................................50
4.1.3 Cài đặt trang quản trị hệ thống TTS-S ....................................................51


4.1.4 Tạo webservice phục vụ cho ứng dụng trên điện thoại...........................51
4.2 Thử nghiệm ........................................................................................................52
KẾT LUẬN ............................................................................................................................. 55

Những nội dung đồ án đã thực hiện được .............................................................55
Một số hướng phát triển tiếp theo..........................................................................55
TÀI LIỆU TAM KHẢO ......................................................................................................... 56


DANH MỤC HÌNH ẢNH
Hình 1-1 Hàm FirstCanditdate ........................................................................................7

Hình 1-2 Hàm FirstPatternGen ........................................................................................7
Hình 1-3 Hàm CandiateGen ............................................................................................8
Hình 1-4 Hàm PatternGen ...............................................................................................8
Hình 1-5 Hàm JoinStep ...................................................................................................9
Hình 1-6 Hàm PruneStep .................................................................................................9
Hình 2-1 Mơ hình tổng hợp tiếng nói ............................................................................12
Hình 2-2 Mơ hình hệ thống tổng hợp tiếng nói .............................................................12
Hình 2-3 Sự phụ thuộc của ngơn điệu vào các yếu tố ...................................................14
Hình 2-4 Mơ hình 3 Formant nối tiếp ...........................................................................16
Hình 2-5 Mơ hình 5 Formant của Klatt .........................................................................16
Hình 2-6 Chức năng của Google Translate ...................................................................18
Hình 2-7 Giao diện Google Text To Speech .................................................................19
Hình 3-1 Mơ hình tổng quan hệ thống ..........................................................................24
Hình 3-2 Biểu đồ Usecase tổng quát .............................................................................27
Hình 3-3 Biểu đồ usecase phân rã .................................................................................27
Hình 3-4 Biểu đồ lớp pha phân tích trang quản trị ........................................................38
Hình 3-5 Biểu đồ lớp pha phân tích cho phần mềm đọc truyện ....................................38
Hình 3-6 Biểu đồ tuần tự cho chức năng đăng nhập .....................................................40
Hình 3-7 Biểu đồ tuần tự cho chức năng thêm truyện ..................................................40
Hình 3-8 Biểu đồ tuần tự cho chức năng đọc truyện .....................................................41
Hình 3-9 Biểu đồ lớp pha thiết kế .................................................................................43
Hình 3-10 Biểu đồ tuần tự chức năng đăng nhập ..........................................................44
Hình 3-11 Biểu đồ tuần tự cho chức năng thêm truyện ................................................45
Hình 3-12 Biểu đồ tuần tự cho chức năng đọc truyện ...................................................45
Hình 3-13 Cơ sở dữ liệu của hệ thống TTS-S ...............................................................46
Hình 3-14 Giao diện trang đăng nhập ...........................................................................46
Hình 3-15 Giao diện thơng báo đăng nhập thành cơng .................................................47
Hình 3-16 Giao diện danh sách truyện ..........................................................................47
Hình 3-17 Form nhập thơng tin truyện ..........................................................................48
Hình 3-18 Giao diện chọn thể loại tryện .......................................................................48

Hình 3-19 Giao diện chức năng đọc truyện...................................................................49
Hình 4-1 Giao diện wampserver ...................................................................................50
Hình 4-2 Giao diện Windows Features .........................................................................51
Hình 4-3 Cài đặt webservice (1) ....................................................................................51
Hình 4-4 Cài đặt webservice (2) ....................................................................................52


GVHD: Nguyễn Mạnh Sơn

CHƯƠNG 1: TỔNG QUAN VỀ BÀI TOÁN KHAI PHÁ MẪU PHỔ BIẾN
1.1 Giới thiệu bài toán khai phá mẫu phổ biến
Khai phá dữ liệu (datamining) được định nghĩa như là một quá trình chắt lọc hay khai
phá tri thức từ một lượng lớn dữ liệu. Một ví dụ hay được sử dụng là là việc khai thác vàng từ
đá và cát, Dataming được ví như cơng việc "Đãi cát tìm vàng" trong một tập hợp lớn các dữ
liệu cho trước. Thuật ngữ Dataming ám chỉ việc tìm kiếm một tập hợp nhỏ có giá trị từ một số
lượng lớn các dữ liệu thơ. Có nhiều thuật ngữ hiện được dùng cũng có nghĩa tương tự với từ
Datamining như Knowledge Mining (khai phá tri thức), knowledge extraction(chắt lọc tri
thức), data/patern analysis(phân tích dữliệu/mẫu), data archaeoloogy (khảo cổ dữ liệu),
datadredging(nạo vét dữ liệu),...
Hiện nay có rất nhiều phương pháp khai phá dữ liệu như: Phân lớp và dự đoán, phân
cụm và phân đoạn, luật kết hợp, khai phá chuỗi theo thời gian, mơ tả khái niệm và tổng hợp
hóa. Trong khuôn khổ đề tài, chúng ta sẽ đi sâu vào nghiên cứu phương pháp kha phá luật kết
hợp để tìm ra các mẫu phổ biến.
Ví dụ 1-1
Trong một hiệu sách lưu lại các phiếu mua sách, người ta phát hiện ra rằng: Trong số
những người mua quyển "Các khái niệm và kỹ thuật khai phá dữ liệu" thì có 40% số người đó
mua thêm quyển "Hệ quản trị cơ sở dữ liệu", và 25% mua thêm quyển "Kho dữ liệu".
Trong ví dụ trên, tìm được hai luật kết hợp:
- Có 40% số người mua quyển "Các khái niệm và kỹ thuật khai phá dữ liệu"
thì đồng thời mua quyển "Hệ quản trị cơ sở dữ liệu".

- Có 25% số người mua quyển "Các khái niệm và kỹ thuật khai phá dữ liệu"
thì đồng thời mua quyển "Kho dữ liệu".
Với những quy tắc được khám phá trên, ta có thể sắp xếp các quyển sách có liên quan
với nhau ở vị trí gần nhau để giúp cho người mua sách thuận tiện hơn. Những quy tắc đó cũng
giúp cho nhà sách có chiến lược kinh doanh tốt hơn.
Luật kết hợp được sử dụng rộng rãi trong nhiều lĩnh vực khác nhau như: Kinh doanh,
sản xuất, giao thông, viễn thông, giáo dục, quản lý thị trường, …
Luật kết hợp cho biết phạm vi mà trong đó, sự xuất hiện của tập các thuộc tính A nào
đó trong các bản ghi của CSDL D sẽ kéo theo sự xuất hiện của tập các thuộc tính khác B,
cũng trong những bản ghi đó, có dạng A ⇒ B. Mỗi luật kết hợp được đặc trưng bởi một cặp tỷ
lệ đó, là độ hỗ trợ và độ tin cậy. Thông tin mà luật kết hợp mang lại là rất to lớn và hỗ trợ
đáng kể cho quá trình ra quyết định trong kinh doanh cũng như trong nghiên cứu khoa học.

Các định nghĩa cơ bản:
Cho I = {i1, i2,…, in-1, in} là tập đầy đủ các sản phẩm trong CSDL. Cho T = (t1, t2,…,
tn-1, tn) là tập toàn bộ các giao dịch (transaction), tương đương với CSDL giao dịch, trong đó ti
là một tập các sản phẩm và ti I. Một luật kết hợp là một phép kéo theo có dạng như sau:
X Y (với X và Y là một nhóm sản phẩm, X I, Y I và X Y = ).
Ví dụ 1-2
SVTH: Đặng Bảo Chung. Lớp D08CNPM2

Page 2


GVHD: Nguyễn Mạnh Sơn
Cho một tập 7 giao dịch như Bảng 1.1, mỗi giao dịch ti là một tập các sản phẩm được mua
cùng nhau trong giỏ hàng của một khách hàng. Tập I là tập tất cả các sản phẩm được bày bán
trong cửa hàng.

t1

t2
t3
t4
t5
t6
t7

Thịt bò, Thịt gà, Sữa
Thịt bò, Pho mát
Pho mát, Giày
Thịt bò, Thịt gà, Pho mát
Thịt bò, Thịt gà, Quần áo, Pho mát, Sữa
Thịt gà, Quần áo, Sữa
Thịt gà, Sữa, Quần áo
Bảng 1-1 Tập các giao dịch

I = {Thịt bò, Thịt gà, Sữa, Pho mát, Giày, Quần áo}
T = {t1, t2, t3, t4, t5, t6, t7}
{Thịt bò, Thịt gà, Pho mát} là tập mặt hàng được mua cùng nhau. Như vậy luật kết
hợp có thể là Thịt bò, Thịt gà Pho mát.
Định nghĩa 1.1: Chứa (contain)
Một giao dịch ti T được coi là chứa (contain) một nhóm sản phẩm (nhóm sản phẩm)
X nếu X là một tập con của ti.
Ví dụ: t5 chứa nhóm sản phẩm {Thịt gà, Pho mát}
Định nghĩa 1.2: Giá trị hỗ trợ (support count)
Giá trị hỗ trợ của X trong T (ký hiệu: X.count) là số lượng các giao dịch trong T có
chứa X.
Ví dụ: Với X = {Pho mát} thì giá trị hỗ trợ của X trong T là số lượng các giao dịch có
chứa sản phẩm “Pho mát”. Ở đây X.count = 4
Định nghĩa 1.3: Độ hỗ trợ (support)

Độ hỗ trợ (support) của X = X.support =

(Trong đó n là số lượng các giao

dịch của T).
Ví dụ: Với X = {Pho mát} thì X.support =

=

Định nghĩa 1.4: Tính tin cậy của luật kết hợp
Tính tin cậy của một luật kết hợp được đại diện bởi 2 giá trị support và confidence của
nó:
 Support: giá trị support của một luật, X Y, là phần trăm số giao dịch trong T có chứa
X Y, có thể hiểu là xác suất hợp Pr(X Y). Như vậy giá trị support của luật quyết
định mức độ phổ biến của nó trong CSDL giao dịch T. Cho n là tổng số giao dịch trong
T. Giá trị support của một luật X Y được tính như sau:
(
)
(1)
(
)
=

SVTH: Đặng Bảo Chung. Lớp D08CNPM2

Page 3


GVHD: Nguyễn Mạnh Sơn
Giá trị support là một thước đo hữu ích bởi bởi nếu giá trị này quá thấp, luật có thể

chỉ xuất hiện ngẫu nhiên chứ khơng phải là một luật thật sự phổ biến. Ngoài ra, trong mơi
trường thương mại, một luật xuất hiện trong q ít giao dịch thì cũng khơng có khả năng
sinh lợi khi áp dụng.
 Confidence: giá trị confidence của một luật, , X Y, là phần trăm số giao dịch trong T
có chứa X và đồng thời cũng chứa Y. Giá trị này có thể coi như xác suất có điều kiện
Pr(X | Y), được tính như sau:
(
)
(2)
(
)
=
Như vậy giá trị confidence quyết định tính tiên đốn (predictability) của luật. Nếu giá
trị confidence của luật quá thấp, dự đoán Y sẽ được kéo theo sau X là khơng đáng tin cậy
vì X có thể đi kèm với các sản phẩm khác nhiều hơn. Một luật có tính tiên đốn thấp sẽ có
giá trị sử dụng hạn chế.

1.2 Thuật tốn Apriori
Tính chất Apriori: Nếu một nhóm sản phẩm (nhóm sản phẩm) thỏa mãn ngưỡng
minsup thì mọi tập con khác rỗng của nó cũng sẽ thỏa mãn ngưỡng minsup.
Ý tưởng của tính chất này rất đơn giản, nếu một nhóm sản phẩm X t (t là một giao
dịch trong T)
=> t cũng chứa tất cả các tập con khác rỗng của X
=>
(Y là một nhóm sản phẩm).
Tính chất đơn giản này cùng với giá trị ngưỡng minsup sẽ giúp loại bỏ một số lượng
đáng kể các nhóm sản phẩm khơng phổ biến trong q trình khai phá. Thuật tốn Apriori bao
gồm 2 bước:
- Tìm ra tất cả các nhóm sản phẩm phổ biến (frequent nhóm sản phẩm): một nhóm sản
phẩm phổ biến là các nhóm sản phẩm có support lớn hơn ngưỡng minsup.

- Sinh ra tất cả các luật kết hợp (association rules) từ tập các nhóm sản phẩm phổ biến
trên: Các luật kết hợp đáng tin cậy có giá trị confidence lớn hơn ngưỡng minconf.
Để tăng hiệu năng thuật tốn mà khơng làm mất tính tổng quát, giả sử mọi sản phẩm
trong I được sắp xếp theo thứ tự từ điển của mã sản phẩm. Thuật toán Apriori dựa trên phép
duyệt theo chiều rộng (level-wised search): thực hiện k lần duyệt qua toàn bộ CSDL, tại mỗi
lần duyệt thứ i (1 i k), thuật tốn sinh ra tồn bộ các nhóm sản phẩm phổ biến có độ dài i
(hay có i sản phẩm).
Lần duyệt thứ nhất, mỗi sản phẩm xuất hiện trong CSDL giao dịch T đều được đưa vào
tập ứng cử C1, sau đó giá trị support của mỗi sản phẩm được tính tốn và so sánh với ngưỡng
minsup để xác định sản phẩm nào là phổ biến, kết thúc thu được một tập các nhóm sản phẩm
phổ biến độ dài 1 (hay chỉ gồm 1 phần tử) là F1 (dòng 1,2).
Thuật toán Apriori
1. C1 init-pass(T); // Lần duyệt đầu tiên qua tập giao dịch T
2. F1 {f | f C1, f.count/n minsup}; // n là số giao dịch trong T
3. for ( k = 2; Fk-1
; k++) do // Các lần duyệt T sau
4.
Ck candidate-gen(Fk-1);
SVTH: Đặng Bảo Chung. Lớp D08CNPM2

Page 4


GVHD: Nguyễn Mạnh Sơn
5.
for each transaction t in T do
6.
for each candidate c in Ck do
7.
if t contain c then

8.
c.count++;
9.
endfor
10.
endfor
11.
Fk {c Ck | c.count/n minsup}
12. endfor
13. return F ⋃ k;
Bảng 1-2 Thuật toán Apriori
Từ lần duyệt thứ 2 trở đi, thực hiện 3 bước: (dòng 4 đến 12)
1. Sử dụng tập nhóm sản phẩm phổ biến Fk-1 của bước trước làm đầu vào cho hàm
candidate-gen(Fk-1) để sinh ra tập nhóm sản phẩm ứng cử Ck (dòng 4).
2. Duyệt lại CSDL giao dịch T để tính số lần xuất hiện trong CSDL: c.count của các nhóm
sản phẩm ứng cử c trong Ck. Chú ý rằng thuật tốn khơng nạp tồn bộ dữ liệu trong
CSDL vào bộ nhớ chính trước khi xử lý. Tại mỗi thời điểm trong bộ nhớ chỉ có một bản
ghi giao dịch, đây là một đặc điểm quan trọng của thuật tốn, nó giúp thuật tốn thích
hợp với các CSDL lớn (dòng 5 đến 9).
3. Cuối cùng kiểm tra giá trị support để xác định các nhóm sản phẩm phổ biến thực sự từ
Ck , thu được Fk (dịng 11).
Kết quả cuối cùng của thuật tốn là tập F chứa tồn bộ các nhóm sản phẩm phổ biến có
độ dài từ 1 đến k (dịng 13). Nội dung hàm candidate-gen(Fk-1) được giải thích sau đây:

Hàm candidate-gen(Fk-1)
1. C1
; //Khải tạo tập ứng cử
2. for all f1, f2 Fk-1 //Xét tất cả các cặp nhóm sản phẩm phổ biến
3.
with f1 = {i1, …, ik-2, ik-1} //chỉ khác nhau sản phẩm cuối cùng

4.
and f2 = {i1, …, ik-2, i’k-1}
5.
and ik-1 < i’k-1 do // do sản phẩm được sắp xếp theo thứ tự từ điển
6.
c {i1, …, ik-2, ik-1, i’k-1}; //kết hợp hai nhóm sản phẩm phổ biến f1 và f2
7.
Ck Ck {c}; //đưa nhóm sản phẩm mới vào tập ứng cử
8.
for each (k-1)-subset s of c do //xét tất cả các tập con độ dài k-1 của c
9.
if not (s Fk-1) then
10.
delete c from Ck; //xoá c khỏi tập ứng cử
11.
endfor
12. endfor
13. return Ck;
Bảng 1-3 Hàm candidate-gent(Fk-1)
Hàm candidate-gen(Fk-1) gồm 2 bước:

SVTH: Đặng Bảo Chung. Lớp D08CNPM2

Page 5


GVHD: Nguyễn Mạnh Sơn
1. Join Step (kết hợp): Kết hợp 2 nhóm sản phẩm có duy nhất sản phẩm cuối cùng khác
nhau trong Fk-1, được một nhóm sản phẩm ứng cử độ dài k là c, đưa vào Ck (dòng 2 đến
7).

2. Pruning Step (xén tỉa): Kiểm tra mỗi nhóm sản phẩm c trong Ck, nếu c có một tập con
khơng nằm trong Fk-1 (khơng phải là một nhóm sản phẩm phổ biến) thì c sẽ bị loại khỏi
Ck do vi phạm tính chất Apriori.
Ví dụ 1.3: Hoạt động của hàm candidate-gen(Fk-1). Giả sử tại lần duyệt thứ 4, ta có tập nhóm
sản phẩm phổ biến của bước trước F3 là:
F3 = {{1, 2, 3}, {1, 2 ,4}, {1, 3, 4}, {1, 3, 5}, {2, 3, 4}}
Bước kết hợp (sinh các nhóm sản phẩm ứng cử độ dài 4) sẽ sinh ra 2 nhóm sản phẩm: {1, 2,
3, 4} (kết hợp {1, 2, 3} với {1, 2, 4}) và {1, 3, 4, 5} (kết hợp {1, 3, 4} với {1, 3, 5}).
Bước xén tỉa sẽ chỉ giữ lại nhóm sản phẩm {1, 2, 3, 4} và loại bỏ nhóm sản phẩm {1, 3, 4, 5}
vì nó chứa nhóm con {1, 4, 5} khơng có trong F3 => vi phạm tính chất Apriori.
Ví dụ 2.2: Hoạt động của tồn bộ thuật toán Apriori: Giả sử đầu vào của thuật toán là
tập giao dịch sau:
t1
t2
t3
t4
t5
t6
t7

Thịt bò, Thịt gà, Sữa
Thịt bò, Pho mát
Pho mát, Giày
Thịt bò, Thịt gà, Pho mát
Thịt bò, Thịt gà, Quần áo, Pho mát, Sữa
Thịt gà, Quần áo, Sữa
Thịt gà, Sữa, Quần áo

Với minsup = 30%, ta có F1 (giá trị support count ghi bên cạnh nhóm sản phẩm):
F1: {{Thịt bò}: 4, {Pho mát}: 4, {Thịt gà}: 5, {Quần áo}: 3, {Sữa}: 4}

Tiếp tục thực hiện các lần duyệt sau, ta có các kết quả:
C2: {{Thịt bị, Pho mát}, {Thịt bò, Thịt gà}, {Thịt bò, Quần áo}, {Thịt bò, Sữa},
{Pho mát, Chiken}, {Pho mát, Quần áo}, {Pho mát, Sữa},
{Chiken, Quần áo},{Thịt gà, Sữa},{Quần áo, Sữa}}
F2: {{Thịt bò, Thịt gà}: 3, {Thịt bò, Pho mát}: 3, {Thịt gà, Quần áo}: 3,
{Thịt gà, Sữa}: 4, {Quần áo, Sữa}: 3}
C3: {{Thịt gà, Quần áo, Sữa}}
F3: {{Thịt gà, Quần áo, Sữa}:3}
Chú ý tại lần duyệt thứ 3: C3 khơng chứa nhóm sản phẩm {Thịt bị, Pho mát, Thịt gà}
bởi nó có tập con {Pho mát, Thịt gà} khơng nằm trong F2. Thuật tốn kết thúc sau khi tìm
được F3 vì chỉ cịn duy nhất 1 nhóm sản phẩm, khơng thể thực hiện hàm candidate-gen được
nữa.

1.3 Cài đặt thuật toán Apriori

SVTH: Đặng Bảo Chung. Lớp D08CNPM2

Page 6


GVHD: Nguyễn Mạnh Sơn

Hình 1-1 Hàm FirstCanditdate

Hình 1-2 Hàm FirstPatternGen

SVTH: Đặng Bảo Chung. Lớp D08CNPM2

Page 7



GVHD: Nguyễn Mạnh Sơn

Hình 1-3 Hàm CandiateGen

Hình 1-4 Hàm PatternGen

SVTH: Đặng Bảo Chung. Lớp D08CNPM2

Page 8


GVHD: Nguyễn Mạnh Sơn

Hình 1-5 Hàm JoinStep

Hình 1-6 Hàm PruneStep

SVTH: Đặng Bảo Chung. Lớp D08CNPM2

Page 9


GVHD: Nguyễn Mạnh Sơn

CHƯƠNG 2: TỔNG QUAN VỀ TỔNG HỢP TIẾNG NĨI TỪ VĂN BẢN
2.1 Giới thiệu bài tốn tổng hợp tiếng nói từ văn bản
Tiếng nói là một phương tiện trao đổi thơng tin của con người. Tiếng nói được tạo ra
từ tư duy của con người: trung khu thần kinh điều khiển hệ thống
phát âm làm việc tạo ra âm thanh.

Tiếng nói được phân biệt với các âm thanh khác bởi các đặc tính âm học có nguồn gốc
từ cơ chế tạo tiếng nói.Về bản chất, tiếng nói là sự dao động của khơng khí có mang theo
thơng tin. Các dao động này tạo thành những áp lực đến tai và được tai phát hiện, phân tích
và chuyển kết quả đến trung khu thần kinh. Lúc này tại trung khu thần kinh, thông tin được tái
tạo lại dưới dạng tư duy logic mà con người có thể hiểu được.
Tín hiệu tiếng nói được tạo thành bởi các chuỗi các âm vị liên tiếp. Sự sắp xếp của các
âm vị được chi phối bởi các quy tắc của ngôn ngữ. Việc nghiên cứu một cách chi tiết về
những quy tắc này cũng như những khía cạnh khác bên trong tiếng nói thuộc về chun ngành
ngơn ngữ. Việc phân loại các âm vị của tiếng nói thuộc về chuyên ngành ngữ âm học. Khi
nghiên cứu các mơ hình tốn học của cơchếtạo tiếng nói, việc nghiên cứu vềcác âm vịlà rất
cần thiết.
Như vậy, tổng hợp tiếng nói là việc tạo ra tiếng nói của con người một cách nhân tạo.
Một hệ thống máy tính thực hiện mục đích này được gọi là một hệ thống tổng hợp tiếng nói.
Tổng hợp tiếng nói có thể được thực hiện bằng bằng phần mềm hay nhúng vào phần cứng
của máy tính.
Việc tổng hợp tiếng nói có thể được thực hiện bằng nhiều phương pháp. Phương pháp
phổ biển nhất hiện nay là phương pháp tổng hợp bằng cách ghép nối các đoạn tiếng nói nhỏ
hơn được lưu trữ trong cơ sở dữ liệu. Việc lưu trữ cơ sở dữ liệu nhiều hayít làm ảnh hưởng
rất lớn đến kết quả thu được tốt hay không. Đơi khi, vì mục đích cần phải giảm độ lớn của cơ
sở dữ liệu, người ta chấp nhận làm giảm chất lượng của tiếng nói thu được trong một mức cho
phép.
Chất lượng của một hệ thống tổng hợp tiếng nói được đánh giá dựa trên độ “giống”
đối với tiếng nói của người thật và khả năng để người nghe có thể hiểu được hết ý nghĩa của
văn bản.
Một hệ thống chuyển văn bản thành tiếng nói (tiếng Anh là Text To Speech) là một hệ
thống có đầu vào là một văn bản và đầu ra là một sóng âm thanh.
2.2 Ý nghĩa của tổng hợp tiếng nói
Bài tốn này có rất nhiều ý nghĩa thực tiễn. Trên thế giới, TTS tiếng Anh có
những ứng dụng hết sức thành cơng:
 Giúp đỡ người tàn tật: Đây là ứng dụng có ý nghĩa lớn nhất của TTS. Trước đây,

người ta đã từng có các loại băng ghi âm các cuốn truyện hay sách dành cho người
tàn tật. Tuy nhiên số lượng những loại sách, truyện này khơng nhiều vì cơng việc
được hiện một cách thủ công và tốn rất nhiều thời gian. Với sự giúp đỡcủa các hệ
thống TTS, công việc được làm tự động và cho hiệu quả rất cao.

SVTH: Đặng Bảo Chung. Lớp D08CNPM2

Page 10


GVHD: Nguyễn Mạnh Sơn






Các thiết bị truyền thông đa phương tiện: Với sự phát triển và thành công vượt
bậc của TTS cho tiếng Anh, các phần mềm để học tiếng Anh hay các từ điển điện
tử cũng đã sử dụng các hệ thống TTS.Ngồi ra, các trị chơi điện tử hiện này đã
ứng dụng công nghệ này rất rộng rãi.
Trong truyền thông: Một trong những nguyên nhân gây ra nhiều tai nạn xe hơi là
tài xế vừa lái xe vừa đọc tin nhắn. Sự với sự hỗ trợ của TTS, người lái xe hồn
tồn có thể tập trung vào việc lái xe mà vẫn nghe được tin nhắn mình nhận được.
Ngồi ra, khi cơng nghệ GPRS chưa phát triển thì việc check email khi phải đi
công tác tới một khu vực chưa phát triển gặp rất nhiều khó khắn. Khi đó người ta
đã có những phần mềm sử dụng TTS để check email qua điện thoại di động.
Hiện nay, ở Việt Nam việc sử dụng các hệ thống TTS vẫn cịn chưa nhiều. Chủ
yếu là việc đọc các thơng báo tại các nhà ga, sân bay hay tại cơ quan nhà nước có
hệ thống xếp hàng.


2.3 Vấn đề tổng hợp tiếng nói ở Việt Nam
Tổng hợp tiếng nói ở Việt Nam cũng đã được nghiên cứu từ khá lâu. Hiện nay có hai
chương trình thành cơng hơn cả là VnSpeech và VietSound.
Phần mềm VnSpeech là hệ thống tổng hợp tiếng nói đầu tiên của Tiếng Việt, phần
mềm này sử dụng phương pháp tổng hợp Formant. Hệ thống này có thể đọc được hầu hết các
âm tiết tiếng Việt ở mức nghe rõ tuy vậy, mức độ tự nhiên không cao.
Phần mềm VietSound là phần mềm được phát triển tại đại học Bách Khoa Thành phố
Hồ Chí Minh. Phần mềm này sử dụng giải thuật TD-PSOLA dùng để tổng hợp các nguyên âm
đơn và phương pháp tổng hợp FORMANT để tổng hợp các phụ âm, nguyên âm và âm vần
đơn giản. Phần mềm này cũng chưa đạt đến mức độ tự nhiên gần giống với tiếng nói con
người.
Cả hai phần mềm trên đều có nhược điểm là âm thanh thu được rời rạc, thiếu tự nhiên.
2.4 Các phương pháp tổng hợp tiếng nói
Tổng hợp tiếng nói là phát sinh tiếng nói từ sóng tiếng nói. Trong vài thập niên gần
đây, các bộ tổng hợp tiếng nói có chất lượng ngày càng cao.Tuy nhiên chất lượng của các
phương pháp hiện nay mới chỉ đạt đến mức phù hợp cho một vài ứng dụng, chẳng hạn như đa
phương tiện và truyền thông.
Hiện nay có ba phương pháp tổng hợp tiếng nói. Phương pháp đơn giản nhất để phát
sinh tiếng nói tổng hợp là phát các mẫu tiếng nói đã thu từ tiếng nói tự nhiên (như các từ hoặc
câu). Phương pháp này cho chất lượng tương đối tốt nhưng gặp phải hạn chếlà sốlượng
từvựng trong cơsởdữliệu rất lớn. Bên cạnh đó tiếng nói cũng có thểtạo ra bằng cách mơ phỏng
hệthống phát âm. Phương pháp này cho chất lượng rất tốt nhưng thực hiện khá phức tạp. Một
phương pháp nữa cũng được dùng đểtổng hợp tiếng nói là tổng hợp formant. Các phương
pháp tổng hợp tiếng nói cùng với những đặc điểm cơ bản nhất sẽ được giới thiệu trong phần
tiếp theo.
Quá trình tổng hợp tiếng nói từ văn bản được chia thành 2 mức xử lý:
o High Level Synthesis: Tổng hợp mức cao
o Low Level Synthesis: Tổng hợp mức thấp
SVTH: Đặng Bảo Chung. Lớp D08CNPM2


Page 11


GVHD: Nguyễn Mạnh Sơn

Hình 2-1 Mơ hình tổng hợp tiếng nói
Thơng thường, hệ thống tổng hợp tiếng nói gồm 3 bước:
o Phân tích văn bản
o Phân tích cách đọc
o Tạo ra sóng âm thanh

Hình 2-2 Mơ hình hệ thống tổng hợp tiếng nói
2.4.1 Tổng hợp mức cao
Tổng hợp mức cao là giai đoạn đầu của quá trình tổng hợp, giai đoạn chuyển đổi các
văn bản text thành các đơn vịtiếng nói (ví dụ như diphone). Văn bản được nhập hoặc sao chép
vào, sau đó qua tổng hợp mức thấp sẽthành
tiếng nói.
Tổng hợp mức cao gồm 3 bước:
o Xử lý trước văn bản với các chữ số, các ký tự đặc biệt, chữ viết tắt, và những
từ viết tắt được ghép bằng các chữ đầu của các từ đầy đủ...
o Phân tích cách phát âm của từ, kể cả từ đồng âm khác nghĩa và các tên riêng.
o Phân tích ngữ điệu của tiếng nói.
 Xử lý văn bản
Phân tích văn bản là việc chuẩn hóa một văn bản, chuyển các kí hiệu, các chữ số, các
chữ viết tắt ra thành các câu chữ đầy đủ. Ví dụ như câu: “Nhân Kỷ niệm 30 năm Ngày nhà
giáo Việt Nam (20/11/1982 – 20/11/2012), Học viện CNBCVT đã vui mừng nhận được nhiều
SVTH: Đặng Bảo Chung. Lớp D08CNPM2

Page 12



GVHD: Nguyễn Mạnh Sơn
thư, điện hoa và vinh dự được đón tiếp các đồng chí Lãnh đạo, cá nhân, đồn đại biểu đại diện
cho các cơ quan TW, thành phố, các đơn vị thành viên trong toàn Tập đoàn, các đơn vị bạn,
đối tác trên địa bàn Hà Nội và cả nước đã đến chúc mừng tập thể cán bộ, giảng viên, nghiên
cứu viên của Học Viện nhân ngày Nhà giáo Việt Nam.” sẽ được chuyển thành “Nhân Kỷ
niệm ba mươi năm Ngày nhà giáo Việt Nam hai mươi tháng mười một năm một chín tám hai
– hai mươi tháng mười một năm hai không một hai, Học viện Công nghệ Bưu chính Viễn
thơng đã vui mừng nhận được nhiều thư, điện hoa và vinh dự được đón tiếp các đồng chí
Lãnh đạo, cá nhân, đồn đại biểu đại diện cho các cơ quan Trung ương, thành phố, các đơn vị
thành viên trong toàn Tập đoàn, các đơn vị bạn, đối tác trên địa bàn Hà Nội và cả nước đã đến
chúc mừng tập thể cán bộ, giảng viên, nghiên cứu viên của Học Viện nhân ngày Nhà giáo
Việt Nam”.
Để thực hiện việc phân tích văn bản tốt, ta cần có:
o Một module chuyển số thành dạng chữ viết
o Một module chuyển đổi chữ viết tắt sang chữ viết đầy đủ thông qua một cơ sở
dữ liệu lưu trữ các từ viết tắt đã được định nghĩa
o Một cơ sở dữ liệu các khuôn dạng thông dụng như ngày, tháng , giờ,…
Tuy vậy, ta cũng sẽ gặp phải nhiều khó khăn do những tình huống nhập nhằng. Ví dụ
như cụm “1/2” có thể được hiểu là “ngày mùng một tháng hai” hoặc “một phần hai”. Một ví
dụ khác là khi ta gặp một dãy số “987234321”, ta cần phải xác định xem đây là số đếm (chín
trăm tám mươi bảy triệu hai trăm ba mươi tư nghìn ba trăm hai mươi mốt) hay đây là số điện
thoại (chín tám bảy hai ba bốn ba hai một).Những trường hợp như thế này đỏi hỏi ta phải xác
định được văn cảnh của văn bản đầu vào.
 Phân tích cách phát âm
Với các ngôn ngữ trên thế giới mà việc phát âm không hồn tồn tn theo quy tắc (ví dụ như
tiếng Anh) thì phát âm đúng các từ là một vấn đề khó trong tổng hợp tiếng nói. Đặc biệt với
một ứng dụng điện thoại thì hầu hết các từ đều là tên hoặc là địa chỉ các đường phố và để đọc
đúng những tên này là điều không dễ dàng. Một phương pháp giải quyết là có thể lưu vào một

bảng phát âm đặc biệt, nhưng số lượng sẽ rất lớn. Vì vậy phương pháp trên khơng hiệu quả.
Lúc này việc tạo ra các luật cơ bản để xây dựng nên một từ điển các từ với các luật chuyển từ
sang âm vị (letter-to-phoneme) sẽ hợp lý hơn. Cách tiếp cận này cũng phù hợp với phát âm
bình thường. Khi phân tích, một từ có thể được chia thành các phần độc lập bao gồm tiền tố,
gốc từ, phụ tố.
 Phân tích ngữ điệu
Xác định đúng được ngữ điệu, trọng âm và khoảng thời gian từ văn bản viết có lẽ là
những vấn đề khó khăn nhất trong những năm tới. Các đặc tính này được gọi là ngơn điệu
hoặc những đặc tính siêu đoạn và có thể được xem xét như giai điệu, nhịp điệu và sự nhấn
mạnh của tiếng nói ở mức cảm giác. Ngữ điệu có nghĩa là sự thay đổi của tần số cơ bản trong
thời gian nói. Ngơn điệu của tiếng nói liên tục phụ thuộc vào nhiều yếu tố như nghĩa của các
câu, đặc trưng và cảm xúc của người nói. Ngơn điệu phụ thuộc được mơ tả ở hình dưới đây.

SVTH: Đặng Bảo Chung. Lớp D08CNPM2

Page 13


GVHD: Nguyễn Mạnh Sơn

Hình 2-3 Sự phụ thuộc của ngơn điệu vào các yếu tố
Việc phân tích ngữ điệu thực chất chính là q trình tiền xử lý cho việc tổng hợp tiếng
nói. Vì vậy, q trình này cịn phụ thuộc vào việc chúng ta sẽ sử dụng phương pháp nào để
thực hiện việc tổng hợptiếng nói.
Cũng phải nói thêm rằng tiếng Việt có một thuận lợi rất lớn là mỗi cách viết chỉ có
một cách đọc khơng như tiếng Anh một cách viết có thể có nhiều cách đọc phụ thuộc vào ngữ
cảnh.
Nếu việc tổng hợp tiếng nói được thực hiện bằng các phương pháp ghép nối, thì việc
bắt buộc đối với chúng ta là phải phân chia câu cần tổng hợp thành các đơn vị đã có sẵn trong
cơ sở dữ liệu của chúng ta. Hãy xét ví dụ ta cần tổng hợp câu “Xin chào” bằng phương pháp

ghép nối diphone. Các diphone đã có trong cơ sở dữ liệu là “âm câm –x”, “x –i”, “i –n”, “n
– âm câm”, “âm câm –ch”, “ch –à”, “à –o”. Khi đó ta cần tách đoạn text “Xin chào” thành
“âm câm –x –i –n – âm câm –ch –à –o –âm câm”.
Để tiếng nói tổng hợp thu được chất lượng tốt thì phân tích ngơn điệu là vơ cùng quan
trọng. Ngôn điệu gồm: độ cao thấp, độ dài ngắn, cường độ.
Độ cao thấp (pitch) hay tần số trên một câu phụ thuộc vào nhiều yếu tố trong đó có
loại câu (câu kể, câu hỏi, câu cảm thán); người nói (giới tính, trạng thái cảm xúc). Ví dụ câu
kể thường thấp giọng ở cuối câu còn câu hỏi lại cao giọng ở cuối câu. Người nói là nam
thường nói với độ cao thấp hơn.
Độ dài ngắn (duration) là đặc điểm về thời gian phát âm một từ hay một âm vị. Thông
thường hai tiếng liên tiếp mà tạo thành từ khoảng nghỉ giữa hai tiếng sẽ ngắn hơn hai tiếng
liên tiếp những không tạo thành một từ. Đôi khi, độ dài ngắn cũng được thể hiện khi người
nói muốn nhấn mạnh một từ nào đó trong câu.
Cường độ thể hiện ở độ to nhỏ của tiếng nói. Ở mức âm tiết, các nguyên âm thường
có cường độ mạnh hơn phụ âm. Ở mức cụm, các âm tiết ở phần cuối của cách phát âm có thể
có cường độ yếu hơn.
Một hệ thống tổng hợp tiếng nói cần phân tích được cách đọc ở mức càng gần với thực
tế càng tốt. Đây là mục tiêu của mọi hệ thống TTS cho các ngơn ngữ khác nhau, tuy vậy chưa
có một hệ thống nào có thể thực hiện hồn hảo điều này.
2.4.2 Tổng hợp mức thấp
SVTH: Đặng Bảo Chung. Lớp D08CNPM2

Page 14


GVHD: Nguyễn Mạnh Sơn
Tổng hợp mức thấp là quá trình kết hợp các đoạn tín hiệu (ví dụ như diphone). Các
đoạn tín hiệu này đã được phân tích, xử lý qua mức cao (xử lý văn bản, ngữ điệu).
Đối với phương pháp tổng hợp bằng cách mô phỏng hệ thống phát âm của con người
thì sự chọn lựa dữ liệu và thực thi các luật là rất phức tạp. Hầu như khơng thể mơ phỏng dưới

dạng mơ hình khối, sự chuyển động của lưỡi... một cách hoàn hảo. Lúc này, sự có mặt của
máy tính đã trợ giúp một phần đáng kể.
Với tổng hợp formant thì tập luật để điều khiển tần số cơ bản, biên độ và đặc trưng của
tín hiệu nguồn lại rất lớn. Vì vậy làm mất đi tính tự nhiên vốn có. Đặc biệt, âm mũi được xem
là một vấn đề lớn đối với tổng hợp formant.
Cịn với tổng hợp ghép nối thì việc thu thập các mẫu tín hiệu và gán nhãn mất rất
nhiều thời gian, và có thể làm cho cơ sở dữ liệu rất lớn. Tuy nhiên số lượng dữ liệu có thể
giảm xuống đáng kể nếu sử dụng những phương pháp nén dữ liệu thích hợp. Bên cạnh đó sự
khơng đồng bộ các điểm ghép nối cũng có thể làm tín hiệu tổng hợp bị méo. Đối với những
đơn vị ghép nối dài như từ hoặc âm vị thì hiệu quả kết hợp là một vấn đề, ngoài ra bộ nhớ và
hệ thống cũng là một khó khăn cần giải quyết.
2.4.3 Tạo ra sóng âm thanh
Đây là q trình trực tiếp tạo ra tín hiệu âm thanh. Chất lượng tiếng nói tổng hợp được
phụ thuộc rất nhiều vào phần này. Trên thế giới đã có rất nhiều phương pháp được đưa ra để
tổng hợp tiếng nói như phương pháp tổng hợp Formant, phương pháp ghép nối Diphone, …
Các phương pháp có thể được chia làm 4 nhóm:
o Phương pháp tổng hợp dựa trên hệ luật: phương pháp Formant
o Phương pháp tổng hợp bằng ghép nối:
 Phương pháp tổng hợp bằng ghép nối phones
 Phương pháp tổng hợp bằng ghép nối nửa phones
 Phương pháp tổng hợp bằng ghép nối diphone
o Phương pháp tổng hợp dựa trên các mơ hình:
 Phương pháp tổng hợp dựa trên mơ hình Markov ẩn (HMM)
 Phương pháp tổng hợp dựa trên mơ hình âm tiếng nói và nhiễu
Harmonic plus Noise –HNM)
o Phương pháp tổng hợp dựa trên mô phỏng phát âm
2.4.4 Phương pháp tổng hợp Formant
Phương pháp này cịn có tên gọi khác là phương pháp tổng hợp dựa trên hệ luật (rulebased). Đây là phương phápkhông dựa vào những đoạn tiếng nói đã thu sẵn của con người.
Phương pháp tổng hợp Formant sẽ sử dụng tiếng nói tổng hợp được tạo ra dựa trên cơ sở lý
thuyết âm học của q trình tạo tiếng nói. Phổ biến nhất hiện nay chính là mơ hình nguồn âm

bộ lọc (source-filter model) để tạo ra được tín hiệu tiếng nói.
Formant là một sự cộng hưởng âm thanh. Ở đây chúng ta có thể hiểu tín hiệu tiếng
nói là kết quả của nguồn kích hữu thanh hoặc vơ thanh được cộng hưởng hay phản cộng
hưởng của tuyến âm, sau đó ảnh hưởng bởi sự tán xạ của tiếng nói qua môi và mũi.
Phương pháp tổng hợp Formant đầu tiên được Walter Lawrence đưa ra vào năm 1953,
phương pháp này sử dụng 3 formant được nối song song. 3 formant cũng là số lượng formant
SVTH: Đặng Bảo Chung. Lớp D08CNPM2

Page 15


GVHD: Nguyễn Mạnh Sơn
tối thiểu để có thể tạo ra được một tiếng nói nghe được. Dưới đây là một mơ hình 3 formant
được nối nối tiếp:

Hình 2-4 Mơ hình 3 Formant nối tiếp
Đầu vào của mơ hình nàylà 12 tham số: tần số chung (F0), 3 tần số của các Formant
và 3 biên độ của các Formant, cường độ của tần số thấp, cường độ của tần số cao, … Do có
nhiều tham số nên việc điều khiển là rất phức tạp. Tuy vậy, phương pháp này mới chỉ đưa ra
được một tiếng nói với chất lượng nghe được. Tiếng nói vẫn cịn rời rạc, khơng trơn chu, liền
mạch hay nói cách khác là khơng tự nhiên.
Năm1980, Dennis Klatt đã đưa ra một mơ hình phức tạp gồm 5 formant và cần tới 39
tham số điều khiển và được cập nhật 5 mili giây một lần. Dưới đây là mơ hình được Klatt
đưa ra [Xem Hình 2-5 Mơ hình 5 Formant của Klatt]:

Hình 2-5 Mơ hình 5 Formant của Klatt
Cho đến nay, đây vẫn là mơ hình tốt nhất cho phương pháp này. Phương pháp
formant có những đặc điểm nổi trội so với các phương pháp khác là không cần phải lưu trữ cơ
sở dữ liệu, thời gian tổng hợp là rất nhanh. Đây là phương pháp hiện nay rất thích hợp cho
những ứng dụng trên các thiết bị như PDA, PC Pocket vìđặc điểm của những thiết bị này là

phần cứng yếu.
Tuy nhiên, phương pháp này về mặt chất lượng của tiếng nói vẫn khơng tốt. Tiếng nói
vẫn bị rời rạc, không tự nhiên.Hơn nữa, phương pháp này rất khó xây dựng. Ta cần phải có
một sự hiểu biết sâu sắc về mặt âm học mới có thể thực hiện được phương pháp này.
SVTH: Đặng Bảo Chung. Lớp D08CNPM2

Page 16


GVHD: Nguyễn Mạnh Sơn

2.4.5 Các phương pháp tổng hợp ghép nối
(i) Phương pháp tổng hợp ghép nối các tiếng
Để tổng hợp tiếng nói của một đoạn văn bản thì ta sẽ tách đoạn văn đó ra thành
từng từ một. Sử dụng một cơ sở dữ liệu được xây dựng sẵn là một bộ phát âm tất cả
các từ của tiếng Việt sau đó khi cần đọc từ nào thì lấy từ cơ sở dữ liệu ra để đọc. Ví
dụ, muốn tổng hợp đoạn văn bản sau: “công nghệ thông tin” thì ta sẽ tách ra thành
các từ “cơng”, “nghệ”, “thơng”, “tin”. Lấy từng mẫu phát âm của từng từ này ở cơ sở
dữ liệu rồi ghép nối chúng với nhau.
Rõ ràng đây là một phương án không khả thi, đối với tiếng Việt, số lượng tiếng
là rất lớn, điều này làm cho cơ sở dữ liệu phải lưu trữ là rất lớn. Một nhược điểm nữa
của cách làm này là giữa các tiếng sẽ khơng có độ trơn, do các tiếng được thu riêng
biệt tại các thời điểm khác nhau.
(ii) Phương pháp tổng hợp bằng ghép nối các phone
Phone: Là âm vị hay chính là đơn vị âm nhỏ nhất tạo ra tiếng nói. Thơng
thường đối với mỗi ngơn ngữ thì mỗi chữ cái trong bảng chữ cái là một phone. Trong
tiếng Việt, ngoài các phone là chữ cái ra cịn có các phone là tổ hợp của các chữ cái
như: th; gh; kh; gi; nh; ng; ngh…Âm câm (silence) có thể coi là một phone đặc biệt.
Thơng thường mỗi âm vị có một cách đọc riêng, tuy nhiên khơng phải mỗi cách đọc
chỉ tương ứng với một âm vị. Trong tiếng Việt, một số âm vị có cách đọc giống nhau

tuy cách viết khác nhau (chẳng hạn: ng và ngh, I và y, g và gh… ).
Số lượng phone của tiếng Việt có dấu là 95 phone và cơ sở dữ liệu của ta chỉ
cần bao gồm 95 phone này. Có thể thấy ngay cơ sở dữ liệu nhỏ là một ưu điểm lớn
của phương pháp này.
Tuy vậy, chất lượng tiếng nói tổng hợp của phương pháp này lại khơng cao.
Hãy xét ví dụ cần tổng hợp câu “Hai bạn đó hát hay”. Từ “hai” được ghép từ các
phone “h”, “a”, “i”. Từ “hay” được ghép từ các phone “h”, “a”, “y”. Rõ ràng trong
cơ sở dữ liệu cách đọc các phone, “h”, “a”, “i”, “y” thì phone “i” và phone “y” có
cách đọc giống hệt nhaunhưng khi ghép với các phone khác lại cho ta hai cách đọc
hoàn tồn khác nhau. Cách tổng hợp này đã khơng đạt được yêu cầu đầu tiên của
một hệ thống tổng hợp tiếng nói là “tiếng nói sinh ra phải hiểu được”, nó đã làm
thay đổi hồn tồn ý nghĩa của văn bản.
(iii) Phương pháp tổng hợp bằng ghép nối diphone
Đây là phương pháp được phát triển từnhững năm 70 của thế kỷ trước. Cho tới
nay, phương pháp này là một trong những phương pháp hiệu quả nhất và đã được
ứng dụng rộng rãi cho nhiều ngôn ngữ.
Diphone: Một diphone được bắt đầu từ điểm giữa của phone trước đến điểm
giữa của phone sau trong hai phone đứng cạnh nhau của một cặp phone. Với một từ
có thể có một, hai hoặc nhiều diphone. Ví dụ nhưtừ bachỉ có một diphone là b –a
nhưng từ ban có hai diphone là b –a và a – n. Các từ chỉ có một phone được coi là
một diphone của phone đó với âm câm, chẳng hạn từ a được coi là một diphone của
asilence.
Phương pháp tổng hợp diphone được thực hiện theo 4 bước:
 Liệt kê tất cả các phone và các đặc tính của các phone này.
SVTH: Đặng Bảo Chung. Lớp D08CNPM2

Page 17


GVHD: Nguyễn Mạnh Sơn






Liệt kê tất cả các cách ghép nối các cặp phone-phone để tạo
thành diphone.Do có những cặp phone-phone không xuất hiện
nên số lượng diphone không bao giờ quá bình phương số lượng
phone.
Xây dựng cơ sở dữ liệu cách đọc cho các diphone này.
Ghép nối các diphone: đây chính là q trình quan trọng nhất
của phương pháp này. Ở đây, thuật toán thường dùng nhất là
đồng bộ điểm pitch.

2.5 API tổng hợp tiếng nói của Google
Một trong những tính năng nổi bật nhất của Google Translate là khả năng Text To
Speech cho phép bạn nghe các bản dịch. Người dùng có để nhập một đoạn văn bản trong lĩnh
vực nào đó và sau đó hệ thống sẽ dịch nó sang ngơn ngữ mà người dùng mong muốn. Người
dùng sẽ thấy một biểu tượng loa bên dưới đoạn văn bản đã được dịch. Người dùng có thể
nghe đoạn văn bản dịch bằng cách nhấp vào biểu tượng loa này.

Hình 2-6 Chức năng của Google Translate
Ban đầu Google Translate hỗ trợ tiếng anh và bản dịch tiếng địa phương Haiti. Sau đó
đến tiếng Pháp, Đức, Ý, Hindi và Tây Ban Nha có thể nghe được đoạn dịch. Hiện tại đã có 27
ngơn ngữ được Google Translate hỗ trợ phát âm. Bao gồm các ngôn ngữ sau: Afrikaans,
Albania, Catalan, Trung Quốc, Croatia, Cộng hòa Séc, Đan Mạch, Hà Lan, Phần Lan, Hy
Lạp, Hungary, Iceland, Indonesia, Latvia, Macedonia, Na Uy, Ba Lan, Bồ Đào Nha, Rumani,
Nga, Serbian, Slovak, Swahili, Thụy Điển , Thổ Nhĩ Kỳ, Việt Nam và Wales.
SVTH: Đặng Bảo Chung. Lớp D08CNPM2


Page 18


GVHD: Nguyễn Mạnh Sơn

Google khơng chính thức cung cấp API nào cho dịch vụ Google Text To Speech. Tuy
nhiên người ta nhận thấy rằng, khi truy cập vào địa chỉ có định dạng như sau:
/>0chính%20viễn%20thơng. Trong đó tham số “vi” có thể thay bằng bất cứ mã (code) ngơn ngữ
nào trong 27 ngơn ngữ mà Google hỗ trợ. Tham số
“học%20viện%20cơng%20nghệ%20bưu%20chính%20viễn%20thơng” có thể được thay thế
bằng bất cứ đoạn văn bản nào mà người dùng muốn nghe. Địa chỉ này sẽ cung cấp cho chúng
ta một tệp tin định dạng mp3 chứa nội dung của đoạn văn bản.

Hình 2-7 Giao diện Google Text To Speech
Google Text To Speech đối với các ngơn ngữ lập trình:
1. Đối với ngơn ngữ lập trình java:
Bộ thư viện Google Translate Text To Speech được đóng gói với tên gtranslatespi.jar
và cung cấp cho chúng ta các phương thức hữu ích để sử dụng trong lập trình.
 Phương thức dịch đoạn văn bản:
Translator translate = Translator.getInstance();
String text = translate.translate("I am programmer", Language.ENGLISH,
Language.PORTUGUESE);
System.out.println(text); //Eu sou programador

Bảng 2-1 Phương thức dịch đoạn văn bản

Đoạn mã trên dịch đoạn văn bản “I am programmer” từ ngôn ngữ tiếng
Anh sang tiếng Bồ Đào Nha và kết quả cho ra là “Eu sou programador”
 Phương thức nhận dạng ngôn ngữ
Translator translate = Translator.getInstance();

String prefix = translate.detect("I am a bus");
System.out.println(prefix); //en

SVTH: Đặng Bảo Chung. Lớp D08CNPM2

Page 19


×