Đồ án Ứng dụng tạo tiếng nói tiếng Việt từ văn bản trên KIT mini2440

Mục lục

CHƢƠNG I: MỞ ĐẦU . 8

1.1. Nhiệm vụ của đồ án . 8

1.2. Môi trƣờng thực hiện đồ án . 8

1.3. Bố cục đồ án . 8

CHƢƠNG II: ĐẶT VẤN ĐỀ VÀ GIẢI PHÁP . 9

2.1. Nhu cầu thực tế . 9

2.2. Phạm vi và 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 về Android . 12

3.2.1. Lịch sử Android . 12

3.2.2. Tính năng mở của hệ điều hành Android . 13

3.2.3. DEVING và máy ảo DALVIK . 13

3.2.4. Kiến trúc Android . 14

3.2.5. Các thành phần của một Project Android . 16

3.2.6. Chu kì của một ứng dụng Android . 16

3.2.7. Các thành phần giao diện của Andorid . 19

3.3. Giới thiệu về KIT Mini2440 . 22

3.3.1. Cấu hình kỹ thuật . 22

3.3.2. Các chú ý về 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

4.2. Cài đặt trên KIT . 32

4.2.1. Sửa nhân mini2440 cho màn 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 bộ gõ tiếng việt với Android . 43

4.4.1. Cấu tạo chung của 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 bộ 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 thanh. 52

4.6. Chia sẻ mạng của 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

pdf58 trang | Chuyên mục: Android | Chia sẻ: dkS00TYs | Lượt xem: 2055 | Lượt tải: 4download
Tóm tắt nội dung Đồ án Ứng dụng tạo tiếng nói tiếng Việt từ văn bản trên KIT mini2440, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
ự 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 sẽ tìm kiếm những tổ hợp kí tự 
tƣơng ứng trong bảng viết tắt và thay thế nó thành từ hoàn chỉnh ngay khi ngƣời 
dùng gõ vào. Ví dụ, nếu trong bảng viết tắt quy định “nhƣng” đƣợc viết là “nu” 
thì khi gõ “nu” vào chƣơng trình sẽ tự động thay thế “nu” thành “nhƣng” trong 
đoạn văn bản hiển thị trên ô nhập. 
Tiếp theo cần tiến hành lấy vị trí đặt dấu cho các bộ nguyên âm, nếu nguyên 
âm đơn thì dấu sẽ đƣợc đặt trực tiếp lên nguyên âm đó, nhƣng nếu là nguyên âm 
đôi hay ba thì cần xác định vị trí đặt dấu cho nguyên âm đó. Và theo kiểu bỏ 
dấu hiện tại thì dấu đƣợc đặt kiểu “oà” thay vì “òa”,… nếu âm đầu là “gi” hoặc 
“qu” thì tự động để vị trí đặt dấu lên một tức là coi “gi” và “qu” là một âm đầu 
và không đặt dấu vào i và u của các âm đầu này. 
Hàm shiftAccent xây dựng trong lớp VietkeyInput có tác dụng xác định vị 
trí của dấu sẽ đƣợc đánh trong từ tƣơng ứng, với curWord là từ tại vị trí hiện 
tại và keyChar là kí tự đƣợc nhập vào. 
Cuối cùng là 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 các kí tự dấu cho nguyên âm sẽ đƣợc thực hiện bởi hàm 
ToVietWord của lớp VietkeyInput, sau khi đã xử lý ta cần tiến hành thay thế 
tƣơng ứng từ đệm thành từ đã đƣợc xử lý thêm dấu: 
Lớp Vietkeylistenner phụ trách xuất các kí tự ra EditText còn xử lý các kí 
tự nhập vào là do lớp VietKeyInput xử lý. Lớp VietKeyInput cung cấp các hàm 
Đồ án tốt nghiệp – ứng dụng tạo tiếng nói tiếng việt từ văn bản 
Nguyễn Trung Dũng – Phí Tùng Lâm – KTMTK52 Trang 50 
xây dựng kí tự tiếng việt, các hàm chính của lớp này bao gồm shiftAccent và 
toVietword, 
Trong chƣơng trình bộ gõ đƣợc xây dựng riêng bên trong phân lớp để nhập 
tiếng việt vào chứ không đƣợc xây dựng bên ngoài, điều đó sẽ đảm bảo chƣơng 
trình sẽ chạy đƣợc ngay sau khi cài đặt mà không cần cài đặt thêm bất cứ thành 
phần nào khác kèm theo.Trên thực tế cũng có một số bộ gõ tiếng việt đƣợc xây 
dựng nhƣng có thể các bộ gõ đó sẽ không chạy đƣợc ở các phiên bản Android 
cũ, cách trên sẽ đƣợc giải quyết vấn đề này. Chƣơng trình đƣợc xây dựng trên 
nhân Android thấp nhất là 1.5 đảm bảo chƣơng trình có thể chạy đƣợc trên hầu 
hết các thiết bị chạy nền Android. 
Ngoài ra chƣơng trình có một bàn phím ảo riêng hỗ trợ nhập tiếng việt, có 
thể cài đặt cho các thiết bị khó có thể lắp đặt bàn phím cứng hoặc cho những 
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 có thể 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. 
Đồ án tốt nghiệp – ứng dụng tạo tiếng nói tiếng việt từ văn bản 
Nguyễn Trung Dũng – Phí Tùng Lâm – KTMTK52 Trang 51 
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 khi nhập đƣợc văn bản tiếng việt,chúng ta phải gửi văn bản này đến 
server để yêu cầu chuyển thành file âm thanh. 
Quá trình yêu cầu thực chất là gửi gói tin POST đến server với dữ liệu yêu 
cầu là đoạn văn bản tiếng việt mà ngƣời dùng đã nhập: 
Data_Sent = "voice=male1&SSinput=" + data + "&formSubmit=Submit"; 
Data_sent là dữ liệu sẽ đƣợc gửi đi cùng với gói tin POST và data là văn 
bản tiếng việt mà ngƣời sử dụng nhập từ bàn phím 
Mô hình nhƣ sau: 
XUẤT KÍ TỰ TIẾNG VIỆT
VietKeyListenner đƣa kí tự vừa tạo ra màn hình
TẠO KÍ TỰ TIẾNG VIỆT TỪ CHUỖI ĐỆM
VietInput hàm ToVietWord()
XÁC ĐỊNH DẤU TƢƠNG ỨNG VỚI KÍ TỰ VỪA GÕ
VietKeyListenner hàm getAccentMack()
XÁC ĐỊNH VỊ TRÍ ĐẶT DẤU CỦA TỪ HIỆN TẠI
VietKeyInput hàm shiftAccent()
XỬ LÝ VIẾT TẮT
VietKeyListenner thay thê các kí tụ viết tắt bằng từ tƣơng ứng
BẮt SỰ KIỆN GÕ PHÍM, LẤY VÀO PHÍM ĐƢỢC ẤN
VietKeyListenner hàm setkey()
Đồ án tốt nghiệp – ứng dụng tạo tiếng nói tiếng việt từ văn bản 
Nguyễn Trung Dũng – Phí Tùng Lâm – KTMTK52 Trang 52 
Hình 38 - Mô hình kết nối xử lý tiếng nói 
Sau khi gửi gói tin POST,server sẽ gửi về một gói tin phản hồi,trong đó sẽ 
có link chứa đƣờng dẫn của file âm thanh tiếng việt,nhiệm vụ tiếp theo là phải 
tải file âm thanh đó về và phát ra loa 
4.5.2. Stream file âm thanh 
Với những đoạn văn bản nhỏ,khi chuyển sang tiếng nói,dung lƣợng có thể 
sẽ nhỏ và không đáng kể,khi đó chƣơng trình sẽ có thể download về hết và phát 
ra loa bình thƣờng.Nhƣng đối với đoạn văn bản lớn thì khả năng sau khi ngƣời 
sử dụng ấn nút yêu cầu đến server cho đến khi download một file âm thanh lớn 
về sẽ mất rất nhiều thời gian,vì vậy,chƣơng trình sẽ stream file âm thanh về và 
chạy trong lúc đang download 
Đồ án tốt nghiệp – ứng dụng tạo tiếng nói tiếng việt từ văn bản 
Nguyễn Trung Dũng – Phí Tùng Lâm – KTMTK52 Trang 53 
 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 thanh về buffer. Khi buffer đủ số 
