Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 58 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
58
Dung lượng
2,91 MB
Nội dung
TRƢỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG ──────── * ─────── ĐỒ ÁN TỐT NGHIỆP ĐỀ TÀI ỨNG DỤNG TẠO TIẾNG NÓI TIẾNG VIỆT TỪ VĂN BẢN TRÊN KIT MINI2440 Giáo viên hƣớng dẫn: ThS Dƣ Thanh Bình Sinh viên thực hiện: Phí Tùng Lâm 20071670 KTMT - K52 Nguyễn Trung Dũng 20070583 KTMT - K52 Đồ án tốt nghiệp – ứng dụng tạo tiếng nói tiếng việt từ văn PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Thông tin sinh viên Họ tên sinh viên: Phí Tùng Lâm Điện thoại liên lạc : 0975253758 Lớp: KTMTK52 MSSV:20071670 Email: king_lam_2110@yahoo.com Hệ đào tạo: Đại học Họ tên sinh viên: Nguyễn Trung Dũng MSSV:20070583 Điện thoại liên lạc : 01682699970 Email: nguyendung_9002@yahoo.com Lớp: KTMTK52 Hệ đào tạo: Đại học Thời gian làm ĐATN: Từ ngày 21/02 /2012 đến 01/06 /2012 Mục đích nội dung ĐATN Xây dựng ứng dụng chuyển chữ viết thành tiếng nói KIT phát triển Mini2440 Các nhiệm vụ cụ thể ĐATN Tìm hiểu lý thuyết Tìm hiểu lý thuyết hệ thống nhúng Tìm hiểu Kit phát triển Mini2440 Tìm hiểu hệ điều hành Android Phân tích yêu cầu đề tài Thiết kế cài đặt ứng dụng Kiểm thử Lời cam đoan sinh viên: Chúng - Phí Tùng Lâm - NguyễnTrung Dũng - cam kết ĐATN công trình nghiên cứu thân dƣới hƣớng dẫn ThS Dƣ Thanh Bình Các kết nêu ĐATN trung thực, chép toàn văn công trình khác Hà Nội, ngày 01 tháng 06 năm 2012 Tác giả ĐATN Nguyễn Trung Dũng – Phí Tùng Lâm – KTMTK52 Trang Đồ án tốt nghiệp – ứng dụng tạo tiếng nói tiếng việt từ văn Xác nhận giáo viên hƣớng dẫn mức độ hoàn thành ĐATN cho phép bảo vệ:……………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… Hà Nội, ngày tháng năm Giáo viên hƣớng dẫn Ths Dƣ Thanh Bình Nguyễn Trung Dũng – Phí Tùng Lâm – KTMTK52 Trang Đồ án tốt nghiệp – ứng dụng tạo tiếng nói tiếng việt từ văn LỜI NÓI ĐẦU Những năm gần đây, phát triển vượt bậc khoa học kỹ thuật nói chung công nghệ thông tin nói riêng tác động tới mặt đời sống xã hội, kinh tế, trị Sự diện ứng dụng tin học góp phần giải khó khăn việc thiếu thông tin nâng cao suất lao động, góp phần tạo lượng lớn cải vật chất thúc đẩy phát triển xã hội Gần đây, hệ điều hành Android dành nhiều quan tâm nghiên cứu thử nghiệm Trong thiết kế hệ thống nhúng lĩnh vực rộng lớn mà Android khai thác Trong trình thực tập viện CNTT em giới thiệu đề tài thú vị hệ thống TTS, hệ thống có nhiều ứng dụng đọc báo online, đọc tiếng việt cho người nước ngoài,… hệ thống phát triển với ngôn ngữ khác chưa thực phát triển với tiếng Việt Từ thực tế em nảy ý tưởng viết hệ thống TTS tiếng việt hệ thống nhúng sử dụng hệ điều hành Android Với đề tài “ứng dụng tạo tiếng nói tiếng việt từ văn kit mini2440” em đạt số kết định Đó hành trang giúp em nhiều thời gian học tập làm việc sau Để hoàn thành đồ án nhờ giúp đỡ to lớn thầy cô giáo trường Đại học Bách Khoa Hà Nội nói chung thầy cô khoa Công nghệ Thông tin, môn Kĩ Thuật Máy Tính nói riêng Các thầy cô tận tình giảng dạy, truyền đạt cho em kiến thức, kinh nghiệm quý báu suốt năm học tập rèn luyện trường Xin gửi tới thầy, cô lời cảm ơn chân thành đặc biệt đến thầy Dư Thanh Bình - Giảng viên môn Kĩ Thuật Máy Tính , khoa Công nghệ thông tin, trường Đại học Bách Khoa Hà Nội hết lòng giúp đỡ, hướng dẫn bảo tận tình trình em làm đồ án tốt nghiệp Em xin cảm ơn giúp đỡ tận tình anh Vũ Tất Thắng thành viên phòng tiếng nói hình ảnh viện CNTT trình xây dựng phần mềm Cuối cùng, em xin gửi lời cảm ơn chân thành tới gia đình, bạn bè động viên, chăm sóc, đóng góp ý kiến giúp đỡ em trình học tập, nghiên cứu hoàn thành đồ án tốt nghiệp Hà Nội, tháng năm 2012 Sinh viên Nguyễn Trung Dũng – Phí Tùng Lâm – KTMTK52 Trang Đồ án tốt nghiệp – ứng dụng tạo tiếng nói tiếng việt từ văn Mục lục CHƢƠNG I: MỞ ĐẦU 1.1 Nhiệm vụ đồ án 1.2 Môi trƣờng thực đồ án 1.3 Bố cục đồ án CHƢƠNG II: ĐẶT VẤN ĐỀ VÀ GIẢI PHÁP 2.1 Nhu cầu thực tế 2.2 Phạm vi nhiệm vụ 10 CHƢƠNG III: NỀN TẢNG CÓ SẴN 11 3.1 Hệ thống nhúng 11 3.2 Giới thiệu Android 12 3.2.1 Lịch sử Android 12 3.2.2 Tính mở hệ điều hành Android 13 3.2.3 DEVING máy ảo DALVIK 13 3.2.4 Kiến trúc Android 14 3.2.5 Các thành phần Project Android 16 3.2.6 Chu kì ứng dụng Android 16 3.2.7 Các thành phần giao diện Andorid 19 3.3 Giới thiệu KIT Mini2440 22 3.3.1 Cấu hình kỹ thuật 22 3.3.2 Các ý cổng giao tiếp 23 3.3.3 Nguồn hỗ trợ 25 3.3.4 Mạch khởi động lại hệ thống (System Reset) 26 3.3.5 LEDs 26 3.3.6 Nút Bấm 26 3.3.7 A/D input test 27 3.3.8 Speaker 27 3.3.9 Serial Port 28 3.3.10.Nối tiếp USB 28 3.3.11.LCD interface 29 3.3.12.EEPROM 29 3.3.13.Network Interface 30 CHƢƠNG IV: XÂY DỰNG ỨNG DỤNG 31 4.1 Mô hình hệ thống 31 Nguyễn Trung Dũng – Phí Tùng Lâm – KTMTK52 Trang Đồ án tốt nghiệp – ứng dụng tạo tiếng nói tiếng việt từ văn 4.2 Cài đặt KIT 32 4.2.1 Sửa nhân mini2440 cho hình X35 Sony 32 4.2.2 Dịch nhân android 34 4.2.3 Dịch file system 36 4.2.4 Cài đặt Android cho mini2440 37 4.3 Giao diện chƣơng trình 38 4.3.1 Thiết kế giao diện chƣơng trình 38 4.3.2 Giao diện chi tiết 40 4.4 Làm gõ tiếng việt với Android 43 4.4.1 Cấu tạo chung tiếng việt 43 4.4.2 Các kiểu gõ tiếng việt 45 4.4.3 Thuật toán để lập trình gõ 47 4.5 Giao tiếp với server Isolar 51 4.5.1 Gửi yêu cầu đến server 51 4.5.2 Stream file âm 52 4.6 Chia sẻ mạng Ubuntu qua dây Ethernet 53 4.6.1 Mô hình hoạt động 54 4.6.2 Cấu hình NAT 54 4.6.3 Cấu hình routing 55 4.6.4 Cấu hình bên máy nhận(mini2440) 55 CHƢƠNG V: KẾT LUẬN 57 DANH MỤC TÀI LIỆU THAM KHẢO 58 Nguyễn Trung Dũng – Phí Tùng Lâm – KTMTK52 Trang Đồ án tốt nghiệp – ứng dụng tạo tiếng nói tiếng việt từ văn Mục lục hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình Hình - Kiến trúc Android 14 - Activity Stack 17 - chu kì sống Activity 18 - Sử dụng Linear Layout 20 - bố trí widget Frame Layout 20 - bố trí widget Table Layout 21 - Kit Mini2440 23 - Kết nối SDRAM 24 - kết nối NAND, NOR Flash 25 10 - sơ đồ nguồn 25 11 - mạch reset 26 12 - Vị trí kết nối nút bấm 27 13 - ADC input 27 14 - Kết nối loa 27 15 - Kết nối cổng nối tiếp 28 16 - Nối tiếp USB 28 17 - Giao tiếp LCD 29 18 – EEPROM 29 19 - Giao diện mạng 30 20 - Mô hình hệ thống 31 21 - Biên dịch chéo gcc 34 22 - menuconfig 35 23 - tạo zImage 35 24 - dịch root file 36 25 - giao diện dnw 37 26 - kết dịch nhân 37 27 - Biểu đồ giao diện 38 28 - mô hình phần nhập văn 39 29 - mô hình phần chạy tệp âm 40 30 - giao diện chung 40 31 - điều khiển nhập text 41 32 - hình nhập văn 41 33 - bàn phím ảo 42 34 - Tuỳ chỉnh chương trình 42 35 – danh sách tập tin âm 43 36 - điều khiển phát âm 43 37 - lưu đồ xử lý tiếng việt 51 38 - Mô hình kết nối xử lý tiếng nói 52 39 - Mô hình hệ thống chương trình 53 40 - chia sẻ mạng qua dây erthenet 54 41 - kết chia sẻ mạng 56 Nguyễn Trung Dũng – Phí Tùng Lâm – KTMTK52 Trang Đồ án tốt nghiệp – ứng dụng tạo tiếng nói tiếng việt từ văn CHƢƠNG I MỞ ĐẦU 1.1 Nhiệm vụ đồ án Đồ án nhằm mục đích xây dựng ứng dụng chuyển văn chữ viết tiếng việt thành tiếng nói (Text to Speech) thiết bị nhúng KIT phát triển Mini2440 1.2 Môi trƣờng thực đồ án Đồ án thực Viện công nghệ thông tin Việt Nam - số 18 Hoàng Quốc Việt - Hà Nội 1.3 Bố cục đồ án Đồ án gồm năm phần chính: Phần nhìn tổng quan đồ án Phần hai vấn đề cách giải vấn đề: toán TTS thực tế gì, vấn đề gặp phải , đề hƣớng giải Phần hai tảng sẵn có Phần bốn trình thực kết quả, phần thực đƣợc chƣa thực đƣợc Phần năm kết luận, ƣu nhƣợc điểm hƣớng phát triển vấn đề Nguyễn Trung Dũng – Phí Tùng Lâm – KTMTK52 Trang Đồ án tốt nghiệp – ứng dụng tạo tiếng nói tiếng việt từ văn CHƢƠNG II ĐẶT VẤN ĐỀ VÀ GIẢI PHÁP 2.1 Nhu cầu thực tế Hiện giới, vấn đề sử dụng phần mềm âm không mẻ, nhiên đặc thù ngôn ngữ khác nên mô hình chung cho việc xử lý cho tất ngôn ngữ Trên thực tế chƣa có mô hình xử lý tiếng nói tiếng việt mức chung cho tất sử dụng dù sử dụng tiếng nói tiếng việt nhu cầu không nhỏ Tƣơng tự nhƣ Tiếng Anh, viện CNTT xây dựng đƣợc phần mềm chuyên biệt TTS tiếng việt, có server TTS hoạt động Vậy sử dụng hệ thống nhƣ Chúng em lựa chọn xây dựng ứng dụng nhƣ hệ thống ứng dụng thử nghiệm cho hệ thống TTS trên, mở rộng cho ứng dụng TTS sau Hệ thống cho phép phát tiếng nói từ đoạn văn tiếng việt nhập vào Hệ thống xuất phát từ nhu cầu thực tế cần tạo thiết bị cầm tay có khả phát tiếng nói dựa đoạn văn nhập vào, có tác dụng nhiều lĩnh vực: Ngƣời nƣớc ngoài, việt kiều có nhu cầu nghe học tiếng việt Các bệnh nhân bị chấn thƣơng, bệnh tật ảnh hƣởng đến chức nói dễ dàng giao tiếp Đọc tin nhắn, đọc báo Online thiết bị di động … Từ thực tế cho thấy cần xây dựng hệ thống thiết bị cầm tay, cài đặt phần mềm TTS lên đó, có khả kết nối mạng để sử dụng server TTS Có thể xây dựng hệ thống điện thoại smart phone phổ biến thị trƣờng thiết bị xách tay khác nhƣ máy tính bảng, laptop ,… sử dụng đƣợc, trình thực tập chúng em chọn hệ điều hành nhúng Android, sử dụng KIT phát triển Mini2440 để làm phần cứng cho thiết bị cầm tay Mặc dù xây dựng phần cứng Mini2440 nhƣng ứng dụng hoàn toàn cài đặt thiết bị có sử dụng hệ điều hành Android, lĩnh vực rộng lớn thực tế môi trƣờng Việt Nam Nguyễn Trung Dũng – Phí Tùng Lâm – KTMTK52 Trang Đồ án tốt nghiệp – ứng dụng tạo tiếng nói tiếng việt từ văn 2.2 Phạm vi nhiệm vụ Các nhu cầu cần có đề tài: Nghiên cứu Kit Mini2440 Nghiên cứu hệ điều hành Android cách cài đặt sử dụng Android Mini2440 Cách xây dựng phần mềm android Xây dựng ứng dụng thực tế TTS hệ thống Các nhiệm vụ cần thực hiện: Xây dựng kết nối từ KIT Mini2440 đến server TTS Xây dựng hệ thống phát tiếng nói Mini2440 Xây dựng hệ thống nhập liệu tiếng việt cho Android Nguyễn Trung Dũng – Phí Tùng Lâm – KTMTK52 Trang 10 Đồ án tốt nghiệp – ứng dụng tạo tiếng nói tiếng việt từ văn âm sau có nhƣng dùng: oo (cái soong), ôô (ôốc dôộc, tức ốt dột nói giọng Quảng Bình); - 12 tam trùng âm (triphthong): iêu, oai, oay, uây, uôi, uyê, uyu, ƣơi, ƣơu, uya, oao, oeo; yêu không khác iêu âm nên không tính - 15 phụ âm đơn (consonant): b, c(k,qu), d, đ, g, h, l, m, n, p, r, s, t, v, x; - phụ âm kép: ch, gi, kh, nh, ng, ph, th, tr Tổng cộng số âm vần 76 - (accent) không, huyền, hỏi, sắc, ngã, nặng.Cộng 82 âm vị (phoneme) - 17 phụ âm đứng đầu: b, d, đ, g, h, k, l, r, s, v, x, qu, gi, kh, ph, th, tr; - phụ âm đứng đầu cuối: c, m, n, p, t, ch, nh, ng; p đầu phụ âm đầu nhƣng du nhập từ nƣớc ngoài, đƣợc tính phụ âm đầu - 10 nguyên âm kết thúc chữ (nguyên âm lửng): ă, â, iê, oă, uâ, uô, oo, ôô, ƣơ, uyê; - 28 nguyên âm kết thúc chữ, tức âm đứng sau chúng (nguyên âm cuối): ai, ao, au, ay, âu, ây, eo, êu, ia, iu, oi, ôi, ơi, ui, ƣa, ƣi, ƣu, iêu, uôi, uyu, ƣơi, ƣơu, oai, oay, uây, uya, oeo, oao; Một số luật thói quen Khi xây dựng lý thuyết ta không áp dụng luật mà đƣa vào sau nhƣ lựa chọn g ng đứng liền trƣớc e, ê, i viết gh ngh c, k, q âm vị đồng nhất, theo thói quen, viết là: c đứng trƣớc: a (ca hát),ă (cắt đứt),â (cất giấu) o (co quắp), ô (cô gái),ơ (cơ khí) u (cu Tèo), ƣ (cƣ trú) (cai quản), ao (cao xa), au (cau trầu) ay (cay đắng), âu (câu cá), ây (cây cối), oi (coi ngó) ôi (côi cút), (cơi trầu) ua (cua ghẹ), ui (củi lửa), ƣa (cƣa gỗ),ƣi (khung cửi) ƣơ (cƣơng quyết), ƣu (cƣu mang) ƣơi (cƣời cợt), uôi (cuối cùng) k đứng trƣớc: Nguyễn Trung Dũng – Phí Tùng Lâm – KTMTK52 Trang 44 Đồ án tốt nghiệp – ứng dụng tạo tiếng nói tiếng việt từ văn e (kẻ thù), ê (hạt kê) i hay y (kí sự, ký sự) eo (keo kiệt), (kêu gào) ia (kia kìa), iê (kiên quyết), iu (kiu kíu - tiếng chó kêu), iêu (kiêu sa); qu ứng trƣớc: oa (qua loa-> qu + oa), oă (quăn tít -> qu + oăn), oe (que kem -> qu + oe), uy (vu quy -> qu + uy), uơ (quơ quào -> qu + uơ), uô (tổ quốc -> qu + uốc), uê (quê hƣơng -> qu + uê), uâ (quân nhân -> qu + uân), oai (quai xách -> qu + oai), oay (quay tròn -> qu + oay), uây (quây quần -> qu + uây), uyê (chim quyên -> qu + uyên), uya ( giày quya -> qu + uya - phiên âm tiếng Pháp cuir), oeo (chết queo -> qu + oeo) oao (quơ quào -> qu + oào) Luật viết lƣợc chữ u hay chữ o gặp "qu + u " hay "qu + o " cách giải thích cho tranh cãi qua = qu + a hay q + ua (hai cách không đúng, "qua" vần với "loa" "qua loa", nên qua = qu + oa 4.4.2 Các kiểu gõ tiếng việt Hiện có cách gõ tiếng việt đƣợc sử dụng rộng rãi, kiểu gõ VIQR, VNI TELEX , sử dụng kiểu gõ Auto gõ dấu tất cách gõ dấu kiểu Các kiểu gõ chi tiết nhƣ sau: Nguyễn Trung Dũng – Phí Tùng Lâm – KTMTK52 Trang 45 Đồ án tốt nghiệp – ứng dụng tạo tiếng nói tiếng việt từ văn Telex Input VNI Input VIQR Input Method Method Method Cách gõ Telex Cách gõ VNI Cách gõ VIQR a circumflex - â aa a6 a^ e circumflex - ê ee e6 e^ o circumflex - ô oo o6 o^ a breve - ă aw a8 a( o horn - ow o7 o+ u horn - ƣ uw u7 u+ d stroke - đ dd d9 Dd acute - sắc s ' grave - huyền f ` dot below - nặng j hook above - hỏi r ? tilde - ngã x ~ remove diacritics - xóa dấu z Ví dụ: Tiếng Việt Tieesng Vieejt Tie61ng Vie65t Tie^'ng Vie^.t Accents vs Vowels Dấu với nguyên âm Để tiện xây dựng chƣơng trình sử dụng quy định dấu nhƣ kiểu gõ VNI, kí tự nhƣ dấu mũ, đƣợc biểu diễn thông qua số từ đến 9, kiểu gõ lại đƣợc chuyển sang tƣơng ứng với kiểu gõ Đối với kiểu gõ xây dựng lớp đại diện cho kiểu gõ kế thừa từ interface InputMethod, lớp thực chuyển kí tự dấu kiểu gõ tƣơng ứng sang kí tự dấu kiểu gõ VNI Tất lớp kế thừa InputMethod sử dụng chung phƣơng thức getAccentMark ghi đè từ interface để xuất kí tự dấu tƣơng ứng Cụ thể với kiểu gõ Telex ta có: 'S' 'F' 'R' 'X' 'J' 'A' 'E' 's' 'f' 'r' 'x' 'j' 'a' 'e' accent = '1' accent = '2' accent = '3' accent = '4' accent = '5' Nguyễn Trung Dũng – Phí Tùng Lâm – KTMTK52 Trang 46 Đồ án tốt nghiệp – ứng dụng tạo tiếng nói tiếng việt từ văn 'O' 'o' accent = '6' 'W' 'w' accent = '7' 'D' 'd' accent = '9' 'Z' 'z' accent = '0' Với kiểu gõ kí tự dấu dù viết hoa hay không đƣợc coi nhƣ nhau, “S” hay “s” có nghĩa dấu “sắc” Tƣơng tự với kiểu gõ Viqr: '\' '`' '?' '~' '.' '^' '*' '+' '(' '-' accent = '1' accent = '2' accent = '3' accent = '4' accent = '5' accent = '6' accent = '7' accent = '9' accent = '0' 4.4.3 Thuật toán để lập trình gõ Nguyên tắc chung gõ tiếng việt sử dụng hook bàn phím – tức chặn thông điệp bàn phím: trạng thái bàn phím, mã phím, thông điệp,… Sau dùng thuật giải riêng để xử lý chuỗi nhập vào thành chuỗi tiếng việt tƣơng ứng xuất thiết bị tƣơng ứng Đối với Android ta bắt kiện phím thông qua hàm OnKey() bàn phím Hàm xử lý kiện ấn phím thuộc bàn phím cứng, thông tin nhập vào bao gồm keycode – mã phím đƣợc ấn, thông qua số xác định phím đƣợc ấn phím gì, thứ hai keyevent kiện phím bấm, kiện phím đƣợc ấn ANTION_DOWN Các thông tin đƣợc chuyển qua xử lý lớp VietkeyListener qua hàm setKey để xuất kí tự tiếng việt Ngoài thiết bị bàn phím cứng mà sử dụng bàn phím ảo xử lý tƣơng tự thông qua kiện addtext() bàn phím ảo xây dựng kèm theo chƣơng trình, sử dụng hàm setkey3 lớp VietKeyListener để xuất tiếng việt Do chế hoạt động có nhiểu điểm khác nên cần xây dựng nên hàm khác loại bàn phím để chƣơng trình chạy đƣợc nhiều môi trƣờng Nguyễn Trung Dũng – Phí Tùng Lâm – KTMTK52 Trang 47 Đồ án tốt nghiệp – ứng dụng tạo tiếng nói tiếng việt từ văn Hoạt động chƣơng trình gõ tiếng việt thu nhận phím ngƣời dùng gõ vào, sau xử lý cho chuỗi đƣợc xử lý Cuối cần phải xuất đến thành phần chứa chuỗi xử lý Nhƣng xuất cửa sổ tồn chuỗi ban đầu chuỗi xử lý Vậy nên trƣớc hết phải xóa ký tự ban đầu Sau xuất chuỗi xử lý sau Việc xóa chuỗi ban đầu tƣơng đối phức tạp Chúng ta vào chuỗi đệm mà ta nhận thêm ký tự từ bàn phím vào để tìm "từ cuối chuỗi" để xử lý Ví dụ ta có đƣợc chuỗi đệm nhƣ sau : “Câu lacj”.Vì từ “Câu” đƣợc xử lý nên chạy qua để kiểm tra mà lấy từ cuối Đó chữ “lacj” Có nhiều cách để lấy từ cuối câu Một cách ta viết sẵn hàm xác định vị trí từ cuối chuỗi Sau lúc cần ta gọi hàm truyền tham số để xác định đƣợc từ cuối Trong chƣơng trình, hàm xác định vị trí từ vị trí hàm getCurrentWord lớp VietkeyListenner Hàm trả chuỗi từ vị trí của trỏ, đồng thời xác định đƣợc vị trí bắt đầu kết thúc từ với biến start end Các biến đầu vào bao gồm pos vị trí trỏ source chuỗi đầu vào cần xác định từ vị trí trỏ Ở ví dụ hàm trả chuỗi “lacj” trỏ nằm vị trí sau kí tự j “lacj”, start vị trí bắt đầu từ end Sau dựa vào hai biến start end để tiến hành thay kí tự nằm khoảng đƣợc xác định kí tự đƣợc đƣa dạng tiếng việt Chuỗi trả hàm chuỗi đƣợc đƣa vào đệm để xử lý.Sau tùy vào thủ tục cài đặt để để xử lý chuỗi nguyên âm tƣơng ứng Ví dụ: Ta xử lý dấu câu ( kiểu Telex) ta thu nhặt đƣợc ký tự "f,s,r,x,j" ta gọi hàm Trong hàm ta cần lấy chuỗi nguyên âm để xác định vị trí đặt dấu Nếu không tìm thấy ta đặt tiếp ký tự nhận đƣợc vào đệm Nếu tìm thấy, ví dụ chữ chữ "a" ta nhận đƣợc ký tự gõ "j" Vì nguyên âm nên đặt dấu vị trí nguyên âm Vậy ta đƣợc chữ Ta phải thay chữ "a" chuỗi đệm ban đầu "ạ" Sau xác định số ký tự cần xóa cửa sổ Focus vào chuỗi đệm, để sau dùng hàm hay thủ tục để xóa ký tự ban đầu cửa sổ Focus Cụ thể ví dụ - từ "lacj" chuỗi đệm "Câu lacj" Chuỗi có độ dài vị trí tìm thấy chữ "a" 6.Vậy số ký phím cần xóa độ dài chuỗi đệm trừ vị trí chữ "a" (vị trí chữ chuỗi Nguyễn Trung Dũng – Phí Tùng Lâm – KTMTK52 Trang 48 Đồ án tốt nghiệp – ứng dụng tạo tiếng nói tiếng việt từ văn nguyên âm tìm đƣợc) Sau cho cho chuỗi đệm "Câu lạc" chuỗi đệm khác "ạ" đồng thời ghép nốt ký tự lại sau chữ "a" chuỗi đệm vào chuỗi này.Cụ thể "ạc" Bây ta xóa chuỗi "acj" cửa sổ Focus xuất chuỗi "ạc" xử lý Thế cửa sổ đƣợc chuỗi "Câu lạc” Toàn công việc nhận biết thay chuỗi đƣợc thực hàm setkey() lớp VietkeyListenner Hàm đƣợc gọi có kiện ấn phím xẩy ra, thực nhận kí tự xuất kí tự tiếng việt thay vào EditText chƣơng trình Đầu tiên cần lấy vào biến đầu vào bao gồm: vị trí trỏ (lấy qua hàm getSelectionStart), chuỗi có - doc( lấy qua hàm getText), kí tự vị trí (vị trí trỏ chuỗi có), kí tự nhập vào(lấy qua biến keyCode) Sau tiến hành xử lý viết tắt, chƣơng trình tìm kiếm tổ hợp kí tự tƣơng ứng bảng viết tắt thay thành từ hoàn chỉnh ngƣời dùng gõ vào Ví dụ, bảng viết tắt quy định “nhƣng” đƣợc viết “nu” gõ “nu” vào chƣơng trình tự động thay “nu” thành “nhƣng” đoạn văn hiển thị ô nhập Tiếp theo cần tiến hành lấy vị trí đặt dấu cho nguyên âm, nguyên âm đơn dấu đƣợc đặt trực tiếp lên nguyên âm đó, nhƣng nguyên âm đôi hay ba cần xác định vị trí đặt dấu cho nguyên âm Và theo kiểu bỏ dấu dấu đƣợc đặt kiểu “oà” thay “òa”,… âm đầu “gi” “qu” tự động để vị trí đặt dấu lên tức coi “gi” “qu” âm đầu không đặt dấu vào i u âm đầu Hàm shiftAccent xây dựng lớp VietkeyInput có tác dụng xác định vị trí dấu đƣợc đánh từ tƣơng ứng, với curWord từ vị trí keyChar kí tự đƣợc nhập vào Cuối tiến hành đặt dấu cho nguyên âm dựa vào kí tự dấu đƣợc đƣa vào Việc tạo kí tự dấu cho nguyên âm đƣợc thực hàm ToVietWord lớp VietkeyInput, sau xử lý ta cần tiến hành thay tƣơng ứng từ đệm thành từ đƣợc xử lý thêm dấu: Lớp Vietkeylistenner phụ trách xuất kí tự EditText xử lý kí tự nhập vào lớp VietKeyInput xử lý Lớp VietKeyInput cung cấp hàm Nguyễn Trung Dũng – Phí Tùng Lâm – KTMTK52 Trang 49 Đồ án tốt nghiệp – ứng dụng tạo tiếng nói tiếng việt từ văn xây dựng kí tự tiếng việt, hàm lớp bao gồm shiftAccent toVietword, Trong chƣơng trình gõ đƣợc xây dựng riêng bên phân lớp để nhập tiếng việt vào không đƣợc xây dựng bên ngoài, điều đảm bảo chƣơng trình chạy đƣợc sau cài đặt mà không cần cài đặt thêm thành phần khác kèm theo.Trên thực tế có số gõ tiếng việt đƣợc xây dựng nhƣng gõ không chạy đƣợc phiên Android cũ, cách đƣợc giải vấn đề Chƣơng trình đƣợc xây dựng nhân Android thấp 1.5 đảm bảo chƣơng trình chạy đƣợc hầu hết thiết bị chạy Android Ngoài chƣơng trình có bàn phím ảo riêng hỗ trợ nhập tiếng việt, cài đặt cho thiết bị khó lắp đặt bàn phím cứng cho ngƣời dùng không muốn sử dụng bàn phím cứng, đồng thời đảm bảo tiêu chí chƣơng trình chạy mà không cần cài thêm chƣơng trình bàn phím ảo vào nhân Linux đảm bảo tài nguyên sử dụng Nguyễn Trung Dũng – Phí Tùng Lâm – KTMTK52 Trang 50 Đồ án tốt nghiệp – ứng dụng tạo tiếng nói tiếng việt từ văn BẮt SỰ KIỆN GÕ PHÍM, LẤY VÀO PHÍM ĐƢỢC ẤN VietKeyListenner hàm setkey() XỬ LÝ VIẾT TẮT thay thê kí tụ viết tắt từ tƣơng ứng VietKeyListenner XÁC ĐỊNH VỊ TRÍ ĐẶT DẤU CỦA TỪ HIỆN TẠI VietKeyInput hàm shiftAccent() XÁC ĐỊNH DẤU TƢƠNG ỨNG VỚI KÍ TỰ VỪA GÕ VietKeyListenner hàm getAccentMack() TẠO KÍ TỰ TIẾNG VIỆT TỪ CHUỖI ĐỆM VietInput hàm ToVietWord() XUẤT KÍ TỰ TIẾNG VIỆT VietKeyListenner đƣa kí tự vừa tạo hình Hình 37 - lưu đồ xử lý tiếng việt 4.5 Giao tiếp với server Isolar 4.5.1 Gửi yêu cầu đến server Sau nhập đƣợc văn tiếng việt,chúng ta phải gửi văn đến server để yêu cầu chuyển thành file âm Quá trình yêu cầu thực chất gửi gói tin POST đến server với liệu yêu cầu đoạn văn tiếng việt mà ngƣời dùng nhập: Data_Sent = "voice=male1&SSinput=" + data + "&formSubmit=Submit"; Data_sent liệu đƣợc gửi với gói tin POST data văn tiếng việt mà ngƣời sử dụng nhập từ bàn phím Mô hình nhƣ sau: Nguyễn Trung Dũng – Phí Tùng Lâm – KTMTK52 Trang 51 Đồ án tốt nghiệp – ứng dụng tạo tiếng nói tiếng việt từ văn Hình 38 - Mô hình kết nối xử lý tiếng nói Sau gửi gói tin POST,server gửi gói tin phản hồi,trong có link chứa đƣờng dẫn file âm tiếng việt,nhiệm vụ phải tải file âm phát loa 4.5.2 Stream file âm Với đoạn văn nhỏ,khi chuyển sang tiếng nói,dung lƣợng nhỏ không đáng kể,khi chƣơng trình download hết phát loa bình thƣờng.Nhƣng đoạn văn lớn khả sau ngƣời sử dụng ấn nút yêu cầu đến server download file âm lớn nhiều thời gian,vì vậy,chƣơng trình stream file âm chạy lúc download Nguyễn Trung Dũng – Phí Tùng Lâm – KTMTK52 Trang 52 Đồ án tốt nghiệp – ứng dụng tạo tiếng nói tiếng việt từ văn Mô hình nhƣ sau: Hình 39 - Mô hình hệ thống chương trình Từ server,chƣơng trình download file âm buffer Khi buffer đủ số lƣợng định,chƣơng trình copy buffer sang chỗ khác chạy file copy đó.Đến chạy hết file copy,tiếp tục copy file buffer download sang file khác tua đến đoạn file copy trƣớc chạy.Khi play hết file,copy file download đầy đủ thẻ nhớ xóa hết file buffer lại.Giải thuật gọi double-buffer Sở dĩ phải sử dụng giải thuật file sử dụng để lƣu liệu download từ server ,nếu chạy file gây xung đột hệ thống,vì vậy,chƣơng trình làm theo hƣớng an toàn lƣu file buffer copy khác để chạy 4.6 Chia sẻ mạng Ubuntu qua dây Ethernet Chia sẻ mạng(Internet Connection Sharing - ICS) khả mà máy tính dùng mạng chia sẻ băng thông mạng với hay nhiều máy tính khác Để đƣợc nhƣ vậy, máy tính có kết nối mạng phải đƣợc cấu hình nhƣ Cổng Internet(Internet Gateway) Máy tính đƣợc chia sẻ kết nối mạng trực tiếp thông qua cổng internet Nguyễn Trung Dũng – Phí Tùng Lâm – KTMTK52 Trang 53 Đồ án tốt nghiệp – ứng dụng tạo tiếng nói tiếng việt từ văn 4.6.1 Mô hình hoạt động Hình 40 - chia sẻ mạng qua dây erthenet Để chia sẻ qua dây ethernet, bên phía máy ubuntu,địa IP phải đƣợc đặt tĩnh: sudo ip addr add 192.168.1.5/24 dev eth0 Hoặc : sudo ifconfig eth0 192.168.1.5 netmask 255.255.255.0 up Sau đó, ta phải cấu hình bảng ip bên máy chia sẻ để gói tin từ máy đƣợc chia sẻ thẳng qua Ubuntu gateway 4.6.2 Cấu hình NAT sudo iptables -A FORWARD -o eth0 -i eth1 -s 192.168.0.0/24 -m conntrack ctstate NEW -j ACCEPT sudo iptables -A FORWARD -m conntrack ctstate ESTABLISHED,RELATED -j ACCEPT sudo iptables -A POSTROUTING -t nat -j MASQUERADE Nguyễn Trung Dũng – Phí Tùng Lâm – KTMTK52 Trang 54 Đồ án tốt nghiệp – ứng dụng tạo tiếng nói tiếng việt từ văn Lệnh thứ thứ hai cho phép chuyển tiếp gói tin, lệnh thứ ba giúp dịch địa mạng(NAT),khi đó,gói tin từ máy đƣợc chia sẻ đƣợc thẳng qua Gateway trung gian đến thẳng địa đƣợc yêu cầu,sau lúc gói tin theo đƣờng ngƣợc lại Lƣu lại bảng IP để lần sau ta cấu hình lại gateway nữa: sudo iptables-save | sudo tee /etc/iptables.sav Sửa file /etc/rc.local thêm vào trƣớc dòng "exit 0" : iptables-restore < /etc/iptables.sav 4.6.3 Cấu hình routing Cấu hình cổng gateway để truyền dẫn gói tin hai cổng cách: sudo sh -c "echo > /proc/sys/net/ipv4/ip_forward" Sửa file /etc/sysctl.conf, thêm vào dòng sau: net.ipv4.conf.default.forwarding=1 net.ipv4.conf.all.forwarding=1 Khi xong cấu hình bên phía gateway 4.6.4 Cấu hình bên máy nhận(mini2440) Bên phía mini2440,ta cần cấu hình địa ip tĩnh cho cổng ethernet cấu hình gói tin mạng qua cổng Cấu hình địa ip tĩnh cho mini2440,trên hình boot: ifconfig eth0 192.168.1.230 netmask 255.255.255.0 up Cấu hình default gateway để gói tin mạng qua cổng máy chia sẻ route add default gw 192.168.1.5 Và kết quả: Nguyễn Trung Dũng – Phí Tùng Lâm – KTMTK52 Trang 55 Đồ án tốt nghiệp – ứng dụng tạo tiếng nói tiếng việt từ văn Hình 41 - kết chia sẻ mạng Nguyễn Trung Dũng – Phí Tùng Lâm – KTMTK52 Trang 56 Đồ án tốt nghiệp – ứng dụng tạo tiếng nói tiếng việt từ văn CHƢƠNG V KẾT LUẬN Với mức độ phát triển hệ thống nhúng hệ điều hành Android VIệt Nam, ứng dụng cho lĩnh vực ngày phát triển rộng rãi, ứng dụng TTS hệ thống nhúng Android đƣợc sử dụng rộng rãi Ứng dụng cho chúng em xây dựng bƣớc mở đầu cho chúng em tham gia vào lĩnh vực mẻ đầy tiềm Mặc đù cố gắng nghiên cứu, nhƣng chƣa có kinh nghiệm việc thiết kế phát triển phần mềm nhúng lĩnh vực nghiên cứu lạ lẫm nên chắn không tránh khỏi sai sót, mong thầy cô bạn đóng góp ý kiến để em rút đƣợc kinh nghiệm cho công việc sau Hƣớng phát triển: Do chƣa có phần cứng cụ thể nên ứng dụng đƣợc xây dựng tảng KIT Mini2440, tƣơng lai xây dựng hệ thống nhúng chuyên biệt nhƣ thiết bị cầm tay nhỏ gọn để di chuyển dễ dàng cho công việc cần đến TTS tiếng việt Tiếp tục hoàn thiện sửa chữa lỗi ứng dụng mắc phải đƣa vào thử nghiệm hoạt động Có thể xây dựng TTS cỡ nhỏ trực tiếp thiết bị nhúng cho thành phần tiếng việt thi di chuyển đến khu vực không kết nối đƣợc mạng đảm bảo hoạt động thông suốt thiết bị nhiên chất lƣợng giảm sút đôi chút Nguyễn Trung Dũng – Phí Tùng Lâm – KTMTK52 Trang 57 Đồ án tốt nghiệp – ứng dụng tạo tiếng nói tiếng việt từ văn DANH MỤC TÀI LIỆU THAM KHẢO Vietandroid.com; Hướng dẫn lập trình với Android www.friendlyarm.net; Hướng dẫn KIT mini2440 Google Developer; Google Android Project; Mark L Murphy; BeginningAndroid Reto Meier; Professional Android Application Development; US 2008 Wei Meng Lee; Beginning Android Application Development Nguyễn Trung Dũng – Phí Tùng Lâm – KTMTK52 Trang 58 [...]... lên KIT mini2 440 Viết chƣơng trình cho phép nhập tiếng việt trên hệ thống KIT mini2 440 qua bàn phím ảo,bàn phím thật hoặc qua file văn bản có sẵn tiếng Việt Viết chƣơng trình tạo yêu cầu gửi đến server và nhận file âm thanh từ server gửi về Phát file âm thanh ra loa Nguyễn Trung Dũng – Phí Tùng Lâm – KTMTK52 Trang 31 Đồ án tốt nghiệp – ứng dụng tạo tiếng nói tiếng việt từ văn bản 4.2 Cài đặt trên. .. phép chỉnh sửa nội dung cho các văn bản Check box chỉ nhận 2 giá trị true hay false, sử dụng trong nhiều trƣờng hợp Nguyễn Trung Dũng – Phí Tùng Lâm – KTMTK52 Trang 21 Đồ án tốt nghiệp – ứng dụng tạo tiếng nói tiếng việt từ văn bản 3.3 Giới thiệu về KIT Mini2 440 Kit Mini2 440 có kích thƣớc 100mm vuông dựa trên nền tảng ARM9, sử dụng họ vi xử lý s3c2440, kit đƣợc ứng dụng cho việc phát triển hệ thống... ứng dụng tạo tiếng nói tiếng việt từ văn bản Hình 22 - menuconfig Sau khi chọn, ấn exit và tạo file zImage, file này chứa nhân của mini 2440X35: $ make zImage Hình 23 - tạo zImage Sẽ mất vài phút để dịch tất cả File zImage sẽ nằm tại đƣờng dẫn: /usr/local/android/kernel/arch/arm/boot/zImage Nguyễn Trung Dũng – Phí Tùng Lâm – KTMTK52 Trang 35 Đồ án tốt nghiệp – ứng dụng tạo tiếng nói tiếng việt từ văn. .. Board Nguyễn Trung Dũng – Phí Tùng Lâm – KTMTK52 Trang 30 Đồ án tốt nghiệp – ứng dụng tạo tiếng nói tiếng việt từ văn bản CHƢƠNG IV XÂY DỰNG ỨNG DỤNG 4.1 Mô hình hệ thống Mô hình nhƣ sau: Hình 20 - Mô hình hệ thống Ngƣời dùng sẽ nhập văn bản tiếng việt qua KIT mini2 440,sau khi nhập xong ,KIT sẽ gửi yêu cầu bao gồm cả phần văn bản ngƣời dùng đã nhập lên server của isolar,sau đó nhận file âm thanh mà server... Nguyễn Trung Dũng – Phí Tùng Lâm – KTMTK52 Trang 12 Đồ án tốt nghiệp – ứng dụng tạo tiếng nói tiếng việt từ văn bản Khi android đƣợc phát hành thì một trong số các mục tiêu trong kiến trúc của nó là cho phép các ứng dụng có thể tƣơng tác với nhau và có thể sử dụng lại các thành phần của ứng dụng khác Việc tái sử dụng không chỉ đƣợc áp dụng cho các dịch vụ mà còn cho các thành phần dữ liệu và giao diện... tiếp a) SDRAM Mini2 440 sử dụng 2 bộ nhớ ngoài 32MB tổng cộng là 64 MB SDRAM chip (model: HY57V561620FTP), nối tiếp với nhau sẽ tạo thành data bus 32 bit tăng cao tốc độ truy cập, địa chỉ bắt đầu là 0x30000000, sơ đồ nguyên lý nhƣ sau: Nguyễn Trung Dũng – Phí Tùng Lâm – KTMTK52 Trang 23 Đồ án tốt nghiệp – ứng dụng tạo tiếng nói tiếng việt từ văn bản Hình 8 - Kết nối SDRAM b) Flash Mini2 440 có 2 bộ nhớ... nối loa ngoài Nguyễn Trung Dũng – Phí Tùng Lâm – KTMTK52 Trang 27 Đồ án tốt nghiệp – ứng dụng tạo tiếng nói tiếng việt từ văn bản 3.3.9 Serial Port Có tổng cộng 3 cổng Serial trên board UART0,1,2 Trong hầu hết các ứng dụng, chỉ sử dụng đến 3 chức năng đơn giản nhƣ truyền và nhận dữ liệu, sẽ tƣơng ứng với CON1,2,3 trên board Để cho thuận tiện thì cổng COM0 đƣợc để trực tiếp dƣới dạng RS232 converter... Trang 15 Đồ án tốt nghiệp – ứng dụng tạo tiếng nói tiếng việt từ văn bản 3.2.5 Các thành phần của một Project Android AndroidManifest.xml File này dùng để định nghĩa các screen sử dụng, các permission và các theme cho ứng dụng, thông tin về phiên bản SDK và main activity sẽ chạy đầu tiên.File này có 3 thành phần chính: Application chứa các thuộc tính đƣợc định nghĩa cho ứng dụng: Android:icon =