Text To Speech Offline là một thuật ngữđược chúng em đề nghịđể đặt tên cho kỹ thuật phát âm mà dữ liệu âm thanh được lưu trữ ngay tại trên máy chạy chương trình phát âm.
Như đã trình bày ở phần trên, ta sẽ phát âm tiếng Việt bằng cách sử dụng các tập tin âm thanh riêng lẻ. Tiếng Việt có khoảng 10.000 tiếng trong đó có khỏang 8.200 tiếng thông dụng. Bộ thư viện mà chúng em sử dụng có khoảng 6623 tiếng thông dụng. Nhưng việc bộ thư viện này vào điện thoại di động là công việc tốn rất nhiều thời gian (do phải chép từng tập tin) và hao phí nhiều bộ nhớ. Chúng em đưa ra giải pháp là tạo ra một từ điển âm thanh dựa trên bộ thư viện này. Khi đó nội dung của tập tin âm thanh đóng vai trò giống như nghĩa của từ trong từđiển. Như vậy chúng ta vừa tiết kiệm được thời gian chép tập tin vừa tiết kiệm được không gian lưu trữ (vì thực hiện nén từng khối theo chuẩn Dictzip#).
Đối với tiếng Anh chúng em chỉ sử dụng khoảng 4.100 tiếng thông dụng.
Phát âm Tổng số tiếng Số tiếng trong thư
viện Kích th(MB) ước đã nén
Việt Khoảng 10.000 tiếng Khỏang 6623 tiếng 18 Anh Khoảng 400.000 tiếng Khoảng 4100 tiếng 21
Bảng 6.3 Kích thước của bộ thư viện Offline 6.5.3 Text To Speech Online
Kể từ phiên bản phiên bản 7.x, hệđiều hành Symbian đã hỗ trợ giao thức http, điều này có nghĩa là, một ứng dụng trên điện thoại thông minh Symbian Series 60
có thể nhận dữ liệu từ một trang web bất kì thông qua http. Đồng thời hiện nay các nhà cung cấp dịch vụđiện thoại di động ở Việt Nam đã cung cấp chính thức dịch vụ truy cập Internet qua điện thoại di động bằng PGRS. Dựa trên các điều kiện này, chúng em đã thực hiện chức năng phát âm trực tuyến cho từđiển như sau:
Xây dựng một website không có giao diện cho phép phát sinh âm thanh phát âm của một từ tiếng Anh bất kì.
Khi một ứng dụng nào đó (đóng vai trò client) gửi yêu cầu phát âm đến website. Website sẽ phát sinh dữ liệu phát âm có định dạng .wav và gửi về client đã yêu cầu dưới dạng dữ liệu nhị phân.
Khi ứng dụng nhận được toàn bộ dữ liệu sẽ gọi các hàm âm thanh sẵn có để phát nội dung .wav nhận được
Cụ thể, chúng em đã dùng bộ thư viện Microsoft Speech SDK 5.1 để xây dựng website phát âm. Đồng thời cài đặt các lớp client nhận và xử lý dữ liệu download từ website cho ứng dụng từ điển. Kết quả tất cả các từ tiếng Anh của mọi bộ từ điển đều có thể nghe phát âm trực tuyến.
Chương 7 Phân tích thiết kế ứng dụng từ điển
7.1 Giới thiệu
Ứng dụng từ điển Mobile_Dict xây dựng trên điện thoại thông minh Symbian Series 60; cho phép người dùng điện thoại chọn loại từđiển, tra từ và nghe phát âm tiếng Việt, Anh.
7.2 Mô hình Use-Case
7.2.1 Mô hình Use-Case
STT Actor Ý nghĩa
1 User Người sử dụng
Bảng 7.1 Danh sách Actor
STT Actor Ý nghĩa
1 InitApp Khởi động ứng dụng
2 ShowAboutAndHelp Hiển thị About và Help của ứng dụng 3 SelectNewDictonary Chọn một từ điển khác
4 Setting Thiết lập các thông số của ứng dụng 5 Pronounce Phát âm từ đang xem nghĩa
6 LookUpWord Tra từ
7 ViewOtherWord Tra từ khác trong màn hình xem nghĩa của một từ
Bảng 7.2 Danh sách Use-case 7.2.2 Đặc tả các Use-Case chính 7.2.2.1 Use-Case “InitApp” • Tóm tắt Người dùng khởi động chương trình; ứng dụng tìm kiếm các dữ liệu từđiển có trong máy và hiển thị bộ từđiển mặc định. • Dòng sự kiện o Dòng sự kiện chính
Người dùng khởi động chương trình trên điện thoại
Ứng dụng tựđộng tìm kiếm các tập tin dữ liệu từđiển có trong máy Hiển thị bộ từđiển được chọn mặc định
o Dòng sự kiện khác
Ứng dụng không tìm thấy tập tin dữ liệu từđiển nào: hiển thị màn hình About
Ứng dụng không tìm thấy thông tin về từđiển mặc định: hiển thị từ điển đầu tiên tìm được
• Các yêu cầu đặc biệt Không có
• Điều kiện tiên quyết Không có
• Điều kiện kết thúc
Nếu use-case thành công thì màn hình ứng dụng được hiển thị • Điểm mở rộng
Không có
7.2.2.2 Use-Case “SelectNewDictionary”
• Tóm tắt
Người dùng chọn từđiển khác trong các từđiển đã có trong máy. • Dòng sự kiện
o Dòng sự kiện chính
Người dùng chọn một từđiển khác trong số các từđiển (đã có trong điện thoại) để tra từ Ứng dụng nạp dữ liệu từđiển được chọn Hiển thị danh sách từ của từđiển mới o Dòng sự kiện khác Không có • Các yêu cầu đặc biệt Không có • Điều kiện tiên quyết
Có ít nhất hai bộ từđiển được cài vào máy điện thoại • Điều kiện kết thúc Không có • Điểm mở rộng Không có 7.2.2.3 Use-Case “Pronounce” • Tóm tắt
Người dùng nghe phát âm của từđang xem nghĩa. • Dòng sự kiện
o Dòng sự kiện chính
Người dùng chọn chức năng phát âm từ hiện hành
Ứng dụng tìm kiếm dữ liệu âm thanh của từđược chọn trong ngữ liệu tương ứng.
Nếu tìm thấy, ứng dụng phát ra âm thanh tìm được (phát âm của từ được chọn)
Nếu không tìm thấy thực hiện dòng sự kiện phụ “Pronounce Online”
o Dòng sự kiện phụ “Pronounce Online” Người dùng chọn điểm truy cập
Kết nối với website phát âm của ứng dụng yêu cầu phát sinh âm thanh cho từđược chọn.
Nhận dữ liệu âm thanh từ website Phát âm thanh nhận được
o Dòng sự kiện khác
Nếu không tìm thấy âm thanh của từđược yêu cầu và máy không có khả năng kết nối Internet: thông báo không phát âm được
Nếu quá trình giao tiếp với website bị lỗi: thông báo lỗi kết nối • Các yêu cầu đặc biệt
Không có
• Điều kiện tiên quyết
Từđiển đang tra phải có khả năng phát âm (Anh, Việt) Nghĩa của từ cần phát âm phải đang được hiển thị • Điều kiện kết thúc
Nếu use-case thành công thì người dùng nghe được cách phát âm của từđang xem nghĩa
• Điểm mở rộng Không có
7.2.2.4 Use-Case “LookUpWord”
Người dùng nhập từ cần tra và yêu cầu ứng dụng hiển thị nghĩa của từđó. • Dòng sự kiện o Dòng sự kiện chính Người dùng nhập từng ký tự của từ cần tra Dựa vào dữ liệu nhập, ứng dụng tìm và chọn ra từ gần đúng nhất trong danh sách từ.
Khi người dùng tìm thấy từ cần tra thì yêu cầu hiển thị nghĩa. (Lúc này từ cần tra chính là từđang được chọn trong danh sách từ)
Ứng dụng tìm nghĩa của từ trong dữ liệu và hiển thị nghĩa theo định dạng đã qui định
o Dòng sự kiện khác
Người dùng có thể dùng phím mũi tên lên, xuống để chọn trực tiếp từ cần tra trong danh sách từ trước khi yêu cầu hiển thị nghĩa
• Các yêu cầu đặc biệt Không có
• Điều kiện tiên quyết Không có
• Điều kiện kết thúc
Nếu use-case thành công thì người dùng xem được nghĩa của từ cần tra • Điểm mở rộng
Không có
7.2.2.5 Use-Case “ViewOtherWord”
• Tóm tắt
Người dùng yêu cầu hiển thị nghĩa của một từ khác khi đang xem nghĩa một từ nào đó.
• Dòng sự kiện
o Dòng sự kiện chính
Người dùng đang xem nghĩa của một từ thì yêu cầu hiển thị nghĩa của một từ khác có trong phần nghĩa hiện tại
Ứng dụng tìm nghĩa của từ mới được yêu cầu Nếu tìm thấy, hiển thị nghĩa từ mới
o Dòng sự kiện khác
Nếu không tìm thấy nghĩa từ mới: ứng dụng chọn từ gần đúng nhất trong danh sách từ; nhưng không hiển thị nghĩa của từ gần đúng này.
• Các yêu cầu đặc biệt Không có • Điều kiện tiên quyết Đang hiển thị nghĩa một từ nào đó • Điều kiện kết thúc Không có • Điểm mở rộng Không có
7.3 Thiết kế lớp đối tượng
STT Lớp đối tượng Loại Ý nghĩa
1 CMobile_DictApp Control Lớp Application cửa ứng dụng
2 CMobile_DictDocument Control Lớp Document của ứng dụng
3 CMobile_DictAppUi Control Lớp điều khiển chính của ứng dụng
4 CMobile_dict_list_view Boundary Lớp list view hiển thị danh sách, cho phép tra từ
5 CMobile_dict_list_view_container Boundary Lớp chứa các control của list view
6 CMyEikEdwin Boundary Lớp textbox dùng nhập từ cần tra (hỗ trợ nhập tiếng Việt)
7 CMobile_dict_setting_view Boundary Lớp setting view dùng thiết lập các thông số của ứng dụng
8 CAknExSettingListListbox Boundary Lớp listbox chứa các setting trong setting view 9 CAknExSettingItem Boundary Lớp item setting
10 CMobile_dict_text_view Boundary Lớp text view hiển thị nghĩa từ
11 CMobile_dict_text_view_container Boundary Lớp chứa các control của text view
12 CRichControl Boundary Lớp richtextbox hiển thị nghĩa từ (hỗ trợ tiếng Việt và các định dạng hiển thị) 13 CDict_handle Control Lớp xử lý tra từ
14 CDict_index_array Control Lớp xử lý mảng các mục từ được load lên danh sách 15 CDict_hash Control Lớp xử lý bảng băm dữ liệu
từ
16 RDict_hash_letter1 Control Lớp xử lý băm cấp 1 17 RDict_hash_letter2 Control Lớp xử lý băm cấp 2 18 RDict_hash_letter3 Control Lớp xử lý băm cấp 3 19 CWav_handle Control Lớp xử lý phát âm
20 CWav_index_array Control Lớp xử lý mảng các mục âm thanh tìm thấy
21 CWav_hash Control Lớp xử lý bảng băm dữ liệu âm thanh
22 TextToSpeech Control Lớp xử lý biến đổi từ thành dữ liệu phát âm
23 CClientEngine Control Lớp xử lý kết nối với website phát âm bằng giao thức http
24 MClientObserver Interface Lớp giao diện bắt các sự kiện khi kết nối với website 25 MyUtility Control Lớp chứa các công cụ, tiện
ích dùng chung cho ứng dụng
26 CMyZip Control Lớp xử lý nén dữ liệu theo chuẩn DictZip#
27 CZLib Control Lớp xử lý nén dữ liệu theo chuẩn Zip 28 TMyCharCollection Control Lớp xử lý so sánh ký tự theo chuẩn tiếng Việt Bảng 7.3 Danh sách các lớp chính 7.4 Thiết kế xử lý 7.4.1 Danh sách các xử lý chính
STT Xử lý Mô tả Use-Case tương ứng
1 XL1 Khởi động ứng dụng InitApp
2 XL2 Chọn từđiển mới SelectNewDictionany
3 XL3 Tìm kiếm từ LookUpWord
4 XL4 Hiển thị nghĩa từ LookUpWord
5 XL5 Xem nghĩa từ khác trong màn hình nghĩa ViewOtherWord
6 XL6 Nghe phát âm từ Pronounce
Chương 7 . Phân tích thiết kếứng dụng từđiển
7.4.2 Mô tả các xử lý chính
7.4.2.1 XL1 – Khởi động ứng dụng
TH2:
Chương 7 . Phân tích thiết kếứng dụng từđiển
7.4.2.2 XL2 – Chọn từđiển mới
7.4.2.3 XL3 – Tìm kiếm từ
TH1:
Hình 7.6 Sơđồ tuần tự Tìm kiếm từ 1
TH2:
Chương 7 . Phân tích thiết kếứng dụng từđiển
7.4.2.4 XL4 – Hiển thị nghĩa từ
7.4.2.5 XL5 – Xem nghĩa từ khác trong màn hình nghĩa
TH1:
Hình 7.9 Sequence diagram Xem nghĩa từ khác trong màn hình nghĩa 1
TH2:
7.4.2.6 XL6– Nghe phát âm từ
TH1:
Hình 7.11 Sequence diagram Nghe phát âm từ 1
Hình 7.12 Sơđồ tuần tự Nghe phát âm từ 2
7.5 Thiết kế giao diện
Điện thoại thông minh Symbian Series 60 cơ bản vẫn là một điện thoại di động với kích thước nhỏ, gọn, màn hình hiển thị giới hạn, bàn phím đơn giản. Vì vậy tất cả các ứng dụng cho điện thoại thông minh đều phải tuân thủ nguyên tắc thiết kế giao diện đơn giản, các chức năng được thực hiện với ít thao tác phím nhất có thể. Trên cơ sở đó, ứng dụng từ điển cho điện thoại thông minh được thiết kế gồm hai màn hình chính có chung một menu chức năng và màn hình setting bổ sung:
STT Màn hình Mô tả
1 Màn hình tra từ Chứa danh sách từ và textbox cho phép nhập từ cần tra 2 Màn hình hiển thị nghĩa Chứa nghĩa từ cần tra
3 Màn hình setting Lựa chọn các thông số của ứng dụng
7.5.1 Màn hình tra từ Hình 7.13 Màn hình tra từ STT Kiểu Mô tả 1 Listbox Danh sách từ, cho phép người dùng nhập hoặc chọn từ cần tra. 2 Textbox Nhập từ cần tra. Bảng 7.6 Các thành phần của màn hình tra từ 7.5.2 Màn hình hiển thị nghĩa Hình 7.14 Màn hình hiển thị nghĩa STT Kiểu Mô tả 1
Richtextbox Hiển thị nghĩa từ cần tra
Bảng 7.7 Các thành phần của màn hình hiển thị nghĩa
7.5.3 Menu chính
Hình 7.15 Submenu Dictionaries Hình 7.16 Submenu About
STT Kiểu Mô tả
1 Dictionries Chọn từ điển khác (số lượng submenu phu thuộc vào số lượng từ điển được chép vào máy)
2 Pronounce Phát âm từ hiện hành (Menu item này chỉ xuất hiện khi từ điển có phát âm và đang trong màn hình hiển thị nghĩa) 3 Setting Vào màn hình cài đặt thông số
4 About
4.1 Help Hiển thị phần help của ứng dụng 4.2 About Hiển thị phần tác giả của ứng dụng
5 Exit Thoát khỏi ứng dụng
Bảng 7.8 Các thành phần của menu chính 7.5.4 Màn hình cài đặt Hình 7.17 Màn hình cài đặt STT Kiểu Mô tả 1 CAknExSettingItem Qui định thông số dạng radiobox 2 CAknExSettingListItemData Qui định thông số dạng textbox Bảng 7.9Các thành phần của màn hình cài đặt
Chương 8 Ứng dụng hỗ trợ quản lý dữ liệu trên Desktop
8.1 Giới thiệu
Ứng dụng Dictionary Manager là ứng được xây dựng trên Desktop nhằm hỗ trợ cho ứng dụng Mobile_Dict trên điện thoại di động. Vì hạn chế của thiết bị di động ứng dụng Mobile_Dict không hỗ trợ chức năng chỉnh sửa dữ liệu từ điển nên mục tiêu của Dictionary Manager là để đáp ứng nhu cầu này. Các chức năng chính của Ditionary Manager là:
Import dữ liệu từ điển trên điện thoại di động sang dữ liệu từ điển dùng trên Desktop.
Thực hiện thao tác dữ liệu từ điển trên Desktop: thêm, xoá, sửa từ, compact dữ liệu từđiển.
Export dữ liệu từđiển trên Desktop sang dữ liệu từđiển trên điện thoại di động.
8.2 Mô hình Use-Case
8.2.1 Mô hình Use-Case
8.2.1.1 Danh sách các Actor STT Actor Ý nghĩa 1. User Người sử dụng Bảng 8.1 Danh sách các Actor 8.2.1.2 Danh sách các Use-Case chính STT Use-Case Ý nghĩa
1. ImportDictionary Import dữ liệu từ điển trên điện thoại di động sang dữ liệu từ điển dùng trên Desktop.
2. LoadDictionary Nạp bộ dữ liệu từ điển trên Desktop để thực hiện thao tác thêm, xóa, sửa các từ.
3. ShowWordsMeanings Hiển thị nghĩa của từ được chọn.
4. PartOfSpeechFilter Lọc danh sách các từ hiển thị theo từ loại. 5. AddNewWord Thêm một từ mới vào bộ từ điển có sẵn. 6. DeleteWord Xóa một từ trong bộ từ điển có sẵn. 7. UpdateWord Cập nhật một từ trong bộ từ điển có sẵn. 8. CompactDictionary Compact dữ liệu từ điển.
9. ExportDictionary Export dữ liệu từ điển trên Desktop sang dữ liệu từ điển dùng trên Desktop.
Bảng 8.2 Danh sách các Use-Case chính
8.2.2 Đặc tả một số Use-Case chính
8.2.2.1 ImportDictionary
8.2.2.1.1 Tóm tắt
Use-Case này cho phép người sử dụng import bộ dữ liệu từđiển trên điện thoại di động sang bộ dữ liệu trên Desktop.
8.2.2.1.2 Dòng sự kiện
Dòng sự kiện chính: Use-Case này bắt đầu khi người sử dụng chọn chức năng import.
1. Người sử dụng chọn chức năng import từđiển trên điện thoại di động.
2. Hệ thống hiển thị hộp thoại Open yêu cầu người sử dụng chọn tập tin từđiển dùng cho điện thoại di động.
3. Người sử dụng chọn tập tin từđiển dùng cho điện thoại di động và nhấn nút chọn.
4. Hệ thống hiển thị hộp thoại Save yêu cầu người sử dụng đặt tên cho tập tin từđiển dùng cho Desktop.
5. Người sử dụng gõ tên tập tin từđiển dùng cho Desktop và nhấn nút lưu. 6. Hệ thống tiến hành xử lý import dữ liệu trên điện thoại di động sang dữ liệu
từđiển dùng trên Desktop.
7. Sau khi xử lý import hệ thống trở về màn hình chính và hiển thị danh sách