lƣợng nhất định,chƣơng trình sẽ copy buffer sang chỗ khác và chạy file copy 
đó.Đến khi chạy hết file copy,tiếp tục copy file buffer đã download về sang file 
khác và tua đến đoạn file copy trƣớc đã chạy.Khi đã play hết cả file,copy file đã 
download đầy đủ ra thẻ nhớ và xóa hết các file buffer còn lại.Giải thuật này gọi 
là double-buffer 
Sở dĩ phải sử dụng giải thuật này vì những file đang sử dụng để lƣu dữ liệu 
download từ server ,nếu chạy luôn file này thì sẽ gây xung đột hệ thống,vì 
vậy,chƣơng trình sẽ làm theo hƣớng an toàn hơn là lƣu ra file buffer copy khác 
để chạy. 
4.6. Chia sẻ mạng của Ubuntu qua dây Ethernet 
Chia sẻ mạng(Internet Connection Sharing - ICS) là khả năng mà một máy 
tính dùng mạng có thể chia sẻ băng thông mạng với một 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ƣ một 
Cổng Internet(Internet Gateway). Máy tính đƣợc chia sẻ sẽ kết nối mạng trực 
tiếp thông qua cổng internet đó. 
Đồ án tốt nghiệp – ứng dụng tạo tiếng nói tiếng việt từ văn bản 
Nguyễn Trung Dũng – Phí Tùng Lâm – KTMTK52 Trang 54 
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 chỉ IP phải đƣợc đặt là 
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 có thể từ máy 
đƣợc chia sẻ đi 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 
Đồ án tốt nghiệp – ứng dụng tạo tiếng nói tiếng việt từ văn bản 
Nguyễn Trung Dũng – Phí Tùng Lâm – KTMTK52 Trang 55 
Lệnh thứ nhất và thứ hai cho phép chuyển tiếp gói tin, lệnh thứ ba giúp dịch 
địa chỉ mạng(NAT),khi đó,gói tin từ máy đƣợc chia sẻ sẽ đƣợc đi thẳng qua 
Gateway trung gian và đến thẳng địa chỉ đƣợc yêu cầu,sau đó lúc gói tin đi về 
cũng đi theo đƣờng ngƣợc lại. 
Lƣu lại bảng IP để lần sau ta không phải cấu hình lại gateway nữa: 
sudo iptables-save | sudo tee /etc/iptables.sav 
Sửa file /etc/rc.local và 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 để có thể truyền dẫn gói tin giữa hai cổng bằng 
cách: 
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward" 
Sửa file /etc/sysctl.conf, thêm vào các dòng sau: 
net.ipv4.conf.default.forwarding=1 
net.ipv4.conf.all.forwarding=1 
Khi đó là đã 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 chỉ ip tĩnh cho cổng ethernet và cấu 
hình để cho các gói tin đi ra ngoài mạng qua cổng này 
Cấu hình địa chỉ ip tĩnh cho mini2440,trên màn hình boot: 
ifconfig eth0 192.168.1.230 netmask 255.255.255.0 up 
Cấu hình default gateway để các gói tin ra ngoài mạng sẽ đi qua cổng máy 
chia sẻ 
route add default gw 192.168.1.5 
Và kết quả: 
Đồ án tốt nghiệp – ứng dụng tạo tiếng nói tiếng việt từ văn bản 
Nguyễn Trung Dũng – Phí Tùng Lâm – KTMTK52 Trang 56 
Hình 41 - kết quả chia sẻ mạng 
Đồ án tốt nghiệp – ứng dụng tạo tiếng nói tiếng việt từ văn bản 
Nguyễn Trung Dũng – Phí Tùng Lâm – KTMTK52 Trang 57 
CHƢƠNG V 
KẾT LUẬN 
Với mức độ phát triển hệ thống nhúng và hệ điều hành Android hiện nay ở 
VIệt Nam, các ứng dụng cho lĩnh vực này sẽ ngày càng phát triển rộng rãi, và 
ứng dụng TTS trên hệ thống nhúng Android sẽ đƣợc sử dụng rộng rãi. Ứng 
dụng cho chúng em xây dựng sẽ là bƣớc mở đầu cho chúng em tham gia vào 
lĩnh vực mới mẻ đầy tiềm năng này 
Mặc đù đã rất cố gắng nghiên cứu, nhƣng do chƣa có kinh nghiệm trong 
việc thiết kế và phát triển phần mềm nhúng và cũng do lĩnh vực nghiên cứu còn 
khá lạ lẫm nên chắc chắn không tránh khỏi những sai sót, mong các thầy cô và 
các bạn đóng góp ý kiến để em rút ra đƣợc các kinh nghiệm cho công việc sau 
này. 
 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 trên nền tảng 
