xây dựng ứng dụng tổng hợp tiếng nói tiếng việt trên hệ điều hành android
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
- -BÁO CÁO QUÁ TRÌNH ĐỒ ÁN TỐT NGHIỆP
Đề tài :
Xây dựng ứng dụng tổng hợp tiếng nói “Tiếng Việt”trên hệ điều
hành Android
Giảng viên hướng dẫn : Trịnh Văn Loan Sinh viên thực hiện : Phạm Bắc Anh
Lớp : KTMT-TT1 – K55
SHSV : 20101109
HÀ NỘI 3/2015
Trang 2M c L c ục Lục ục Lục
Chương 1: Tổng quan về tổng hợp tiếng nói 2
1.1 Giới thiệu 2
1.2 Ý nghĩa của TTS 2
1.3 Quá trình phát triển của TTS trên thế giới 3
1.4 TTS ở Việt Nam 3
Chương 2: Phương pháp tổng hợp tiếng nói 4
2.1 mô hình chung của một hệ thống TTS 4
2.1.1 Phân tích văn bản 4
2.1.2 Phân tích cách đọc 5
2.1.3 Tạo ra sóng âm thanh 6
2.2 Phương pháp tổng hợp Formant 6
2.3 Phương pháp tổng hợp bằng ghép nối 8
2.3.1 Phương pháp tổng hợp bằng ghép nối các tiếng 8
2.3.2 Phương pháp tổng hợp bằng ghép nối các phone 8
2.3.3 Phương pháp tổng hợp bằng ghép nối diphone 9
2.4 Phương pháp mô phỏng phát âm 12
2.5 Đặc điểm của tiếng việt 13
2.6 Kết luận 14
Chương 3: Xây dựng phần mềm 15
3.1 Các công việc phải thực hiện để xây dựng chương trình 15
Chương 4:Tổng kết 15
Trang 3Chương 1: Tổng quan về tổng hợp tiếng nói
1.1 Giới thiệu
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, trong khóa luận này sẽ được viết tắt là TTS) 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
1.2 Ý nghĩa của TTS
Bài toán này có rất nhiều ý nghĩa thực tiễn:
Giúp đỡ người tàn tật: đây là ứng dụng có ý nghĩa 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
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 Ngoà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 hoàn toà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 Ngoài ra, khi công nghệ GPRS chưa phát triển thì việc check email khi phải đi
Trang 4cô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
1.3 Quá trình phát triển của TTS trên thế giới
Tiếng nói nhân tạo đã được nghiên cứu trong một thời gian dài và có sự tham gia của nhiều nhà khoa học Những người đầu tiên có ý tưởng về một chiếc máy có khả năng nói được là Gerbert of Aurillac, Albertus Magnus (1198 – 1280) và Roger Bacon (1214 – 1294)
Tuy vậy phải tới năm 1779, nhà khoa học người Đan Mạch Christian Kratzenstein mới xây dựng thành công mô hình cơ khí tổng hợp 5 âm /a/, /e/, /i/, /o/, / u/ Thiết bị này vẫn chưa tổng hợp được một câu nói hoàn chỉnh
Thiết bị đầu tiên được xem như một bộ tổng hợp tiếng nói là VODER (Voice Operating Demonstrator) được nhà khoa học người Mỹ Homer Dulley giới thiệu năm
1939 tại New York Hệ thống này có thể tổng hợp các câu đơn giản những cần sự điều khiển hết sức phức tạp
Trong mấy thập kỷ qua, các hệ thống TTS đã có những bước phát triển vượt bậc Chất lượng của những hệ thống TTS được phát triển ngày càng cao và đã được ứng dụng với các mục đích thương mại Đa số các hệ thống này dành cho tiếng Anh Ngoài ra, cũng có một số các ngôn ngữ khác như tiếng Trung, tiếng Tây Ban Nha, … nhưng tiếng Anh vẫn được nghiên cứu nhiều nhất vì vậy tiếng Anh có hệ thống TTS chuẩn mực hơn cả
1.4 TTS ở Việt Nam
TTS ở Việt Nam cũng được nghiên cứu từ khá lâu Hiện nay có 2 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
Trang 5Cả 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
Chương 2: Phương pháp tổng hợp tiếng nói
2.1 mô hình chung của một hệ thống TTS
Thông thường hệ thống TTS gồm 3 bước:
Phân tích văn bản
Phân tích cách đọc
Tạo ra sóng âm thanh
Hình 1 Mô hình một hệ thống tổng hợp tiếng nói
2.1.1 Phân tích văn bản
Phân tích văn bản là việc chuyển các kí hiệu, các số, các chữ viết tắt ra thành các câu chữ đầy đủ Ví dụ như câu “Phong trào sinh viên tình nguyện do TW Đoàn TNCS Hồ Chí Minh phát động đã được hưởng ứng của hơn 10000 sinh viên trên cả
nước” cần phải được chuyển thành “Phong trào sinh viên tình nguyện do Trung
Ương Đoàn Thanh niên Cộng sản Hồ Chí Minh phát động đã được hưởng ứng của
hơn mười nghìn sinh viên trên cả nước”.
Để thực hiện việc phân tích văn bản tốt, ta cần có:
Một module chuyển số thành dạng chữ viết
Một cơ sở dữ liệu các chữ viết tắt thông dụng
Một cơ sở dữ liệu các khuôn dạng thông dụng như ngày tháng, giờ,
Trang 6Tuy 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ố “38533580”, ta cần phải xác định xem đây là số đếm (ba mươi tám triệu năm trăm ba mươi ba ngàn năm trăm tám mươi) hay đây là số điện thoại (ba tám năm ba ba năm tám không) 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
2.1.2 Phân tích cách đọc
Việc phân tích cách đọc thực chất chính là quá trình tiền xử lý cho việc tổng hợp tiếng nói Vì vậy, quá 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ợp tiế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 được 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
Trang 7Một hệ thống TTS 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 hoàn hảo điều này
2.1.3 Tạo ra sóng âm thanh
Đây là quá 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:
Phương pháp tổng hợp dựa trên hệ luật: phương pháp Formant
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
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)
Phương pháp tổng hợp dựa trên mô phỏng phát âm
2.2 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 (rule-based) Đây là phương pháp khô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 quá 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 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:
Trang 8Hình 2 Mô hình 3 formant nối tiếp
Đầu vào của mô hình này là 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ăm 1980, 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:
Hình 3 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
Trang 9lư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
2.3 Phương pháp tổng hợp bằng ghép nối
Trong các phương pháp này, tiếng nói sẽ được tổng hợp từ các đoạn tiếng nói nhỏ hơn đã được lưu trữ sẵn trong cơ sở dữ liệu Đối với tiếng Việt, đó có thể là: phone, diphone, tiếng, …
2.3.1 Phương pháp tổng hợp bằng ghép nối các tiếng
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
2.3.2 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 nhau nhưng khi ghép với các phone khác lại cho ta hai cách đọc hoàn toà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
Trang 10tổng hợp tiếng nói là “tiếng nói sinh ra phải hiểu được”, nó đã làm thay đổi hoàn toàn
ý nghĩa của văn bản
2.3.3 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ừ ba chỉ 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
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à quá 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.3.3.1 Điển pitch
Điểm pitch (pitch mark) là điểm có tần số là cực đại địa phương trên một sóng
âm Dưới đây là hình ảnh ví dụ về điểm pitch trong phone /u/