Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 45 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
45
Dung lượng
1,15 MB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Lê Đôn Khuê THỬ NGHIỆM MỘT PHƯƠNG PHÁP TỔNG HỢP TIẾNG NĨI TỪ VĂN BẢN TIẾNG VIỆT KHỐ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Cơng nghệ thông tin HÀ NỘI - 2009 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CƠNG NGHỆ Lê Đơn Kh THỬ NGHIỆM MỘT PHƯƠNG PHÁP TỔNG HỢP TIẾNG NÓI TIẾNG VIỆT TỪ VĂN BẢN KHỐ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công nghệ thông tin Cán hướng dẫn: TS Bùi Thế Duy HÀ NỘI - 2009 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Lời cảm ơn Trước tiên, muốn gửi lời cảm ơn sâu sắc đến thầy giáo chủ nhiệm, TS Bùi Thế Duy, người tận tình hướng dẫn em suốt trình nghiên cứu khóa luận tốt nghiệp q trình học tập Đại học Công nghệ Tôi xin gửi lời cảm ơn sâu sắc đến tất thầy cô giáo trường đại học Công nghệ, kiến thức kinh nghiệm quý báu mà nhận từ thầy cô suốt bốn năm ngồi giảng đường hành trang tốt giúp vững bước nghiệp Tơi gửi lời cảm ơn đến tất bạn bè, người đồng hành, động viên, giúp đỡ suốt bốn năm đại học Với bạn K50CA, K50KHMT bạn phịng thí nghiệm tương tác người máy, trao đổi, góp ý bạn khóa luận thực giúp nhiều Cuối cùng, xin gửi lời tri ân đến gia đình, người thân yêu tôi, quan tâm, tạo điều kiện cho Sinh viên Lê Đôn Khuê -i- LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Tóm tắt Kể từ đời, máy tính cơng cụ giúp đỡ người vơ hữu ích Mục tiêu biến máy tính thành người làm việc khơng biết mệt mỏi dần hồn thiện Một trọng yêu cầu để thực mục tiêu khả máy tính đọc văn hay gọi tổng hợp tiếng nói Trong năm qua, có nhiều nghiên cứu xung quanh đề tài tổng hợp tiếng nói Từ đây, số hệ thống tổng hợp tiếng nói đời đạt hiệu tốt Tuy vậy, hệ thống chủ yếu phục vụ cho ngôn ngữ thông dụng tiếng Anh, tiếng Pháp, … tiếng Việt, hệ thống tổng hợp tiếng nói chưa phát triển nhiều Trong khóa luận này, muốn thử nghiệm hệ thống tổng hợp tiếng nói dành cho tiếng Việt - ii - LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Mục lục Lời cảm ơn i Tóm tắt ii Mục lục iii Danh mục hình ảnh .v Danh mục bảng biểu vi Chương Tổng quan hệ thống tổng hợp tiếng nói 1.1 Giới thiệu .1 1.2 Ý nghĩa TTS 1.3 Quá trình phát triển TTS giới 1.4 TTS Việt Nam 1.5 Mục đích khóa luận 1.6 Cấu trúc khóa luận Chương Các phương pháp tổng hợp tiếng nói 2.1 Mơ hình chung hệ thống TTS 2.1.1 Phân tích văn 2.1.2 Phân tích cách đọc 2.1.3 Tạo sóng âm 2.2 Phương pháp tổng hợp Formant .6 2.3 Các phương pháp tổng hợp ghép nối 2.3.1 Phương pháp tổng hợp ghép nối tiếng .8 2.3.2 Phương pháp tổng hợp ghép nối phone .9 2.3.3 Phương pháp tổng hợp ghép nối diphone 2.3.3.1 Điểm pitch .10 2.3.3.2 Đồng điểm pitch theo miền thời gian TD-PSOLA 11 2.4 Phương pháp mô phát âm 12 - iii - LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 2.5 Đặc điểm tiếng Việt .13 2.6 Kết luận 14 Chương Xây dựng TTS tiếng Việt sử dụng phương pháp ghép nối diphone 16 3.1 Các công cụ thực 16 3.2 Cài đặt tạo file khuôn mẫu .17 3.3 Định nghĩa tập phone tiếng Việt 17 3.4 Xây dựng tập diphone: 22 3.4.1 Diphone âm câm phụ âm: 23 3.4.2 Diphone âm câm nguyên âm 23 3.4.3 Diphone phụ âm âm câm 24 3.4.4 Diphone nguyên âm âm câm 24 3.4.5 Diphone phụ âm – nguyên âm .25 3.4.6 Diphone nguyên âm – phụ âm .26 3.5 Carrier ý nghĩa 26 3.6 Ánh xạ phone tiếng Việt sang tiếng Anh 28 3.7 Thu âm .29 3.8 Đánh nhãn diphone 30 3.9 Tìm pitchmark 30 3.9.1 Các bước để lấy pitchmark tốt .31 3.10 Kiểm thử 32 3.11 Thêm dấu cho tiếng Việt 32 Chương Tổng kết 34 4.1 Kết thu 34 4.2 Các khó khăn thách thức 34 4.3 Các hướng nghiên cứu phát triển 35 Tài liệu tham khảo 36 - iv - LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Danh mục hình ảnh Hình Mơ hình hệ thống tổng hợp tiếng nói .4 Hình Mơ hình formant nối tiếp .7 Hình Mơ hình formant Klatt Hình Điểm pitch phone 10 Hình Ghép nối hai diphone .11 Hình Thuật toán TD-PSOLA 12 Hình Sự thay đổi giá trị F0 14 Hình Sự thay đổi giá trị F0 với chữ "chi" .14 Hình Biểu diễn dạng sóng carrier đánh nhãn diphone 30 Hình 10 Pitchmark sóng "taa taa taa" 32 -v- LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Danh mục bảng biểu Bảng Các nguyên âm đơn tiếng Việt tính chất 18 Bảng Các ngun âm đơi tiếng Việt tính chất .19 Bảng Các phụ âm tiếng Việt tính chất 21 Bảng Một cách liệt kê diphone 22 Bảng Phân loại phone .22 Bảng Diphone âm câm – phụ âm 23 Bảng Diphone âm câm – nguyên âm .23 Bảng Diphone phụ âm – âm câm 24 Bảng Diphone nguyên âm – âm câm .24 Bảng 10 Diphone phụ âm – nguyên âm 25 Bảng 11 Diphone phụ âm – nguyên âm 25 Bảng 12 Diphone nguyên âm – phụ âm 26 Bảng 13 Khai báo carrier .27 Bảng 14 Ví dụ ánh xạ phone tiếng Việt sang phone tiếng Anh 28 - vi - LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Chương Tổng quan hệ thống tổng hợp tiếng nói 1.1 Giới thiệu Tổng hợp tiếng nói việc tạo tiếng nói người cách nhân tạo Một hệ thống máy tính thực mục đích gọi hệ thống tổng hợp tiếng nói Tổng hợp tiếng nói thực bằng phần mềm hay nhúng vào phần cứng máy tính Việc tổng hợp tiếng nói thực nhiều phương pháp Phương pháp phổ biển phương pháp tổng hợp cách ghép nối đoạn tiếng nói nhỏ lưu trữ sở liệu Việc lưu trữ sở liệu nhiều hay làm ảnh hưởng lớn đến kết thu tốt hay khơng Đơi khi, mục đích cần phải giảm độ lớn sở liệu, người ta chấp nhận làm giảm chất lượng tiếng nói thu mức cho phép Chất lượng hệ thống tổng hợp tiếng nói đánh giá dựa độ “giống” tiếng nói người thật khả để người nghe hiểu nghĩa văn Một hệ thống chuyển văn thành tiếng nói (tiếng Anh Text To Speech, khóa luận viết tắt TTS) hệ thống có đầu vào văn đầu sóng âm 1.2 Ý nghĩa TTS Bài tốn có nhiều ý nghĩa thực tiễn Trên giới, TTS tiếng Anh có ứng dụng thành công: Giúp đỡ người tàn tật: Đây ứng dụng có ý nghĩa lớn TTS Trước đây, người ta có loại băng ghi âm truyện hay sách dành cho người tàn tật Tuy nhiên số lượng loại sách, truyện khơng nhiều cơng việc cách thủ công tốn nhiều thời gian Với giúp đỡ hệ thống TTS, công việc làm tự động cho hiệu cao Các thiết bị truyền thông đa phương tiện: Với phát triển thành công vượt bậc TTS cho tiếng Anh, phần mềm để học tiếng Anh hay từ điển điện tử sử dụng hệ thống TTS Ngồi ra, trị chơi -1- LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com điện tử ứng dụng công nghệ rộng rãi Trong truyền thông: Một nguyên nhân gây nhiều tai nạn xe tài xế vừa lái xe vừa đọc tin nhắn Sự với hỗ trợ TTS, người lái xe hồn tồn tập trung vào việc lái xe mà nghe tin nhắn nhận Ngồi ra, cơng nghệ GPRS chưa phát triển việc check email phải công tác tới khu vực chưa phát triển gặp nhiều khó khắn Khi người ta có 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 hệ thống TTS chưa nhiều Chủ yếu việc đọc thông báo nhà ga, sân bay hay quan nhà nước có hệ thống xếp hàng 1.3 Q trình phát triển TTS giới Tiếng nói nhân tạo nghiên cứu thời gian dài có tham gia nhiều nhà khoa học Những người có ý tưởng máy có khả nói Gerbert of Aurillac, Albertus Magnus (1198 – 1280) Roger Bacon (1214 – 1294) [18] Tuy phải tới năm 1779, nhà khoa học người Đan Mạch Christian Kratzenstein xây dựng thành cơng mơ hình khí tổng hợp âm /a/, /e/, /i/, /o/, /u/ Thiết bị chưa tổng hợp câu nói hồn chỉnh Thiết bị xem tổng hợp tiếng nói VODER (Voice Operating Demonstrator) nhà khoa học người Mỹ Homer Dulley giới thiệu năm 1939 New York Hệ thống tổng hợp câu đơn giản cần điều khiển phức tạp [14] Trong thập kỷ qua, hệ thống TTS có bước phát triển vượt bậc Chất lượng hệ thống TTS phát triển ngày cao ứng dụng với mục đích thương mại Đa số hệ thống dành cho tiếng Anh Ngồi ra, có số ngơn ngữ khác tiếng Trung, tiếng Tây Ban Nha, … tiếng Anh nghiên cứu nhiều tiếng Anh có hệ thống TTS chuẩn mực 1.4 TTS Việt Nam TTS Việt Nam nghiên cứu từ lâu Hiện có chương -2- LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 16 phone phụ âm đứng cuối (consonants_cannot_stay_last) B, D, Dd, G, GI, H, KH, L, PH, Q, R, S, TR, TH, V, X 13 phone nguyên âm đứng cuối A, E, Ee, I, O, Oo, Ow, U, Uw, OA, (vowels_can_stay_last) OE, UY, Y 24 phone nguyên âm bắt buộc phải đứng cuối AI, AO, AU, AY, AaU, AaY, EO, (vowels_must_stay_last) EeU, IA, IEeU, IU, OI, OoI, OwI, UA, UEe, UI, UooI, UOw, UYA, UwA, UwI, UwOwU, UwU phone nguyên âm đứng cuối Aa, Aw, IEe, OAw, OO, UAa, (vowel_cannot_stay_last) UYEe, UOo, UwOw Sau chia phone vào tập trên, ta thực việc liệt kê phép ghép nối dễ dàng 3.4.1 Diphone âm câm phụ âm: Mọi phụ âm có khả đứng đầu tiếng ta có 24 diphone âm câm phụ âm: Bảng Diphone âm câm – phụ âm (set! silc-carrier '(() (A T A pau))) (define (list-silc) (mapcar (lambda (c) (set! count (+ count)) ;;; to count (list (list (string-append silence "-" c)) (append (car silc-carrier)(list silence c)(car(cdr silc-carrier))) ) ) (append consonants_can_stay_last consonants_cannot_stay_last) ) ) 3.4.2 Diphone âm câm nguyên âm Mọi nguyên âm có khả đứng đầu tiếng ta có 46 diphone âm câm nguyên âm: Bảng Diphone âm câm – nguyên âm (set! silv-carrier '(() (N N A pau))) - 23 - LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com (define (list-silv) (mapcar (lambda (v) (list (list (string-append silence "-" v)) (append (car silv-carrier)(list silence v)(car(cdr silv-carrier))) ) ) (append vowels_can_stay_last vowels_cannot_stay_last vowels_must_stay_last) ) ) 3.4.3 Diphone phụ âm âm câm Diphone phụ âm âm câm cần xét đến phụ âm đứng cuối tiếng Ở có phụ âm tập consonants_can_stay_last tham gia Ta thu diphone Bảng Diphone phụ âm – âm câm (set! csil-carrier '((pau T A T A) ())) (define (list-csil) (mapcar (lambda (c) (list (list (string-append c "-" silence)) (append (car csil-carrier)(list c silence)(car(cdr csil-carrier))) ) ) consonants_can_stay_last ) ) 3.4.4 Diphone nguyên âm âm câm Diphone nguyên âm âm câm cần xét đến có nguyên âm đứng cuối tiếng Ở có nguyên âm thuộc tập vowel_can_stay_last vowels_must_stay_last tham gia Ta thu 37 diphone Bảng Diphone nguyên âm – âm câm (set! vsil-carrier '((pau T A T ) ())) (define (list-vsil) (mapcar (lambda (v) (list (list (string-append v "-" silence)) (append (car vsil-carrier)(list v silence)(car(cdr vsil-carrier))) ) ) (append vowels_can_stay_last vowels_must_stay_last) ) ) - 24 - LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 3.4.5 Diphone phụ âm – nguyên âm Theo cách định nghĩa trên, cặp phụ âm – nguyên âm ghép để tạo thành diphone Tuy nhiên đây, ta tách làm phần Nhóm gồm tất phụ âm ghép với nguyên âm thuộc hai tập vowels_can_stay_last vowels_must_stay_last Nhóm gồm tất phụ âm ghép với nguyên âm thuộc tập vowels_cannot_stay_last Lý việc tách công việc làm hai phần lúc tạo danh sách diphone, đồng thời làm việc nhúng diphone vào carrier Và thuận lợi cho trình thu âm tách làm hai phần Danh sách diphone sau thực xong bước có thêm 1104 diphone Bảng 10 Diphone phụ âm – nguyên âm (set! cvl-carrier '((pau T A ) (pau))) (define (list-cv1) (apply append (mapcar (lambda (v) (mapcar (lambda (c) (list (list (string-append c "-" v)) (append (car cv1-carrier)(list c v)(car(cdr cv1-carrier)))) )(append consonants_can_stay_last consonants_cannot_stay_last) ) )(append vowels_can_stay_last vowels_must_stay_last) ) ) ) Bảng 11 Diphone phụ âm – nguyên âm (set! cv2-carrier '((pau T A ) (N pau))) (define (list-cv2) (apply append (mapcar (lambda (v) (mapcar (lambda (c) (list (list (string-append c "-" v)) (append (car cv2-carrier)(list c v)(car(cdr cv2-carrier)))) )(append consonants_can_stay_last consonants_cannot_stay_last) ) ) vowels_cannot_stay_last ) ) ) - 25 - LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 3.4.6 Diphone nguyên âm – phụ âm Đây cơng đoạn khó khăn việc xây dựng tập diphone cho tiếng Việt Nguyên nhân ta đưa quy tắc chung cho việc liệt kê danh sách diphone nguyên âm – phụ âm Ở công đoạn này, tơi hồn làm thủ cơng, liệt kê danh sách diphone Cụ thể có 89 diphone Bảng 12 Diphone nguyên âm – phụ âm (set! vc-carrier '((pau T A T) ( pau))) (set! valid_vc '( (A C) (A CH) (A M) (A N) (A NG) (A NH) (A T) (Aw C) (Aw M) (Aw N) (Aw NG) (Aw t) (AA C) (AA M) (AA N) (AA NG) (AA t) (E C) (E M) (E N) (E NG) (E t) (Ee CH) (Ee M) (Ee N) (Ee NG) (Ee NH) (Ee T) (I CH) (I M) (I N) (I NG) (I t) (O C) (O M) (O N) (O NG) (O t) (Oo C) (Oo M) (Oo N) (Oo NG) (Oo t) (Ow C) (Ow M) (Ow N) (Ow NG) (Ow t) (U C) (U M) (U N) (U NG) (U t) (Uw C) (Uw M) (Uw N) (Uw NG) (Uw t) (Y T) (Y CH) (OA C) (OA CH) (OA M) (OA N) (OA NG) (OA T) (OE N) (OE T) (UY T) (IEe C) (IEe M) (IEe N) (IEe NG) (IEe T) (OAw C) (OAw M) (OAw N) (OAw NG) (OAw T) (OO NG) (UAa N) (UAa T) (UYEe N) (UYEe T) (UOo C) (UOo M) (UOo N) (UOo NG) (UOo T) )) (define (list-vc) (mapcar (lambda (z) (set! v (car z)) (set! c (car (cdr z))) (list (list (string-append v "-" c)) (append (car vc-carrier) (list v c) (car (cdr vc-carrier)))) ) valid_vc) ) 3.5 Carrier ý nghĩa Ta hồn thành việc tạo danh sách diphone cách gọi: festival –b festvox/diphlist.scm festvox/vn_schema.scm ‘(diphone-gen-schema “vn” “etc/vndiph.list”)’ Lúc này, xem tồn danh sách diphone carrier chứa file etc/vndiph.list - 26 - LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Sau hoàn thành việc tạo danh sách 1309 diphone, ta thu âm diphone để thực ghép nối hồn tồn thu đươc tiếng nói mức trung bình Ngun nhân điều ta thu diphone thời điểm khác nên ghép hai diphone, tần số điểm cần ghép không tương đương Ngồi ra, cịn cách đọc diphone dài ngắn khác thời điểm nên tiếng nói sau ghép không mong muốn Để tăng cường chất lượng cho tiếng nói tổng hợp, người ta đưa khái niệm carrier Để tăng chất lượng cho tiếng nói, đồng thời với việc tạo danh sách diphone, người ta nghĩ giải pháp khắc phục nhược điểm Thay đọc diphone, ta đọc câu có chứa diphone Diphone sau trích ra, việc giúp giảm thiểu ảnh hưởng âm điệu người đọc đọc đoạn dài có chứa diphone, người đọc có xu hướng đọc ta thu diphone mong muốn Câu gồm nhiều diphone khơng có nghĩa carrier Ta phải nhúng diphone cần thu âm vào carrier theo ý ta Các đoạn code phía có bước thực việc nhúng diphone vào carrier (các đoạn code in nghiêng) Tôi quy định với loại diphone carrier lại có định dạng riêng sau: Bảng 13 Khai báo carrier (set! (set! (set! (set! (set! (set! (set! silc-carrier '(() (A T A pau))) silv-carrier '(() (N N A pau))) csil-carrier '((pau T A T A) ())) vsil-carrier '((pau T A T ) ())) cv1-carrier '((pau T A ) (pau))) cv2-carrier '((pau T A ) (N pau))) vc-carrier '((pau T A T) ( pau))) Ý nghĩa đoạn khai báo tạo dạng carrier: Với diphone dạng âm câm – phụ âm âm câm – B ta có carrier “silence B A T A silence” Với diphone dạng silence – nguyên âm silence – A ta có carrier “silence A N N A silence” Với diphone dạng phụ âm – silence T – silence ta có carrier “silence T A T A T silence” Với diphone dạng nguyên âm – silence Ow – silence, ta có carrier “silence T A T Ow silence” - 27 - LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Với diphone dạng phụ âm – nguyên âm (loại 1) B – O ta có carrier “silence T A B O silence” Với diphone dạng phụ âm – nguyên âm (loại 2) T – IEe ta có carrier “silence T A T I Ee N silence” Với diphone dạng nguyên âm – phụ âm UYEe – T ta có carrier “silence T A T UYEe T silence” Điều quan carrier khơng có nghĩa cụ thể nên người đọc biến thiên ngôn điệu duration (khoảng thời gian kéo dài âm vị) đọc chúng Đặc biệt với diphone lấy từ carrier, ảnh hưởng điểm khớp nối làm giảm tới mức cực tiểu 3.6 Ánh xạ phone tiếng Việt sang tiếng Anh Ngồi việc nhúng diphone vào carrier, ta cịn phải ánh xạ phone tiếng Việt sang phone có cách đọc gần giống tiếng Anh Mục đích việc ánh xạ phone tiếng Việt sang tiếng Anh để Festival đọc tự động trích diphone mong muốn khỏi carrier Festival có cung cấp phone chuẩn (2 Anh – Anh, Anh – Mỹ) Giả sử ta có carrier “silence – a – n – a – silence” ta mong muốn trích diphone “a – silence” khỏi carrier Với việc ta ánh xạ phone tiếng Việt sang phone tiếng Anh, Festival tự đọc carrier theo giọng đọc Festival Nhờ vậy, sau ta thu âm carrier ta so sánh với carrier Festival đọc, Festival tự trích lấy diphone “a – silence” mà ta mong muốn Dưới ví dụ bảng ánh xạ mà thực file vn_schema.scm [13]: Bảng 14 Ví dụ ánh xạ phone tiếng Việt sang phone tiếng Anh Phone tiếng Việt Phone tiếng Anh Phone tiếng Việt Phone tiếng Anh A aa Ow er O ow D dh E eh Uw uh Aw ae GI jh - 28 - LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Sinh thực việc ánh xạ xong, sinh cách đọc Festival cho carrier lệnh: festival –b festvox/diphlist.scm festvox/vn_schema.scm ‘(diphone-gen-waves “prompt-wav” “prompt-lab” “etc/vndiph.list”)’ Lệnh đồng thời sinh “nhãn” diphone Festival đọc “Nhãn” có ý nghĩa thời điểm đọc diphone 3.7 Thu âm Sau sinh danh sách diphone, ta kiểm tra lại file etc/vndiph.list có 1309 diphone tiếng Việt Để thu âm đạt kết cao, ta cần điều kiện sau: Về phòng thu: Phòng thu phải đảm bảo yếu tố cách âm Đây điều quan trọng ảnh hưởng đến chất lượng tiếng nói tổng hợp Ngồi ra, thu nhiều ngày, phịng thu cần phải có độ ẩm nhiệt độ tương đương Về thiết bị thu: Chúng ta cần micro tốt card sound tốt Micro tốt micro có khả lọc nhiễu đầu vào, âm thu đạt độ trung thực cao Card sound có nhiệm vụ chuyển tín hiệu rời rạc (digital) đầu thành tín hiệu sóng (analog) Card sound tốt giúp cho chất lượng tiếng nói tổng hợp trơn Ngồi ra, card sou Về người đọc: Chúng ta cần người có giọng đọc chuẩn, khơng mang tính địa phương Giọng đọc không cao thấp Người đọc cần phải thu âm trạng thái khỏe mạnh, không bị bệnh tai, mũi, họng Nếu thu âm nhiều ngày nên thu âm vào thời điểm ngày Một phòng thu studio với hệ thống âm đại MC chuyên nghiệp điều kiện lý tưởng Tuy nhiên, khn khổ khóa luận này, tơi khơng có đủ khả để có điều kiện lý tưởng Tôi thực việc thu âm máy tính cá nhân micro khơng thật tốt Festival có hỗ trợ hàm prompt-them cho phép thu âm liên tiếp diphone theo thứ tự từ carrier thứ X trở đi: “bin/prompt-them etc/vndiph.list X” Ở X mặc định - 29 - LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 3.8 Đánh nhãn diphone Sau thực việc thu âm xong, có tập âm carrier Để trích diphone ra, ta thực việc đánh “nhãn” diphone với hàm make_labs festival: bin/make_labs prompt-wav/*.wav “Nhãn” thời điểm đọc diphone carrier Từ “nhãn” dễ dàng sinh cách đọc diphone Sau trình trên, với file wav thu âm giọng đọc, có file lab lưu thơng tin điểm bắt đầu điểm kết thúc diphone Dưới hình ảnh biểu diễn dạng sóng carrier diphone được đánh nhãn [2]: Hình Biểu diễn dạng sóng carrier đánh nhãn diphone 3.9 Tìm pitchmark Hàm make_pm_wave tìm điểm pitch biểu diễn dạng sóng diphone thu “bin/make_pm_wave etc/vndip.list” Tiếp đó, hàm make_pm_fix di chuyển điểm pitch điểm phù hợp cho biểu diễn dạng sóng phone khớp nối hai diphone cần ghép nối giống “bin/make_pm_fix etc/vndiph.list” - 30 - LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Lúc này, ta có sở liệu cách đọc diphone đầy đủ 3.9.1 Các bước để lấy pitchmark tốt Festival hỗ trợ việc lấy pitchmark tự động nhiên việc lấy pitchmark tốt quan trọng, đoạn carrier có nhiều, hay q pitchmark khơng tốt Lấy pitchmark tự động dễ bị rơi vào trường hợp Đây cách tơi thực để lấy pitch mark tốt dựa theo hướng dẫn [15] Script make_pm_wave có gọi với vài tham số mà ta cần phải quan tâm sau: – khoảng thời gian ngắn hai pitchmark (được tính giây) max – khoảng thời gian dài hai pitchmark (được tính giây) def – chu kỳ pitchmark mặc định Thông thường đặt 0.01 giây wave_end – đặt pitch mark cuối kết thúc sóng lx_lf – cận tần số lx_hf – cận tần số Các bước để lấy pitch file, ví dụ file wav/vn_0001.wav: Sửa giá trị max cho phù hợp với giọng người đọc Một người đọc nam nên đặt = 0.005, max = 0.012 (tức 200 đến 80 Hz) Nếu người đọc nữ, nên đặt = 0.0033, max = 0.7 (tương đương với (300 tới 140 Hz) Chạy script bin/make_pm_wave wav/vn_0001.wav để lấy pitchmark Chạy script make_pmlab_pm Script đổi file pitchmark thành file biểu diễn công cụ emulabel (công cụ có sẵn Festival): bin/make_pmlab_pm pm/vn_0001.pm Xem pitchmark cách gọi emulabel etc/emu_pm vn_0001 - 31 - LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Hình 10 Pitchmark sóng "taa taa taa" Ta phải lặp lại việc hiệu chỉnh thông số thu pitch mark ý 3.10 Kiểm thử Sau hồn thành việc đánh pitchmark, ta thử nghiệm hệ thống cách load diphone vừa thu được: festival festvox/vnu_vn_ldk_diphone.scm “(voice_vnu_vn_ldk_diphone)” festival> (SayPhones ‘(pau x i n ch a o)) Thực tế cho thấy giai đoạn tốn nhiều thời gian Giai đoạn kèm với việc thu thu lại diphone, đánh pitchmark lại 3.11 Thêm dấu cho tiếng Việt Thư viện Festival có cung cấp cho chương trình ToBI cho phép truy cập trực tiếp vào sóng âm (utterance) Để sử dụng chương trình ta thực bước sau: [5] festival/ %FESTIVALDIR%/lib/tobi_rules.scm festival> (require ‘tobi_rules) festival> (setup_tobi_f0_method) Tất liệu thư viện festival lưu trữ dạng utterance Một utterance dạng: xâu (Words), sóng âm (Wave), số (Number) Festival đồng - 32 - LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com thời cung cấp cho hàm để truy cập, thay đổi giá trị utterance Dưới câu lệnh để khởi tạo utterance dạng xâu, tổng hợp utterance thành dạng sóng phát loa: festival>(set! myUTT (Utterance Words (chao))) festival>(utt.synth myUTT) festival>(utt.play myUTT) Đoạn chương trình phát chữ “chao” Việc bỏ dấu cho tiếng việc thay đổi tần số F0 sóng âm Các utterance có giá trị accent (trọng âm) tone (âm) Ta thay đổi giá trị để tạo điệu ToBI cung cấp số giá trị để thay đổi Ta thay đổi L*, L+, L-, H+, H-, H%, !H [11] Dựa nghiên cứu mục (2.5) qua trình kiểm thử, tơi thay đổi giá trị sóng âm để tạo thành công / điệu tiếng Việt Đây lệnh cần thực để tạo tiếng: “Chào” festival>(set! myUTT (Utterance Words ((chao ((accent L*) (tone L-)))))) festival>(utt.synth myUTT) festival>(utt.play myUTT) Với giá trị accent L* tone H-H%, ta tạo âm “chão” Với giá trị accent H* tone H-H%, ta tạo âm “cháo” - 33 - LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Chương Tổng kết 4.1 Kết thu Hệ thống TTS cho tiếng Việt mà xây dựng tạo tiếng nói thỏa mãn yêu cầu quan trọng phát âm khơng sai người nghe hiểu Tiếng nói tổng hợp có độ tự nhiên, không rời rạc Các từ câu đọc cách liền mạch, trơn chu Kết thu nói đạt mục đích ban đầu đặt thực khóa luận Có thể kết luận rằng, với hệ thống TTS cho tiếng Việt, phương pháp ghép nối diphone thể nhiều ưu điểm vượt trội so với phương pháp tổng hợp khác Formant Có thể khẳng định rằng, thời điểm nay, phương pháp thích hợp Đã thử nghiệm thành cơng việc thay đổi tần số sóng âm để tạo dấu cho tiếng Việt Tuy vậy, thay đổi tần số sóng âm để tạo số tiếng Việt Trong khuôn khổ khóa luận này, tơi chưa ý đến xử lý ngữ điệu văn tổng hợp Đây điểm mà TTS tiếng Anh vượt xa hệ thống TTS ngôn ngữ khác 4.2 Các khó khăn thách thức Trong q trình thực việc thử nghiệm tổng hợp tiếng nói tiếng Việt sử dụng phương pháp ghép nối diphone, gặp nhiều khó khăn, có khó khăn chủ quan lẫn khách quan Một khó khăn lớn gặp phải thực đề tài việc sử dụng thư viện mã nguồn mở Festival, Festvox, Speech Tools Ba thư viện cập nhật phiên hướng dẫn sử dụng lại không cập nhật đồng thời Vì vậy, tơi nhiều thời gian để xem lại mã nguồn thư viện Bản thân tiếng Việt có nhiều thuận lợi so với ngơn ngữ khác lại có đặc trưng riêng điệu gây khó khăn cho việc tổng hợp Một khó khăn tơi khơng có phịng thu đảm bảo, khơng có micro thật tốt khơng có giọng đọc tốt - 34 - LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Đây lần rời xa Windows thực làm việc nghiêm túc môi trường Linux Những khó khăn mơi trường làm việc tránh khỏi Tuy vậy, sau thời gian nghiên cứu, tìm hiểu, khó khăn khơng cịn cản trở lớn Dù vậy, tơi hài lịng với kết đạt 4.3 Các hướng nghiên cứu phát triển Đề tài tổng hợp tiếng nói tiếng Việt sử dụng phương pháp ghép nối diphone mà tơi thực cịn nhiều hạn chế, cịn nhiều hướng để tiếp tục nghiên cứu, phát triển tiếp: Ta xây dựng lại tập phone đầy đủ (có dấu) cho tiếng Việt Phát triển theo hướng tự đánh nhãn, không phụ thuộc vào giọng đọc Festival Cách làm vất vả việc đánh nhãn phải thực toàn tay, mang lại giọng nói tổng hợp xác điệu, trơn chu tự nhiên Ta phát triển hướng nghiên cứu sâu kỹ thuật sửa đổi sóng âm để tạo điệu Nếu thành cơng, cách tổng hợp hiệu nhất, chất lượng tiết kiệm sở liệu phải lưu trữ Tập trung nghiên cứu ngữ điệu tiếng Việt thực hệ thống TTS có ngữ điệu - 35 - LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Tài liệu tham khảo [1] Mai Ngọc Chử, Vũ Đức Nghiệu, Hoàng Trọng Phiến: “Cơ sở ngôn ngữ học Tiếng Việt”, NXB Giáo dục (2000) [2] Nguyễn Thị Hương, “Tổng hợp tiếng nói từ văn tiếng Việt phương pháp ghép nối diphone”, (2005) [3] Đoàn Thiện Thuật, “Ngữ âm tiếng Việt”, NXB Đại học Quốc Gia Hà Nội (1999) [4] http://vi.wikipedia.org/wiki/Tổng_hợp_giọng_nói [5] Alan W Black, Paul Taylor, Richard Caley, “The Festival Speech Synthesis System” (1999) [6] Alan W Black, Paul Taylor, Richard Caley, Simon King, “Edinburgh Speech Tools Library”, (1999) [7] Alan W Black, Kevin A Lenzo, “Building Synthetic Voices”, (2007) [8] Nguyen Tien Dung, Hansjörg Mixdorff, Luong Chi Mai, Ngo Huy Hoang, Vu Kim Bang, “Fujisaki Model based F0 contours in Vietnamese TTS” (2004) [9] Tran Do Dat, Eric Castelli, Jean-Francois Serignat, Trinh Van Loan, Le Xuan Hung, “Influence of F0 on Vietnamese syllable perception” [10] Thierry Dotoit “High Quality Text-to-Speech Synthesis: A Comparison of Four Candidate Algorithms” (1994) [11] Janet Fletcher “Intonation and Prosody in Australian English and New Zealand English”, STT 2006 workshop Auckland, New Zeland [12] Carolie Hemptinne “Intergration of the harmonic plus noise model (HNM) into the hidden Markov model-based speech synthesis system (HTS)” (2006) [13] James L.Hieronymus, Bell Laboratories, Murray Hill, “ASCII Phonetic Symbols for the World’s Languages” [14] Sami Lemetty, “Review of Speech Synthesis Technology”, (1999) [15] J.A Louw, “A Short Guide to Pitch-marking in the Festival Speech - 36 - LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Synthesis System and Recommendations for Improvements” [16] Yannis Stylianou, Thierry Dutoit, Juergen Schroeter “Diphone Concatenation using a Harmonic plus Noise Model of Speech” [17] David Vandromme “Harmonic Plus Noise Model for Concatnenative Speech Synthesis” (2005) [18] http://en.wikipedia.org/wiki/Speech_synthesis - 37 - LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ... Phương pháp tổng hợp dựa hệ luật: phương pháp Formant Phương pháp tổng hợp ghép nối: o Phương pháp tổng hợp ghép nối phones o Phương pháp tổng hợp ghép nối nửa phones o Phương pháp tổng hợp. .. thuyết hệ thống tổng hợp tiếng nói; phương pháp tổng hợp tiếng nói thơng dụng Dựa đặc điểm riêng tiếng Việt, so sánh có lựa chọn phương pháp tổng hợp tiếng nói cho tiếng Việt phù hợp Chương bước... phương pháp tổng hợp ghép nối Trong phương pháp này, tiếng nói tổng hợp từ đoạn tiếng nói nhỏ lưu trữ sẵn sở liệu Đối với tiếng Việt, là: phone, diphone, tiếng, … 2.3.1 Phương pháp tổng hợp ghép