KIT Mini2440, trong tƣơng lai có thể xây dựng một hệ thống nhúng 
chuyên biệt nhƣ một thiết bị cầm tay nhỏ gọn để có thể di chuyển dễ dàng 
cho các công việc cần đến TTS tiếng việt. 
 Tiếp tục hoàn thiện và sửa chữa những lỗi ứng dụng mắc phải khi đƣa 
vào thử nghiệm và hoạt động. 
 Có thể xây dựng một bộ TTS cỡ nhỏ trực tiếp trên thiết bị nhúng cho các 
thành phần tiếng việt cơ bản thi di chuyển đến những khu vực không kết 
nối đƣợc mạng đảm bảo hoạt động thông suốt của thiết bị tuy nhiên chất 
lƣợng có thể giảm sút đôi chút. 
Đồ án tốt nghiệp – ứng dụng tạo tiếng nói tiếng việt từ văn bản 
Nguyễn Trung Dũng – Phí Tùng Lâm – KTMTK52 Trang 58 
DANH MỤC TÀI LIỆU THAM KHẢO 
1. Vietandroid.com; Hướng dẫn lập trình cơ bản với Android. 
2. www.friendlyarm.net; Hướng dẫn cơ bản về KIT mini2440. 
3. Google Developer; Google Android Project; 
4. Mark .L Murphy; BeginningAndroid. 
5. Reto Meier; Professional Android Application Development; US 2008. 
6. Wei Meng Lee; Beginning Android Application Development. 

File đính kèm:

  • pdfĐồ án Ứng dụng tạo tiếng nói tiếng Việt từ văn bản trên KIT mini2440.pdf
Tài liệu liên quan